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
| ) external
table
TableName [(
Schema)
] kind
=
(
delta
StorageConnectionString)
[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.
Verwandte Inhalte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für