Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano tabele zarządzane przez Unity Catalog w Delta Lake i Apache Iceberg, jako domyślny i zalecany typ tabeli w Azure Databricks. Te tabele są w pełni zarządzane i zoptymalizowane przez Unity Catalog, oferując wydajność, zalety operacyjne oraz niższe koszty magazynowania i obliczeń w porównaniu z tabelami zewnętrznymi i zagranicznymi, ponieważ zarządzane tabele uczą się na podstawie wzorców odczytu i zapisu. Katalog Unity zarządza wszystkimi obowiązkami odczytu, zapisu, magazynowania i optymalizacji dla tabel zarządzanych. Zobacz Jak przekonwertować zewnętrzną tabelę Delta na zarządzaną tabelę Unity Catalog.
Pliki danych dla tabel zarządzanych są przechowywane w schemacie lub wykazie zawierającym je. Zobacz Określanie zarządzanej lokalizacji magazynu w katalogu Unity.
Usługa Databricks zaleca korzystanie z tabel zarządzanych w celu skorzystania z:
- Obniżone koszty magazynowania i zasobów obliczeniowych.
- Szybsza wydajność zapytań we wszystkich typach klientów.
- Automatyczna konserwacja i optymalizacja tabel.
- Bezpieczny dostęp dla klientów niekorzystających z Databricks za pomocą otwartych interfejsów API.
- Obsługa formatów Delta Lake i Iceberg.
- Automatyczne uaktualnienia do najnowszych funkcji platformy.
Tabele zarządzane obsługują współdziałanie, umożliwiając dostęp z klienta Delta Lake i Iceberg. Dzięki otwartym interfejsom API i udostępnianiu poświadczeń Unity Catalog umożliwia aparatom zewnętrznym, takim jak Trino, DuckDB, Apache Spark, Daft i Iceberg, oraz zintegrowanym aparatom katalogu REST, takim jak Dremio, uzyskanie dostępu do zarządzanych tabel. W przypadku klientów zewnętrznych, którzy nie obsługują otwartych interfejsów API, można użyć trybu zgodności do odczytywania tabel zarządzanych przy użyciu dowolnego klienta usługi Delta Lake lub Iceberg. Funkcja Delta Sharing, protokół open source, umożliwia bezpieczne, zarządzane udostępnianie danych partnerom zewnętrznym i platformom.
Możesz pracować z tabelami zarządzanymi we wszystkich językach i produktach obsługiwanych w usłudze Azure Databricks. Musisz mieć pewne uprawnienia do tworzenia, aktualizowania, usuwania lub wykonywania zapytań względem tabel zarządzanych. Zobacz Zarządzanie uprawnieniami w Unity Catalog.
Note
Na tej stronie opisano tylko tabele zarządzane w Unity Catalog. W przypadku tabel zarządzanych w starszym magazynie metadanych Hive, zobacz Obiekty bazy danych w starszym magazynie metadanych Hive.
Dlaczego warto używać zarządzanych tabel w Unity Catalog?
Tabele zarządzane w katalogu Unity Catalog optymalizują koszty przechowywania danych i szybkość wykonywania zapytań oraz zapewniają interoperacyjność z narzędziami innych firm obsługującymi Delta Lake i Apache Iceberg. Aby uprościć zarządzanie danymi i wydajność, te tabele zarządzane używają technologii opartych na sztucznej inteligencji, takich jak kompaktowanie rozmiaru plików i inteligentne zbieranie statystyk.
Następujące funkcje są dostępne wyłącznie dla tabel zarządzanych w Unity Catalog i nie są dostępne dla tabel zewnętrznych ani tabel obcych:
| Feature | Benefits | Włączone domyślnie? | Konfigurowalne? |
|---|---|---|---|
| Zatwierdzenia wykazu | Umożliwia wykonywanie transakcji obejmujących wiele instrukcji w wielu tabelach, szybsze planowanie zapytań dzięki udostępnianiu metadanych bezpośrednio z Unity Catalog, wymuszalne zmiany schematu i ograniczeń oraz bezpieczne zapisy z zewnętrznych silników. | Nie. | Tak.delta.feature.catalogManaged Ustaw właściwość tabeli. Zobacz Włączanie zatwierdzeń katalogu. |
| Optymalizacja predykcyjna | Optymalizacja predykcyjna automatycznie optymalizuje rozmieszczenie danych i zasoby obliczeniowe z wykorzystaniem AI, bez konieczności wykonywania ręcznych operacji konserwacyjnych. Usługa Databricks zaleca włączenie optymalizacji predykcyjnej dla wszystkich zarządzanych tabel w celu zmniejszenia kosztów magazynowania i obliczeń. Optymalizacja predykcyjna jest uruchamiana automatycznie:
|
Tak, dla wszystkich nowych kont utworzonych 11 listopada 2024 r. lub później. W przypadku bieżących kont Azure Databricks domyślnie włącza optymalizację predykcyjną. Zobacz Sprawdzanie, czy optymalizacja predykcyjna jest włączona. |
Tak. Zobacz Włączanie optymalizacji predykcyjnej. |
| Transakcje wielooperacyjne | Umożliwia uruchamianie wielu instrukcji SQL obejmujących jedną lub więcej tabel jako jednej niepodzielnej transakcji, z zachowaniem właściwości ACID. Wszystkie zmiany kończą się powodzeniem lub cofają się razem. Służy do obsługi procedur składowanych i skryptów SQL w obciążeniach magazynowania o znaczeniu krytycznym. Transakcje zapisywane w zarządzanych tabelach usługi Delta Lake są dostępne w publicznej wersji zapoznawczej. Transakcje zapisywane w zarządzanych tabelach Apache Iceberg są dostępne w prywatnej wersji zapoznawczej. |
Nie. | Tak. Użyj BEGIN ATOMIC ... END; do transakcji nieinterakcyjnych lub BEGIN TRANSACTION; ... COMMIT; do transakcji interakcyjnych. Zobacz Tryby transakcji. |
| Automatyczne klastrowanie cieczy | W przypadku tabel z optymalizacją predyktywną automatyczne klastrowanie cieczy umożliwia Azure Databricks inteligentne wybieranie kluczy klastrowania. W miarę zmiany wzorców zapytań usługa Azure Databricks automatycznie aktualizuje klucze klastrowania w celu zwiększenia wydajności i obniżenia kosztów. | Nie. | Tak. Zobacz Włączanie klastrowania cieczy. |
| Buforowanie metadanych | Buforowanie w pamięci metadanych transakcji zwiększa wydajność zapytań, minimalizując żądania do dziennika transakcji przechowywanego w chmurze. | Tak. | Nie. Buforowanie metadanych jest zawsze włączone dla tabel zarządzanych. |
| Indeksy wyszukiwania pełnotekstowego | Indeksy wyszukiwania pełnotekstowego przyspieszają wyszukiwanie podciągów i słów kluczowych w kolumnach tekstowych zarządzanych tabel. Gdy indeks ma zastosowanie, Azure Databricks pomija pliki, które nie mogą zawierać pasujących wierszy, zmniejszając ilość skanowanych danych. Indeksy pełnotekstowe przyspieszają wyszukiwanie podciągów i słów za pomocą funkcji search i isearch.Indeksy wyszukiwania pełnotekstowego są w wersji beta i wymagają środowiska Databricks Runtime 18.2 lub nowszego. |
Nie. | Tak. Utwórz przy użyciu CREATE INDEX (pomocniczego) lub CREATE SEARCH INDEX (pełnotekstowego). |
Automatyczne usuwanie plików po poleceniu DROP TABLE |
Jeśli wykonasz polecenie DROP na tabeli zarządzanej, Azure Databricks usunie dane z magazynu w chmurze po 8 dniach, aby obniżyć koszty przechowywania danych. W przypadku tabel zewnętrznych należy ręcznie usunąć pliki z zasobnika pamięci. | Tak. | Nie. W przypadku tabel zarządzanych pliki są zawsze usuwane automatycznie po 8 dniach. |
Uzyskiwanie dostępu do danych usługi Databricks przy użyciu systemów zewnętrznych
Tabele zarządzane obsługują interoperacyjność, zezwalając na dostęp z klientów Delta Lake i Iceberg. Dzięki otwartym interfejsom API i dystrybucji poświadczeń, Unity Catalog umożliwia zewnętrznym aparatom, takim jak Trino, DuckDB, Apache Spark, Daft i Iceberg, oraz zintegrowanym z katalogiem REST aparatom, takim jak Dremio i Snowflake, aby uzyskać dostęp do zarządzanych tabel. Zapoznaj się z listą obsługiwanych integracji zewnętrznych silników lub sprawdź dokumentację swojego silnika, jeśli nie znajduje się na tej liście.
Następujące otwarte interfejsy API zapewniają systemom zewnętrznym dostęp do tabel zarządzanych przez katalog Unity:
- API REST Unity: zapewnia dostęp do odczytu, zapisu i tworzenia dla klientów usługi Delta dla zarządzanych tabel Delta.
- Katalog REST Iceberg (IRC): zapewnia dostęp do odczytu, zapisu i tworzenia dla klientów Iceberg do zarządzania tabelami Iceberg oraz dostęp tylko do odczytu do tabel Delta z włączonym odczytem Iceberg (UniForm).
Oba interfejsy API obsługują wydawanie poświadczeń, które zapewnia tymczasowe, ograniczone poświadczenia dziedziczące uprawnienia podmiotu zabezpieczeń usługi Azure Databricks, który złożył żądanie, zachowując kontrolę i zabezpieczenia.
Ponadto funkcja Delta Sharing to protokół typu open source, który umożliwia bezpieczny i zarządzany dostęp do danych partnerom zewnętrznym i platformom. Możesz użyć Delta Sharing, aby zapewnić partnerom tymczasowy dostęp tylko do odczytu.
Wszystkie operacje odczytu i zapisu w zarządzanych tabelach muszą używać nazw tabel oraz, gdzie występują, nazw wykazów i schematów. Na przykład catalog_name.schema_name.table_name. Dostęp oparty na ścieżkach do tabel zarządzanych przez Unity Catalog nie jest obsługiwany (z wyjątkiem trybu zgodności), ponieważ omija mechanizmy kontroli dostępu Unity Catalog i uniemożliwia prawidłowe działanie funkcji zarządzanych tabel.
Tworzenie tabeli zarządzanej
Aby utworzyć zarządzaną tabelę, musisz mieć następujące elementy:
-
USE SCHEMAw schemacie nadrzędnym tabeli. -
USE CATALOGw katalogu nadrzędnym tabeli. -
CREATE TABLEw schemacie nadrzędnym tabeli.
Użyj następującej składni SQL, aby utworzyć pustą tabelę zarządzaną przy użyciu języka SQL. Zastąp wartości zastępcze:
-
<catalog-name>: nazwa wykazu, który będzie zawierać tabelę. -
<schema-name>: nazwa schematu zawierająca tabelę. -
<table-name>: nazwa tabeli. -
<column-specification>: Nazwa i typ danych każdej kolumny.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
)
USING iceberg;
Aby zachować wydajność operacji odczytu i zapisu, usługa Azure Databricks okresowo uruchamia operacje w celu zoptymalizowania zarządzanych metadanych tabeli Iceberg. To zadanie jest wykonywane przy użyciu obliczeń bezserwerowych, które mają MODIFY uprawnienia do tabeli Iceberg. Ta operacja zapisuje tylko metadane tabeli, a obliczenia zachowują tylko uprawnienia do tabeli przez czas trwania zadania.
Note
Aby utworzyć tablicę Iceberg, jawnie określ USING iceberg. W przeciwnym razie usługa Azure Databricks domyślnie tworzy tabelę Delta Lake.
Tabele zarządzane można tworzyć 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 zarządzanej w usłudze Azure Databricks:
- CREATE TABLE [UŻYCIE]
- CREATE TABLE LIKE
- tworzenie lub modyfikowanie tabeli przy użyciu przesyłania plików
Usuwanie zarządzanej tabeli
Aby usunąć zarządzaną tabelę, musisz mieć następujące elementy:
-
MANAGEw tabeli lub musisz być właścicielem tabeli. -
USE SCHEMAw schemacie nadrzędnym tabeli. -
USE CATALOGw katalogu nadrzędnym tabeli.
Aby usunąć zarządzaną tabelę, uruchom następujące polecenie SQL:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Catalog obsługuje polecenie UNDROP TABLE do odzyskiwania usuniętych tabel zarządzanych przez 8 dni. Po upływie 8 dni usługa Azure Databricks oznacza dane bazowe jako przeznaczone do usunięcia z dzierżawy chmury i usuwa pliki w trakcie automatycznych prac konserwacyjnych dotyczących tabel. Zobacz UNDROP.