Pojęcia dotyczące tabel usługi Azure Databricks

Azure Databricks obsługuje trzy podstawowe typy tabel (zarządzane, zewnętrzne i obce) oraz dwa otwarte formaty magazynu (Delta Lake i Apache Iceberg). Wybranie odpowiedniej kombinacji określa sposób przechowywania, rządzenia i optymalizowania danych.

Tabela usługi Azure Databricks znajduje się w schemacie i zawiera wiersze danych. Domyślnym typem tabeli tworzonej w usłudze Azure Databricks jest tabela zarządzana Unity Catalog.

Formaty przechowywania

Formaty przechowywania określają, jak dane są fizycznie zorganizowane i śledzone w magazynie obiektów.

Usługa Azure Databricks obsługuje dwa podstawowe formaty magazynu otwartych tabel:

  • Usługa Delta Lake jest domyślnym formatem magazynu dla tabel zarządzanych i zewnętrznych w usłudze Azure Databricks. Funkcja Delta jest również obsługiwana w przypadku tabel obcych.
  • Platforma Apache Iceberg jest obsługiwana w przypadku tabel zarządzanych i obcych w Azure Databricks. Ten format jest przydatny podczas integracji z ekosystemem Góry Lodowej.

Oba formaty dodają transakcyjną warstwę pamięci masowej, która śledzi metadane oraz zapewnia zgodność z właściwościami ACID (atomowością, spójnością, izolacją i trwałością), odtwarzanie stanu danych z przeszłości i inne funkcje.

Typy tabel

Typy tabel w usłudze Azure Databricks definiują sposób, w jaki dane są własnością i do których uzyskiwany jest dostęp.

Azure Databricks obsługuje trzy podstawowe typy tabel. Typy tabel są określane przez to, który katalog jest właścicielem bazowych plików danych i nimi zarządza, jak opisano w poniższej tabeli:

Typ tabeli Zarządzanie wykazem Obsługa odczytu/zapisu Optymalizacja wydajności Optymalizacja kosztów magazynu
Zarządzany Katalog Unity Tak Tak Tak
Temporary Brak (tabela zarządzana z zasięgiem sesji) Tak Tak Tak
Zewnętrzny Brak (tylko pliki) Tak Tylko ręczne Tylko ręczne
Zagraniczny Zewnętrzna usługa systemu lub katalogu Tylko do odczytu Nie. Nie.

Aby uzyskać informacje na temat wybierania prawidłowego typu tabeli dla danego przypadku użycia, zobacz Wybieranie typu tabeli.

Tabele zarządzane

W przypadku tabel zarządzanych Unity Catalog zarządza zarówno plikami danych, jak i metadanymi tabeli. Pliki danych są przechowywane w lokalizacji zarządzanego magazynu usługi Unity Catalog w chmurze. Tabele zarządzane w Unity Catalog są domyślnym typem tabel przy tworzeniu tabel w usłudze Azure Databricks.

Usługa Databricks zaleca używanie tabel zarządzanych za każdym razem, gdy tworzysz nową tabelę. Tabele zarządzane automatycznie implementują ulepszenia wydajności, zmniejszają koszty magazynowania i zasobów obliczeniowych oraz umożliwiają dostęp do systemów zewnętrznych, takich jak Trino. Zobacz Tabele zarządzane.

W poniższym przykładzie przedstawiono zarządzaną tabelę o nazwie prod.people_ops_employees zawierającą dane dotyczące pięciu pracowników:

Przykładowa tabela zawierająca dane pracowników

Tabele zewnętrzne

Tabele zewnętrzne, nazywane czasami tabelami niezarządzanych, odwołują się do danych przechowywanych w zewnętrznym systemie magazynu, takim jak magazyn obiektów w chmurze. Azure Databricks rejestruje metadane tabeli, ale nie zarządza bazowymi plikami danych. Unity Catalog obsługuje tabele zewnętrzne w kilku formatach, w tym Delta Lake, co umożliwia odczytywanie ich za pomocą systemów zewnętrznych. Zobacz Tabele zewnętrzne.

Tabele zewnętrzne

Tabele obce reprezentują dane przechowywane w systemach zewnętrznych połączonych z usługą Azure Databricks za pośrednictwem usługi Lakehouse Federation. Tabele obce są tylko do odczytu w usłudze Azure Databricks. Zobacz Tabele zewnętrzne.

Tabele tymczasowe

Tabele tymczasowe to tabele o zakresie sesji, które przechowują dane przez czas trwania sesji usługi Azure Databricks. Są one przydatne do materializowania wyników pośrednich bez tworzenia tabel stałych w katalogu. Usługa Azure Databricks automatycznie usuwa tabele tymczasowe po zakończeniu sesji i nie potrzebujesz uprawnień katalogu ani schematu, aby je utworzyć. Zobacz Tabele tymczasowe w usługach Databricks SQL i Databricks Runtime.

Wybieranie typu tabeli

W przypadku większości nowych tabel użyj tabel zarządzanych . Azure Databricks automatyzuje optymalizację, zarządzanie cyklem życia magazynu i dostęp zewnętrzny.

Użyj tabel zewnętrznych, gdy:

  • Musisz zarejestrować istniejące dane w pamięci masowej w chmurze bez ich przenoszenia.
  • Potrzebujesz bezpośredniego dostępu opartego na ścieżkach z poziomu klientów innych niż Azure Databricks.
  • Pracujesz z formatami plików, które nie są obsługiwane przez zarządzane tabele, takie jak CSV lub JSON.
  • Usunięcie tabeli nie powinno usuwać bazowych plików danych.

Użyj tabel obcych, jeśli potrzebujesz dostępu tylko do odczytu danych w systemie zewnętrznym połączonym za pośrednictwem Lakehouse Federation, takim jak magazyn metadanych Hive lub katalog AWS Glue.

Jeśli chodzi o format przechowywania, Delta Lake jest formatem domyślnym i zalecanym dla większości obciążeń. Używaj Apache Iceberg podczas integracji z systemami zewnętrznymi, które wymagają formatu Iceberg.

Tabele w Unity Catalog

W Unity Catalog tabele znajdują się na trzecim poziomie trójpoziomowej przestrzeni nazw (catalog.schema.table), jak pokazano na poniższym diagramie:

Diagram modelu obiektów Unity Catalog ze szczególnym uwzględnieniem tabeli

Podstawowe uprawnienia tabeli

Większość operacji na tabeli wymaga uprawnień USE CATALOG i USE SCHEMA do katalogu i schematu, w których znajduje się tabela.

Poniższa tabela podsumowuje dodatkowe uprawnienia wymagane do typowych operacji na tabelach w usłudze Unity Catalog:

Operation Permissions
Tworzenie tabeli CREATE TABLE na schemacie zawierającym
Wykonywanie zapytań względem tabeli SELECT na stole
Aktualizowanie, usuwanie, scalanie lub wstawianie danych do tabeli SELECT i MODIFY na stole. Alternatywnie, można przyznać bardziej szczegółowy dostęp do zapisu z uprawnieniami INSERT, UPDATE, i DELETE (Beta). Zobacz uprawnienia DML o dużej szczegółowości.
Usuń tabelę MANAGE na stole
Zastąp tabelę MANAGE w tabeli, CREATE TABLE w schemacie nadrzędnym

Aby uzyskać informacje o składni języka SQL dla tych operacji, zobacz:

Aby uzyskać więcej informacji o uprawnieniach w Unity Catalog, zobacz Zarządzanie uprawnieniami w Unity Catalog.