Freigeben über


Erstellen und Ändern externer Delta-Tabellen in Azure Storage

Gilt für: ✅Microsoft Fabric✅Azure Data Explorer

Die Befehle in diesem Artikel können zum Erstellen oder Ändern einer externen Delta-Tabelle in der Datenbank verwendet werden, aus der der Befehl ausgeführt wird. Eine externe Delta-Tabelle verweist auf Delta Lake-Tabellendaten, die sich in Azure Blob Storage, Azure Data Lake Store Gen1 oder Azure Data Lake Store Gen2 befinden.

Hinweis

Wenn die Tabelle vorhanden ist, schlägt der .create Befehl mit einem Fehler fehl. Verwenden oder .alter ändern Sie .create-or-alter vorhandene Tabellen.

Informationen zum Beschleunigen von Abfragen über externe Delta-Tabellen finden Sie unter Abfragebeschleunigungsrichtlinie.

Berechtigungen

Damit .create mindestens Berechtigungen für Datenbankbenutzer erforderlich sind und .alter mindestens Tabellenadministratorberechtigungen erforderlich sind.

Für .create-or-alter eine externe Tabelle mit verwalteter Identitätsauthentifizierung sind AllDatabasesAdmin-Berechtigungen erforderlich.

Syntax

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
TableName string ✔️ Ein externer Tabellenname, der den Entitätsnamenregeln entspricht. Eine externe Tabelle kann nicht denselben Namen wie eine reguläre Tabelle in derselben Datenbank haben.
Schema string Das optionale externe Datenschema ist eine durch Trennzeichen getrennte Liste mit einem oder mehreren Spaltennamen und Datentypen, wobei jedes Element dem Format folgt: ColumnName : ColumnType. Wenn nicht angegeben, wird sie automatisch aus dem Delta-Protokoll basierend auf der neuesten Delta-Tabellenversion abgeleitet.
StorageConnectionString string ✔️ Stammordnerpfad der Delta-Tabelle, einschließlich Anmeldeinformationen. Kann auf azure Blob Storage Blob Container, Azure Data Lake Gen 2-Dateisystem oder Azure Data Lake Gen 1-Container verweisen. Der Speichertyp der externen Tabelle wird durch die bereitgestellte Verbindungszeichenfolge bestimmt. Siehe Speicher Verbindungszeichenfolge s.
Eigenschaft string Ein Schlüssel-Wert-Eigenschaftspaar im Format PropertyName = PropertyValue. Weitere Informationen finden Sie unter optionalen Eigenschaften.

Hinweis

  • Wenn ein benutzerdefiniertes Schema bereitgestellt wird, werden nicht vorhandene Spalten oder Spalten mit inkompatiblen Typen mit NULL-Werten gefüllt.
  • Informationen zu Partitionen werden automatisch aus dem Delta-Protokoll abgeleitet. Partitionsspalten werden dem Tabellenschema als virtuelle Spalten hinzugefügt. Weitere Informationen finden Sie unter "Virtuelle Spalten".
  • Das Pfadformat wird automatisch von den Partitionierungsinformationen abgeleitet. Weitere Informationen finden Sie unter Pfadformat

Tipp

Für ein benutzerdefiniertes Schema können Sie das infer_storage_schema-Plug-In verwenden, um das Schema basierend auf dem externen Dateiinhalt abzuleiten.

Authentifizierung und Autorisierung

Die Authentifizierungsmethode für den Zugriff auf eine externe Tabelle basiert auf der Verbindungszeichenfolge, die während der Erstellung bereitgestellt wurde, und die berechtigungen, die für den Zugriff auf die Tabelle erforderlich sind, variieren je nach Authentifizierungsmethode.

Die unterstützten Authentifizierungsmethoden sind identisch mit denen, die von externen Azure Storage-Tabellen unterstützt werden.

Optionale Eigenschaften:

Eigenschaft Typ Beschreibung
folder string Ordner der Tabelle
docString string Zeichenfolge zur Dokumentierung der Tabelle
namePrefix string Wenn festgelegt, gibt das Präfix der Dateien an. Bei Schreibvorgängen werden alle Dateien mit diesem Präfix geschrieben. Bei Lesevorgängen werden nur Dateien mit diesem Präfix gelesen.
fileExtension string Wenn festgelegt, gibt die Dateierweiterungen der Dateien an. Beim Schreiben enden die Dateinamen mit diesem Suffix. Beim Lesen werden nur Dateien mit dieser Dateierweiterung gelesen.
encoding string Gibt an, wie der Text codiert ist: UTF8NoBOM (Standard) oder UTF8BOM.
dryRun bool Wenn dieser Wert festgelegt ist, wird die Definition der externen Tabelle nicht beibehalten. Diese Option ist nützlich zum Überprüfen der externen Tabellendefinition, insbesondere in Verbindung mit dem filesPreview Parameter.sampleUris

Hinweis

Auf die externe Delta-Tabelle wird während der Erstellung zugegriffen, um die Partitionierungsinformationen und optional das Schema abzuleiten. Stellen Sie sicher, dass die Tabellendefinition gültig ist und auf den Speicher zugegriffen werden kann.

Beispiele

Erstellen oder Ändern einer externen Delta-Tabelle mit einem abgeleiteten Schema

In der folgenden externen Tabelle wird das Schema automatisch von der neuesten Delta-Tabellenversion abgeleitet.

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

Erstellen einer externen Delta-Tabelle mit einem benutzerdefinierten Schema

In der folgenden externen Tabelle wird ein benutzerdefiniertes Schema angegeben und überschreibt das Schema der Delta-Tabelle. Wenn Sie zu einem späteren Zeitpunkt das benutzerdefinierte Schema durch das Schema basierend auf der neuesten Delta-Tabellenversion ersetzen müssen, führen Sie den .alter | .create-or-alter Befehl aus, ohne ein Schema anzugeben, wie im vorherigen Beispiel.

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

Begrenzungen

  • Die Zeitreise wird nicht unterstützt. Es wird nur die neueste Delta-Tabellenversion verwendet.