Partage via


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.

Remarque

Si la table existe, la .create commande échoue avec une erreur. Utilisez ou .alter modifiez .create-or-alter des tables existantes.

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.