Udostępnij za pośrednictwem


Płytkie klonowanie tabel Unity Catalog

Ważne

Ta funkcja jest dostępna w publicznej wersji testowej.

Ważne

Wsparcie dla płytkich klonów różni się w przypadku zarządzanych i zewnętrznych tabel w Unity Catalog. W przypadku tabel zarządzanych użyj środowiska Databricks Runtime 13.3 lub nowszego, a w przypadku tabel zewnętrznych użyj środowiska Databricks Runtime 14.2 lub nowszego.

Tabele zarządzane przez Unity Catalog mogą być sklonowane tylko do innych tabel zarządzanych przez Unity Catalog, a tabele zewnętrzne Unity Catalog do innych tabel zewnętrznych Unity Catalog. VACUUM zachowanie różni się między tabelami zarządzanymi i zewnętrznymi. Zobacz Użyj VACUUM wraz z płytkimi klonami w Unity Catalog.

Możesz użyć płytkiego klonowania, aby utworzyć nowe tabele Unity Catalog z istniejących tabel Unity Catalog. Płytkie klonowanie w Unity Catalog umożliwia tworzenie tabel z uprawnieniami kontroli dostępu niezależnie od tabel nadrzędnych, bez konieczności kopiowania bazowych plików danych.

Aby uzyskać informacje na temat klonowania tabeli, zobacz Klonowanie tabeli w usłudze Azure Databricks.

Tworzenie zarządzanego płytkiego klonu katalogu Unity

Utwórz płytką kopię zarządzanej tabeli w Unity Catalog.

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>

Aby utworzyć zarządzany płytki klon w Unity Catalog, musisz mieć następujące uprawnienia na zasobach źródłowych i docelowych.

Zasób Wymagane uprawnienia
Schemat źródłowy USE SCHEMA
Katalog źródłowy USE CATALOG
Schemat docelowy USE SCHEMA, CREATE TABLE
Katalog docelowy USE CATALOG

Podobnie jak inne instrukcje tworzenia tabeli, użytkownik tworzący shallow clone jest właścicielem tabeli docelowej. Właściciel sklonowanej tabeli docelowej kontroluje prawa dostępu dla tej tabeli niezależnie od tabeli źródłowej. Oznacza to, że właściciel sklonowanej tabeli może różnić się od właściciela tabeli źródłowej.

Tworzenie zewnętrznego płytkiego klonu Katalogu Unity

Określ lokalizację zewnętrzną, aby utworzyć zewnętrzny płytki klon katalogu Unity.

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
LOCATION 's3://<bucket-name>/<path-name>/<target-table-name>'

Aby utworzyć zewnętrzny płytki duplikat w Unity Catalog, musisz mieć następujące uprawnienia na zasobach źródłowych i docelowych.

Zasób Wymagane uprawnienia
Schemat źródłowy USE SCHEMA
Katalog źródłowy USE CATALOG
Schemat docelowy USE SCHEMA, CREATE TABLE
Katalog docelowy USE CATALOG
Docelowa lokalizacja zewnętrzna CREATE EXTERNAL TABLE

Praca z płytko sklonowanymi tabelami w standardowym trybie dostępu

Aby wykonać zapytanie dotyczące płytkiego klonu w trybie dostępu standardowego (dawniej trybie dostępu współdzielonego), należy posiadać następujące uprawnienia w tabeli i zasobach zawierających.

Zasób Wymagane uprawnienia
Katalog USE CATALOG
Schemat USE SCHEMA
Tabela SELECT

Aby wykonać następujące akcje, musisz również mieć MODIFY uprawnienia do obiektu docelowego operacji klonowania.

  • Wstaw rekordy
  • Usuwanie rekordów
  • Aktualizacja rekordów
  • MERGE
  • CREATE TABLE
  • DROP TABLE

Praca z płytkimi sklonowanymi tabelami w trybie dedykowanego dostępu

Podczas pracy z płytkimi klonami Unity Catalog w trybie dedykowanego dostępu (dawniej znanym jako tryb dostępu pojedynczego użytkownika), musisz mieć uprawnienia do zasobów źródła sklonowanej tabeli oraz tabeli docelowej.

Oznacza to, że w przypadku prostych zapytań oprócz wymaganych uprawnień w tabeli docelowej musisz mieć USE uprawnienia do katalogu źródłowego i schematu oraz SELECT uprawnień w tabeli źródłowej. W przypadku zapytań, które będą aktualizować lub wstawiać rekordy do tabeli docelowej, musisz również mieć MODIFY uprawnienia do tabeli źródłowej.

Usługa Databricks zaleca pracę z klonami Unity Catalog na komputerze w standardowym trybie dostępu, ponieważ umożliwia to niezależną ewolucję uprawnień dla płytkich klonów docelowych Unity Catalog i ich tabel źródłowych.

Użyj VACUUM z płytkimi klonami Unity Catalog

W przypadku używania tabel Katalogu Unity jako źródła i celu płytkiej operacji klonowania, Katalog Unity zarządza podstawowymi plikami danych w celu zwiększenia niezawodności źródła i celu operacji klonowania. Uruchomienie VACUUM na źródle płytkiego klonu nie powoduje uszkodzenia sklonowanej tabeli.

Zwykle podczas VACUUM identyfikowania prawidłowych plików dla danego progu przechowywania brane są pod uwagę tylko metadane bieżącej tabeli. Jednak obsługa płytkiego klonowania dla Unity Catalog śledzi relacje między wszystkimi sklonowanymi tabelami i plikami danych źródłowych, dlatego ważne pliki są rozszerzane tak, aby zawierały pliki danych niezbędne do zwracania zapytań dla każdej płytko sklonowanej tabeli, jak również tabeli źródłowej.

Oznacza to, że w przypadku semantyki płytkiego klonowania Unity Catalog, prawidłowym plikiem danych jest każdy plik w określonym progu zatrzymania dla tabeli źródłowej lub dla jakiejkolwiek sklonowanej tabeli. Zarządzane tabele i tabele zewnętrzne mają nieco inną semantyka.

Ulepszone śledzenie zmian metadanych pokazuje, w jaki sposób operacje VACUUM wpływają na podstawowe pliki danych tabel delty, zgodnie z poniższymi zasadami.

  • W przypadku tabel zarządzanych operacje VACUUM w stosunku do źródła lub celu operacji płytkiego klonowania mogą usunąć pliki danych z tabeli źródłowej.
  • W przypadku tabel zewnętrznych operacje VACUUM usuwają pliki danych jedynie wtedy, gdy są wykonywane względem tabeli źródłowej.
  • Usuwane są tylko pliki danych, które nie są uznawane za prawidłowe dla tabeli źródłowej lub wszelkie płytkie klony względem źródła.
  • Jeśli wiele płytkich klonów jest zdefiniowanych względem pojedynczej tabeli źródłowej, uruchomienie VACUUM na dowolnej z sklonowanych tabel nie powoduje usunięcia prawidłowych plików danych dla innych sklonowanych tabel.

Uwaga

Usługa Databricks zaleca, aby nigdy nie uruchamiać VACUUM z okresem przechowywania krótszym niż 7 dni, aby uniknąć uszkodzenia długotrwałych transakcji. Jeśli musisz uruchomić VACUUM z niższym progiem retencji, upewnij się, że rozumiesz, jak VACUUM w płytkich klonach w Unity Catalog różni się od interakcji VACUUM z innymi sklonowanymi tabelami w Azure Databricks. Aby uzyskać więcej informacji, zobacz Klonowanie tabeli w usłudze Azure Databricks.

Ponadto nawet w przypadku porzucania płytkiej sklonowanej tabeli może być konieczne SELECT uzyskanie dostępu do tej płytkiej sklonowanej tabeli do uruchomienia VACUUM w tabeli bazowej. Usługa Databricks odczytuje dziennik delty płytkiego klonu, aby sprawdzić, które pliki danych tabeli bazowej są nadal przez klon używane przed ich usunięciem. Databricks utrzymuje ten link przez 7 dni po usunięciu sklonowanej płytkiej tabeli, aby umożliwić operację UNDROP. Jednak w standardowym trybie dostępu to uprawnienie nie jest wymagane.

Usuń tabelę bazową dla klonu płytkiego

Jeśli tabela bazowa klonu płytkiego zostanie porzucona, klon stanie się bezużyteczny. Domyślnie usługa Databricks blokuje porzucanie tabeli podstawowej, jeśli nadal zawiera płytkie klony odwołujące się do niej.

Aby zastąpić tę ochronę, użyj DROP TABLE ... FORCE składni . Jeśli używasz FORCE:

  • Tabela podstawowa jest natychmiast usuwana.
  • Wszystkie odwołujące się do płytkich klonów przestają działać i:
    • Nie można uruchomić operacji wymagających odczytu danych lub metadanych (na przykład SELECT, , INSERTUPDATE, , ). DESCRIBE HISTORYCLONE
    • Nadal są widoczne za pośrednictwem operacji na poziomie metadanych (na przykład SHOW TABLES, DROP TABLE), aby umożliwić czyszczenie.

To zachowanie dotyczy tylko tabel zarządzanych przez Unity Catalog. Aby uzyskać więcej informacji, zobacz DROP TABLE.

Ograniczenia

  • Klony płytkie w tabelach zewnętrznych muszą być również tabelami zewnętrznymi. Płytkie klony w zarządzanych tabelach muszą być tabelami zarządzanymi.
  • Nie można użyć REPLACE ani CREATE OR REPLACE, aby nadpisać istniejący płytki klon. Zamiast tego DROP płytki klon i uruchom nową instrukcję CREATE.
  • Nie można udostępniać płytkich klonów za pomocą Delta Sharing.
  • Nie można zagnieżdżać płytkich klonów, co oznacza, że nie można utworzyć płytkiego klonu z płytkiego klonu.
  • W przypadku tabel zarządzanych usunięcie tabeli źródłowej powoduje przerwanie tabeli docelowej dla płytkich klonów. Pliki danych bazowych tabel zewnętrznych nie są usuwane przez DROP TABLE operacje, dlatego usunięcie źródła nie wpływa na płytkie klony tabel zewnętrznych.
  • Unity Catalog umożliwia użytkownikom UNDROP zarządzać tabelami przez około 7 dni po polecenia DROP TABLE. W środowisku Databricks Runtime 13.3 LTS lub nowszym zarządzane płytkie klony usuniętego źródłowego stołu nadal działają przez okres 7 dni, w którym Unity Catalog obsługuje UNDROP. Jeśli tabela źródłowa nie zostanie przywrócona w tym oknie, płytka kopia przestanie działać, gdy pliki danych źródłowych zostaną usunięte podczas zbierania śmieci.