Praca z tabelami zewnętrznymi
Tabele zewnętrzne przechowują dane w katalogu w magazynie obiektów w dzierżawie chmury. Należy określić lokalizację magazynu podczas definiowania tabeli zewnętrznej.
Usługa Databricks zaleca używanie tabel zewnętrznych tylko wtedy, gdy wymagane jest również bezpośredni dostęp do danych z klientów spoza usługi Databricks. Uprawnienia katalogu Unity nie są wymuszane, gdy użytkownicy uzyskują dostęp do plików danych z systemów zewnętrznych.
Ostrzeżenie
W przypadku aktualizacji metadanych tabeli zewnętrznej przy użyciu klienta innego niż Databricks lub dostępu opartego na ścieżkach z poziomu Databricks, te metadane nie są automatycznie synchronizowane ze stanem w Unity Catalog. Usługa Databricks odradza wykonywanie takich aktualizacji metadanych, ale jeżeli je wykonasz, trzeba uruchomić MSCK REPAIR TABLE <table-name> SYNC METADATA
, aby zaktualizować schemat w Unity Catalog. Zobacz REPAIR TABLE.
Uwaga
Ten artykuł koncentruje się na zewnętrznych tabelach Unity Catalog. Tabele zewnętrzne w starszym magazynie metadanych Hive mają różne zachowania. Zobacz Obiekty bazy danych w starszym magazynie metadanych Hive.
Praca z tabelami zewnętrznymi
Usługa Azure Databricks zarządza jedynie metadanymi tabel zewnętrznych i nie korzysta z lokalizacji magazynowej związanej ze schematem, który je zawiera. Rejestracja tabeli w Unity Catalog jest tylko wskaźnikiem na pliki danych. Po usunięciu tabeli zewnętrznej pliki danych nie zostaną usunięte.
Podczas tworzenia tabeli zewnętrznej można zarejestrować istniejący katalog plików danych jako tabelę lub podać ścieżkę do tworzenia nowych plików danych.
Tabele zewnętrzne mogą używać następujących formatów plików:
- DELTA
- CSV
- JSON
- AVRO
- PARKIET
- ORK
- TEKST
Tworzenie tabeli zewnętrznej
Aby utworzyć tabelę zewnętrzną, można użyć poleceń SQL lub operacji zapisu ramki danych.
Zanim rozpoczniesz
Aby utworzyć tabelę zewnętrzną, musisz spełnić następujące wymagania dotyczące uprawnień:
- Uprawnienie
CREATE EXTERNAL TABLE
w lokalizacji zewnętrznej, które umożliwia dostęp doLOCATION
przez tabelę zewnętrzną. - Uprawnienie
USE SCHEMA
na schemacie nadrzędnym tabeli. - Uprawnienie
USE CATALOG
w katalogu nadrzędnym tabeli. - Uprawnienie
CREATE TABLE
na schemacie nadrzędnym tabeli.
Aby uzyskać więcej informacji na temat konfigurowania lokalizacji zewnętrznych, zobacz Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.
Przykłady poleceń SQL
Użyj jednego z poniższych przykładów poleceń w notesie lub edytorze zapytań SQL, aby utworzyć tabelę zewnętrzną.
W poniższych przykładach zastąp wartości symboli zastępczych:
-
<catalog>
: nazwa wykazu, który będzie zawierać tabelę. -
<schema>
: nazwa schematu, który będzie zawierać tabelę. -
<table-name>
: nazwa tabeli. -
<column-specification>
: nazwa i typ danych dla każdej kolumny. -
<bucket-path>
: Ścieżka do kubełka w chmurze, gdzie zostanie utworzona tabela. -
<table-directory>
: katalog, w którym zostanie utworzona tabela. Użyj unikatowego katalogu dla każdej tabeli.
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
Aby uzyskać więcej informacji na temat parametrów tworzenia tabeli, zobacz CREATE TABLE.
Operacje zapisu ramki danych
Wielu użytkowników tworzy tabele zewnętrzne na podstawie wyników zapytania lub operacji zapisu ramki danych. W poniższych artykułach przedstawiono niektóre z wielu wzorców, których można użyć do utworzenia tabeli zewnętrznej w usłudze Azure Databricks:
Usuń tabelę zewnętrzną
Aby usunąć tabelę, musisz być jej właścicielem lub mieć uprawnienia MANAGE
na tabeli. Aby usunąć tabelę zewnętrzną, uruchom następujące polecenie SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Katalog Unity nie usuwa danych w przechowywaniu danych w chmurze podczas usuwania tabeli zewnętrznej. Jeśli chcesz usunąć dane skojarzone z tabelą, musisz bezpośrednio usunąć pliki danych bazowych.
Przykładowy notebook: tworzenie tabel zewnętrznych
W poniższym przykładowym notesie można utworzyć wykaz, schemat i tabelę zewnętrzną oraz zarządzać uprawnieniami.