Share via


Erstellen und Ändern externer Delta-Tabellen in Azure Storage

Die Befehle in diesem Artikel können verwendet werden, um eine externe Delta-Tabelle in der Datenbank zu erstellen oder zu ändern, 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 .create-or-alter.alter ändern Sie vorhandene Tabellen.

Berechtigungen

Erfordert .create mindestens Datenbankbenutzerberechtigungen und .alter mindestens Tabellen-Admin-Berechtigungen.

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

Syntax

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
TableName string ✔️ Ein externer Tabellenname, der den Entitätsnamensregeln entspricht. Eine externe Tabelle kann nicht den gleichen 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 ColumnName:ColumnType folgt. Wenn nicht angegeben, wird es automatisch aus dem Deltaprotokoll basierend auf der neuesten Deltatabellenversion abgeleitet.
StorageConnectionString string ✔️ Pfad des Delta-Tabellenstammordners, einschließlich Anmeldeinformationen. Kann auf Azure Blob Storage Blobcontainer, Azure Data Lake Gen 2-Dateisystem oder Azure Data Lake Gen 1-Container verweisen. Der externe Tabellenspeichertyp wird durch den bereitgestellten Verbindungszeichenfolge bestimmt. Weitere Informationen finden Sie unter Speicherverbindungszeichenfolgen.
Eigenschaft string Ein Schlüssel-Wert-Eigenschaftspaar im Format PropertyName=PropertyValue. Siehe optionale 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 Deltaprotokoll abgeleitet. Partitionsspalten werden dem Tabellenschema als virtuelle Spalten hinzugefügt. Weitere Informationen finden Sie unter Virtuelle Spalten.
  • Das Pfadformat wird automatisch aus 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 dem Verbindungszeichenfolge, der bei 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 mit denen identisch, 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 dateierweiterungen der Dateien an. Beim Schreiben enden 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 festgelegt, wird die definition der externen Tabelle nicht beibehalten. Diese Option ist nützlich, um die externe Tabellendefinition zu überprüfen, insbesondere in Verbindung mit dem filesPreview Parameter oder sampleUris .

Hinweis

Während der Erstellung wird auf die externe Deltatabelle 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 Deltatabelle mit einem abgeleiteten Schema

In der folgenden externen Tabelle wird das Schema automatisch aus der neuesten Deltatabellenversion 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, das das Schema der Deltatabelle überschreibt. Wenn Sie zu einem späteren Zeitpunkt das benutzerdefinierte Schema durch das Schema basierend auf der neuesten Deltatabellenversion 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'
)

Einschränkungen

  • Zeitreisen werden nicht unterstützt. Es wird nur die neueste Deltatabellenversion verwendet.