Externe deltatabellen maken en wijzigen in Azure Storage
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer-
De opdrachten in dit artikel kunnen worden gebruikt om een delta-externe tabel te maken of te wijzigen in de database waaruit de opdracht wordt uitgevoerd. Een externe deltatabel verwijst naar Delta Lake-tabelgegevens die zich bevinden in Azure Blob Storage, Azure Data Lake Store Gen1 of Azure Data Lake Store Gen2.
Notitie
Als de tabel bestaat, mislukt de opdracht .create
met een fout. Gebruik .create-or-alter
of .alter
om bestaande tabellen te wijzigen.
Zie Queryversnellingsbeleidom query's via externe deltatabellen te versnellen.
Machtigingen
Als u .create
ten minste machtigingen voor databasegebruiker nodig hebt en .alter
ten minste machtigingen voor tabelbeheerder vereist.
Als u een externe tabel wilt .create-or-alter
met behulp van verificatie voor beheerde identiteiten, zijn machtigingen voor AllDatabasesAdmin vereist.
Syntaxis
(.create
| .alter
| .create-or-alter
) external
table
TableName [(
Schema)
] kind
=
delta
(
StorageConnectionString)
[with
(
Eigenschap [,
...])
]
Meer informatie over syntaxisconventies.
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
TableName- | string |
✔️ | Een externe tabelnaam die voldoet aan de namen van de entiteiten regels. Een externe tabel kan niet dezelfde naam hebben als een gewone tabel in dezelfde database. |
schema | string |
Het optionele externe gegevensschema is een door komma's gescheiden lijst met een of meer kolomnamen en gegevenstypen, waarbij elk item de indeling volgt: ColumnName: ColumnType. Als dit niet is opgegeven, wordt deze automatisch afgeleid uit het deltalogboek op basis van de meest recente deltatabelversie. |
|
StorageConnectionString- | string |
✔️ | hoofdmappad van deltatabel, inclusief referenties. Kan verwijzen naar Azure Blob Storage-blobcontainer, Azure Data Lake Gen 2-bestandssysteem of Azure Data Lake Gen 1-container. Het type externe tabelopslag wordt bepaald door de opgegeven verbindingsreeks. Zie opslagverbindingsreeksen. |
eigenschap | string |
Een sleutel-waarde-eigenschapspaar in de notatie PropertyName= PropertyValue. Zie optionele eigenschappen. |
Notitie
- Als er een aangepast schema wordt opgegeven, worden niet-bestaande kolommen of kolommen met niet-compatibele typen gevuld met null-waarden.
- Informatie over partities wordt automatisch afgeleid uit het deltalogboek. Partitiekolommen worden toegevoegd als virtuele kolommen aan het tabelschema. Zie Virtuele kolommenvoor meer informatie.
- De padindeling wordt automatisch afgeleid van de partitioneringsgegevens. Zie Padindeling voor meer informatie
Fooi
Voor een aangepast schema kunt u de infer_storage_schema-invoegtoepassing gebruiken om het schema af te leiden op basis van de inhoud van het externe bestand.
Verificatie en autorisatie
De verificatiemethode voor toegang tot een externe tabel is gebaseerd op de verbindingsreeks die is opgegeven tijdens het maken en de vereiste machtigingen voor toegang tot de tabel variëren, afhankelijk van de verificatiemethode.
De ondersteunde verificatiemethoden zijn hetzelfde als die worden ondersteund door externe Azure Storage-tabellen.
Optionele eigenschappen
Eigenschap | Type | Beschrijving |
---|---|---|
folder |
string |
De map van de tabel |
docString |
string |
Tekenreeks die de tabel documenteert |
compressed |
bool |
Alleen relevant voor het exportscenario. Als deze optie is ingesteld op waar, worden de gegevens geëxporteerd in de indeling die is opgegeven door de eigenschap compressionType . Voor het leespad wordt compressie automatisch gedetecteerd. |
compressionType |
string |
Alleen relevant voor het exportscenario. Het compressietype van geëxporteerde bestanden. Voor niet-Parquet-bestanden is alleen gzip toegestaan. Voor Parquet-bestanden zijn mogelijke waarden gzip , snappy , lz4_raw , brotli en zstd . De standaardwaarde is gzip . Voor het leespad wordt het compressietype automatisch gedetecteerd. |
namePrefix |
string |
Als deze optie is ingesteld, geeft u het voorvoegsel van de bestanden op. Bij schrijfbewerkingen worden alle bestanden met dit voorvoegsel geschreven. Bij leesbewerkingen worden alleen bestanden met dit voorvoegsel gelezen. |
fileExtension |
string |
Als deze optie is ingesteld, geeft u de extensie van de bestanden op. Bij schrijven eindigen bestandsnamen met dit achtervoegsel. Bij lezen worden alleen bestanden met deze bestandsextensie gelezen. |
encoding |
string |
Hiermee geeft u op hoe de tekst wordt gecodeerd: UTF8NoBOM (standaard) of UTF8BOM . |
dryRun |
bool |
Als deze optie is ingesteld, blijft de definitie van de externe tabel niet behouden. Deze optie is handig voor het valideren van de definitie van de externe tabel, met name in combinatie met de parameter filesPreview of sampleUris . |
Notitie
De externe deltatabel wordt geopend tijdens het maken, om de partitioneringsgegevens af te leiden en, optioneel, het schema. Zorg ervoor dat de tabeldefinitie geldig is en of de opslag toegankelijk is.
Voorbeelden
Een externe deltatabel maken of wijzigen met een afgeleid schema
In de volgende externe tabel wordt het schema automatisch afgeleid van de nieuwste deltatabelversie.
.create-or-alter external table ExternalTable
kind=delta
(
h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
)
Een externe deltatabel maken met een aangepast schema
In de volgende externe tabel wordt een aangepast schema opgegeven en wordt het schema van de deltatabel overschreven. Als u het aangepaste schema op een later tijdstip moet vervangen door het schema op basis van de meest recente deltatabelversie, voert u de opdracht .alter
| .create-or-alter
uit zonder een schema op te geven, zoals in het vorige voorbeeld.
.create external table ExternalTable (Timestamp:datetime, x:long, s:string)
kind=delta
(
h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)
Beperkingen
- Tijdreizen worden niet ondersteund. Alleen de meest recente deltatabelversie wordt gebruikt.