Condividi tramite


Creare e modificare tabelle esterne delta in Archiviazione di Azure

I comandi in questo articolo possono essere usati per creare o modificare una tabella esterna delta nel database da cui viene eseguito il comando. Una tabella esterna delta fa riferimento ai dati della tabella Delta Lake che si trovano in Archiviazione BLOB di Azure, Azure Data Lake Store Gen1 o Azure Data Lake Store Gen2.

Nota

Se la tabella esiste, il .create comando avrà esito negativo con un errore. Utilizzare .create-or-alter o .alter per modificare le tabelle esistenti.

Autorizzazioni

Per .create richiedere almeno le autorizzazioni utente del database e per .alter richiedere almeno le autorizzazioni di amministratore tabella .

Per .create-or-alter una tabella esterna tramite l'autenticazione dell'identità gestita sono necessarie autorizzazioni AllDatabasesAdmin .

Sintassi

(.create | | .alter.create-or-alter) external table TableName [(Schema)] kind delta = (StorageConnectionString ) [ Property [, (with...]])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
TableName string ✔️ Nome di tabella esterno conforme alle regole dei nomi di entità. Una tabella esterna non può avere lo stesso nome di una tabella normale nello stesso database.
Schema string Lo schema di dati esterni facoltativo è un elenco delimitato da virgole di uno o più nomi di colonne e tipi di dati, in cui ogni elemento segue il formato ColumnName : ColumnType. Se non specificato, verrà dedotto automaticamente dal log differenziale in base alla versione più recente della tabella delta.
StorageConnectionString string ✔️ Percorso della cartella radice della tabella delta, incluse le credenziali. Può puntare a Archiviazione BLOB di Azure contenitore BLOB, al file system di Azure Data Lake Gen 2 o al contenitore Azure Data Lake Gen 1. Il tipo di archiviazione tabelle esterne è determinato dal stringa di connessione fornito. Vedere stringa di connessione di archiviazione.
Proprietà string Coppia di proprietà chiave-valore nel formato PropertyName = PropertyValue. Vedere proprietà facoltative.

Nota

  • Se viene fornito uno schema personalizzato, le colonne o le colonne non esistenti con tipi incompatibili verranno riempite con valori Null.
  • Le informazioni sulle partizioni vengono dedotte automaticamente dal log differenziale. Le colonne di partizione vengono aggiunte come colonne virtuali allo schema della tabella. Per altre informazioni, vedere Colonne virtuali.
  • Il formato del percorso viene dedotto automaticamente dalle informazioni di partizionamento. Per altre informazioni, vedere Formato percorso

Suggerimento

Per uno schema personalizzato, è possibile usare il plug-in infer_storage_schema per dedurre lo schema in base al contenuto del file esterno.

Autenticazione e autorizzazione

Il metodo di autenticazione per accedere a una tabella esterna si basa sul stringa di connessione fornito durante la creazione e le autorizzazioni necessarie per accedere alla tabella variano a seconda del metodo di autenticazione.

I metodi di autenticazione supportati sono uguali a quelli supportati da Archiviazione di Azure tabelle esterne.

Proprietà facoltative

Proprietà Type Descrizione
folder string Cartella della tabella
docString string Stringa che documenta la tabella
namePrefix string Se impostato, indica il prefisso dei file. In caso di operazioni di scrittura, tutti i file verranno scritti con questo prefisso. Nelle operazioni di lettura vengono letti solo i file con questo prefisso.
fileExtension string Se impostato, indica le estensioni di file dei file. In scrittura, i nomi dei file terminano con questo suffisso. In lettura, verranno letti solo i file con questa estensione di file.
encoding string Indica la modalità di codifica del testo: UTF8NoBOM (impostazione predefinita) o UTF8BOM.
dryRun bool Se impostata, la definizione della tabella esterna non viene salvata in modo permanente. Questa opzione è utile per convalidare la definizione della tabella esterna, in particolare in combinazione con il filesPreview parametro o sampleUris .

Nota

L'accesso alla tabella differenziale esterna viene eseguito durante la creazione per dedurre le informazioni di partizionamento e, facoltativamente, lo schema. Assicurarsi che la definizione della tabella sia valida e che l'archiviazione sia accessibile.

Esempi

Creare o modificare una tabella esterna delta con uno schema dedotto

Nella tabella esterna seguente, lo schema viene dedotto automaticamente dalla versione più recente della tabella delta.

.create-or-alter external table ExternalTable  
kind=delta 
( 
   h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
) 

Creare una tabella esterna delta con uno schema personalizzato

Nella tabella esterna seguente viene specificato uno schema personalizzato ed esegue l'override dello schema della tabella delta. Se, in un secondo momento, è necessario sostituire lo schema personalizzato con lo schema basato sulla versione più recente della tabella delta, eseguire il .alter | .create-or-alter comando senza specificare uno schema, come nell'esempio precedente.

.create external table ExternalTable (Timestamp:datetime, x:long, s:string) 
kind=delta
( 
   h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)

Limiti

  • Il viaggio in tempo non è supportato. Viene usata solo la versione più recente della tabella delta.