Dela via


Skapa och ändra externa deltatabeller i Azure Storage

Kommandona i den här artikeln kan användas för att skapa eller ändra en extern deltatabell i databasen som kommandot körs från. En extern deltatabell refererar till Delta Lake-tabelldata som finns i Azure Blob Storage, Azure Data Lake Store Gen1 eller Azure Data Lake Store Gen2.

Anteckning

Om tabellen finns .create misslyckas kommandot med ett fel. Använd .create-or-alter eller .alter för att ändra befintliga tabeller.

Behörigheter

För att .create minst behöva behörigheter för databasanvändare och för att .alter minst behöva behörigheter för tabell Admin.

För .create-or-alter en extern tabell med hanterad identitetsautentisering krävs AllDatabasesAdmin-behörigheter .

Syntax

(.create.alter | | .create-or-alter) externaltableTableName [(Schema)] kind(=deltaStorageConnectionString) [with(Egenskap [, ...])]

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
TableName string ✔️ Ett externt tabellnamn som följer reglerna för entitetsnamn . En extern tabell kan inte ha samma namn som en vanlig tabell i samma databas.
Schema string Det valfria externa dataschemat är en kommaavgränsad lista med ett eller flera kolumnnamn och datatyper, där varje objekt följer formatet: ColumnName:ColumnType. Om det inte anges härleds det automatiskt från deltaloggen baserat på den senaste deltatabellversionen.
StorageConnectionString string ✔️ rotmappsökväg för deltatabellen, inklusive autentiseringsuppgifter. Kan peka på Azure Blob Storage blobcontainer, Azure Data Lake Gen 2-filsystem eller Azure Data Lake Gen 1-container. Den externa tabelllagringstypen bestäms av den angivna anslutningssträng. Se anslutningssträngar för lagring.
Egenskap string Ett nyckelvärdesegenskapspar i formatet PropertyName=PropertyValue. Se valfria egenskaper.

Anteckning

  • Om ett anpassat schema tillhandahålls fylls icke-befintliga kolumner eller kolumner med inkompatibla typer med null-värden.
  • Information om partitioner härleds automatiskt från deltaloggen. Partitionskolumner läggs till som virtuella kolumner i tabellschemat. Mer information finns i Virtuella kolumner.
  • Sökvägsformatet härleds automatiskt från partitioneringsinformationen. Mer information finns i Sökvägsformat

Tips

För ett anpassat schema kan du använda plugin-programmet infer_storage_schema för att härleda schemat baserat på det externa filinnehållet.

Autentisering och auktorisering

Autentiseringsmetoden för åtkomst till en extern tabell baseras på de anslutningssträng som angavs när den skapades, och de behörigheter som krävs för att komma åt tabellen varierar beroende på autentiseringsmetoden.

De autentiseringsmetoder som stöds är desamma som de som stöds av externa Azure Storage-tabeller.

Valfria egenskaper

Egenskap Typ Description
folder string Tabellens mapp
docString string Sträng som dokumenterar tabellen
namePrefix string Om det anges anger du prefixet för filerna. Vid skrivåtgärder skrivs alla filer med det här prefixet. Vid läsåtgärder skrivs endast filer med det här prefixet.
fileExtension string Om det anges anger filnamnstillägg för filerna. Vid skrivning slutar filnamnen med det här suffixet. Vid läsning kommer endast filer med det här filtillägget att läsas.
encoding string Anger hur texten är kodad: UTF8NoBOM (standard) eller UTF8BOM.
dryRun bool Om den anges sparas inte den externa tabelldefinitionen. Det här alternativet är användbart för att verifiera den externa tabelldefinitionen, särskilt tillsammans med parametern filesPreview eller sampleUris .

Anteckning

Den externa deltatabellen används när du skapar den, för att härleda partitioneringsinformationen och, om du vill, schemat. Kontrollera att tabelldefinitionen är giltig och att lagringen är tillgänglig.

Exempel

Skapa eller ändra en extern deltatabell med ett härledt schema

I följande externa tabell härleds schemat automatiskt från den senaste deltatabellversionen.

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

Skapa en extern deltatabell med ett anpassat schema

I följande externa tabell anges ett anpassat schema och åsidosätter schemat för deltatabellen. Om du någon gång senare behöver ersätta det anpassade schemat med schemat baserat på den senaste deltatabellversionen kör .alter | .create-or-alter du kommandot utan att ange något schema, som i föregående exempel.

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

Begränsningar

  • Tidsresor stöds inte. Endast den senaste deltatabellversionen används.