Partager 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.

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 | ) externaltableTableName [(Schema)] kind=(deltaStorageConnectionString) [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.