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.