Udostępnij za pośrednictwem


Tworzenie i zmienianie tabel zewnętrznych różnicowych w usłudze Azure Storage

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.

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.