Créer et modifier des tables externes delta sur Stockage Azure
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Les commandes de cet article peuvent être utilisées pour créer ou modifier une table externe delta dans la base de données à partir de laquelle la commande est exécutée. Une table externe delta fait référence aux données de table Delta Lake situées dans Stockage Blob Azure, Azure Data Lake Store Gen1 ou Azure Data Lake Store Gen2.
Remarque
Si la table existe, la .create
commande échoue avec une erreur. Utilisez ou .alter
modifiez .create-or-alter
des tables existantes.
Pour accélérer les requêtes sur des tables delta externes, consultez la stratégie d’accélération des requêtes.
autorisations
Pour .create
exiger au moins des autorisations utilisateur de base de données et .alter
exiger au moins des autorisations d’administrateur de table.
Pour .create-or-alter
une table externe à l’aide de l’authentification d’identité managée, les autorisations AllDatabasesAdmin sont requises.
Syntaxe
(.create
| .create-or-alter
.alter
| ) external
table
TableName [(
Schema)
] kind
delta
=
(
StorageConnectionString )
[with
(
Property [,
...]])
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
TableName | string |
✔️ | Nom de table externe qui respecte les règles de noms d’entité. Une table externe ne peut pas avoir le même nom qu’une table normale dans la même base de données. |
Schéma | string |
Le schéma de données externes facultatif est une liste séparée par des virgules d’un ou plusieurs noms de colonnes et types de données, où chaque élément suit le format : ColumnName : ColumnType. S’il n’est pas spécifié, il est déduit automatiquement du journal delta en fonction de la dernière version de la table delta. |
|
StorageConnectionString | string |
✔️ | chemin du dossier racine de la table delta, y compris les informations d’identification. Peut pointer vers Stockage Blob Azure conteneur d’objets blob, le système de fichiers Azure Data Lake Gen 2 ou le conteneur Azure Data Lake Gen 1. Le type de stockage de table externe est déterminé par la chaîne de connexion fournie. Consultez les chaîne de connexion de stockage. |
Propriété | string |
Paire de propriétés clé-valeur au format PropertyName = PropertyValue. Voir les propriétés facultatives. |
Remarque
- Si un schéma personnalisé est fourni, les colonnes ou colonnes non existantes ayant des types incompatibles sont remplies de valeurs Null.
- Les informations sur les partitions sont automatiquement déduites du journal delta. Les colonnes de partition sont ajoutées en tant que colonnes virtuelles au schéma de table. Pour plus d’informations, consultez Colonnes virtuelles.
- Le format de chemin d’accès est déduit automatiquement des informations de partitionnement. Pour plus d’informations, consultez le format chemin d’accès
Conseil
Pour un schéma personnalisé, vous pouvez utiliser le plug-in infer_storage_schema pour déduire le schéma en fonction du contenu du fichier externe.
Authentification et autorisation
La méthode d’authentification permettant d’accéder à une table externe est basée sur la chaîne de connexion fournie lors de sa création, et les autorisations requises pour accéder à la table varient en fonction de la méthode d’authentification.
Les méthodes d’authentification prises en charge sont les mêmes que celles prises en charge par Stockage Azure tables externes.
Propriétés facultatives
Propriété | Type | Description |
---|---|---|
folder |
string |
Dossier de la table |
docString |
string |
Chaîne qui documente la table |
namePrefix |
string |
Si elle est définie, indique le préfixe des fichiers. Lors des opérations d’écriture, tous les fichiers sont écrits avec ce préfixe. Lors des opérations de lecture, seuls les fichiers avec ce préfixe sont lus. |
fileExtension |
string |
Si elle est définie, indique les extensions de fichier des fichiers. En écriture, les noms de fichiers se terminent par ce suffixe. En lecture, seuls les fichiers avec cette extension de fichier sont lus. |
encoding |
string |
Indique comment le texte est encodé : UTF8NoBOM (par défaut) ou UTF8BOM . |
dryRun |
bool |
Si elle est définie, la définition de table externe n’est pas conservée. Cette option est utile pour valider la définition de table externe, en particulier conjointement avec le ou sampleUris le filesPreview paramètre. |
Remarque
La table delta externe est accessible lors de la création, pour déduire les informations de partitionnement et, éventuellement, le schéma. Vérifiez que la définition de table est valide et que le stockage est accessible.
Exemples
Créer ou modifier une table externe delta avec un schéma déduit
Dans le tableau externe suivant, le schéma est déduit automatiquement de la dernière version de la table delta.
.create-or-alter external table ExternalTable
kind=delta
(
h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
)
Créer une table externe delta avec un schéma personnalisé
Dans le tableau externe suivant, un schéma personnalisé est spécifié et remplace le schéma de la table delta. Si, ultérieurement, vous devez remplacer le schéma personnalisé par le schéma basé sur la dernière version de la table delta, exécutez la .alter
| .create-or-alter
commande sans spécifier de schéma, comme dans l’exemple précédent.
.create external table ExternalTable (Timestamp:datetime, x:long, s:string)
kind=delta
(
h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)
Limites
- Le voyage temporel n’est pas pris en charge. Seule la dernière version de la table delta est utilisée.