Créer et modifier des tables externes delta sur stockage Azure
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.
Notes
Si la table existe, la .create
commande échoue avec une erreur. Utilisez .create-or-alter
ou .alter
pour modifier des tables existantes.
Autorisations
Pour .create
nécessite au moins des autorisations utilisateur de base de données et au .alter
moins des autorisations de Administration de table.
Pour .create-or-alter
une table externe utilisant l’authentification d’identité managée, vous devez disposer d’autorisations AllDatabasesAdmin .
Syntax
(.create
.alter
| .create-or-alter
| ) external
table
TableName [(
Schema)
] kind
=
(
delta
StorageConnectionString)
[with
(
Property [,
...])
]
Découvrez les conventions de syntaxe.
Paramètres
Nom | Type | Obligatoire | 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. Si elle n’est pas spécifiée, elle est déduite automatiquement à partir 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 le chaîne de connexion fourni. Consultez chaînes de connexion de stockage. |
Propriété | string |
Paire de propriétés clé-valeur au format PropertyName= PropertyValue. Consultez propriétés facultatives. |
Notes
- Si un schéma personnalisé est fourni, les colonnes ou colonnes non existantes ayant des types incompatibles sont remplies avec des valeurs Null.
- Les informations sur les partitions sont déduites automatiquement à partir 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 du chemin d’accès est déduit automatiquement des informations de partitionnement. Pour plus d’informations, consultez Format de 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 les chaîne de connexion fournies 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 les tables externes stockage Azure.
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 la valeur 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 la valeur est définie, indique les extensions de fichier des fichiers. Lors de l’écriture, les noms de fichiers se terminent par ce suffixe. En lecture, seuls les fichiers avec cette extension de fichier seront lus. |
encoding |
string |
Indique comment le texte est encodé : UTF8NoBOM (valeur par défaut) ou UTF8BOM . |
dryRun |
bool |
Si elle est définie, la définition de table externe n’est pas persistante. Cette option est utile pour valider la définition de table externe, en particulier conjointement avec le filesPreview paramètre ou sampleUris . |
Notes
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 à partir 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 dans le temps n’est pas pris en charge. Seule la dernière version de la table delta est utilisée.
Contenu connexe
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour