Tworzenie i zmienianie tabel zewnętrznych różnicowych w usłudze Azure Storage
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Polecenia w tym artykule mogą służyć do tworzenia lub zmieniania tabeli zewnętrznej różnicowej w bazie danych, z której jest wykonywane polecenie. Tabela zewnętrzna różnicowa odwołuje się do danych tabeli usługi Delta Lake znajdujących się w usłudze Azure Blob Storage, Azure Data Lake Store Gen1 lub Azure Data Lake Store Gen2.
Uwaga
Jeśli tabela istnieje, .create
polecenie zakończy się niepowodzeniem z powodu błędu. Użyj polecenia .create-or-alter
lub .alter
, aby zmodyfikować istniejące tabele.
Aby przyspieszyć zapytania dotyczące zewnętrznych tabel różnicowych, zobacz Zasady przyspieszania zapytań.
Uprawnienia
Wymaga .create
co najmniej uprawnień użytkownika bazy danych i wymaga .alter
co najmniej uprawnień administratora tabeli.
Do .create-or-alter
tabeli zewnętrznej przy użyciu uwierzytelniania tożsamości zarządzanej wymagane są uprawnienia AllDatabasesAdmin .
Składnia
(.create
| | .alter
.create-or-alter
) external
table
TableName [(
Schema)
] kind
delta
=
(
StorageConnectionString )
[with
(
Właściwość [,
...]])
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
TableName | string |
✔️ | Nazwa tabeli zewnętrznej zgodna z regułami nazw jednostek. Tabela zewnętrzna nie może mieć takiej samej nazwy jak zwykła tabela w tej samej bazie danych. |
Schemat | string |
Opcjonalny schemat danych zewnętrznych jest rozdzielaną przecinkami listą co najmniej jednej nazwy kolumn i typów danych, gdzie każdy element jest zgodny z formatem ColumnName : ColumnType. Jeśli nie zostanie określony, zostanie on automatycznie wywnioskowany z dziennika różnicowego na podstawie najnowszej wersji tabeli różnicowej. |
|
StorageConnectionString | string |
✔️ | ścieżka folderu głównego tabeli delty, w tym poświadczenia. Może wskazywać kontener obiektów blob usługi Azure Blob Storage, system plików usługi Azure Data Lake Gen 2 lub kontener usługi Azure Data Lake Gen 1. Typ magazynu tabel zewnętrznych jest określany przez podany parametry połączenia. Zobacz parametry połączenia magazynu. |
Właściwości | string |
Para właściwości klucz-wartość w formacie PropertyName = PropertyValue. Zobacz właściwości opcjonalne. |
Uwaga
- Jeśli zostanie podany schemat niestandardowy, kolumny lub kolumny o niezgodnych typach zostaną wypełnione wartościami null.
- Informacje o partycjach są automatycznie wnioskowane z dziennika różnicowego. Kolumny partycji są dodawane jako kolumny wirtualne do schematu tabeli. Aby uzyskać więcej informacji, zobacz Kolumny wirtualne.
- Format ścieżki jest automatycznie wnioskowany z informacji o partycjonowaniu. Aby uzyskać więcej informacji, zobacz Format ścieżki
Napiwek
W przypadku schematu niestandardowego można użyć wtyczki infer_storage_schema , aby wywnioskować schemat na podstawie zawartości pliku zewnętrznego.
Uwierzytelnianie i autoryzacja
Metoda uwierzytelniania dostępu do tabeli zewnętrznej jest oparta na parametry połączenia podanym podczas tworzenia, a uprawnienia wymagane do uzyskania dostępu do tabeli różnią się w zależności od metody uwierzytelniania.
Obsługiwane metody uwierzytelniania są takie same jak te obsługiwane przez tabele zewnętrzne usługi Azure Storage.
Właściwości opcjonalne
Właściwość | Type | Opis |
---|---|---|
folder |
string |
Folder tabeli |
docString |
string |
Ciąg dokumentujący tabelę |
namePrefix |
string |
W przypadku ustawienia wskazuje prefiks plików. W przypadku operacji zapisu wszystkie pliki zostaną zapisane przy użyciu tego prefiksu. W przypadku operacji odczytu tylko pliki z tym prefiksem są odczytywane. |
fileExtension |
string |
W przypadku ustawienia wskazuje rozszerzenia plików. Podczas zapisu nazwy plików będą kończyć się tym sufiksem. W przypadku odczytu będą odczytywane tylko pliki z tym rozszerzeniem pliku. |
encoding |
string |
Wskazuje, jak tekst jest zakodowany: UTF8NoBOM (wartość domyślna) lub UTF8BOM . |
dryRun |
bool |
W przypadku ustawienia definicja tabeli zewnętrznej nie jest utrwalana. Ta opcja jest przydatna do sprawdzania poprawności definicji tabeli zewnętrznej, szczególnie w połączeniu z parametrem filesPreview or sampleUris . |
Uwaga
Dostęp do zewnętrznej tabeli różnicowej jest uzyskiwany podczas tworzenia, aby wywnioskować informacje dotyczące partycjonowania i, opcjonalnie, schemat. Upewnij się, że definicja tabeli jest prawidłowa i czy magazyn jest dostępny.
Przykłady
Tworzenie lub zmienianie tabeli zewnętrznej różnicowej przy użyciu wywnioskowanych schematów
W poniższej tabeli zewnętrznej schemat jest automatycznie wnioskowany z najnowszej wersji tabeli różnicowej.
.create-or-alter external table ExternalTable
kind=delta
(
h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
)
Tworzenie tabeli zewnętrznej różnicowej przy użyciu niestandardowego schematu
W poniższej tabeli zewnętrznej jest określony schemat niestandardowy i zastępuje schemat tabeli różnicowej. Jeśli w późniejszym czasie musisz zastąpić schemat niestandardowy schematem na podstawie najnowszej wersji tabeli różnicowej, uruchom .alter
| .create-or-alter
polecenie bez określania schematu, jak w poprzednim przykładzie.
.create external table ExternalTable (Timestamp:datetime, x:long, s:string)
kind=delta
(
h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)
Ograniczenia
- Podróż czasowa nie jest obsługiwana. Używana jest tylko najnowsza wersja tabeli różnicowej.