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.
Important
Ta funkcja jest dostępna w publicznej wersji testowej.
Important
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 LTS lub nowszego, a w przypadku tabel zewnętrznych użyj środowiska Databricks Runtime 14.3 LTS 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.
Użyj klonowania płytkiego, aby utworzyć tabele Unity Catalog z uprawnieniami dostępu niezależnymi od tabel źródłowych, bez kopiowania bazowych plików danych. Klonowanie płytkie w Unity Catalog jest obsługiwane tylko dla tabel Delta Lake. Nie można utworzyć klonu płytkiego tabeli Iceberg ani żadnej innej tabeli innej niż Delta.
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 w przypadku innych instrukcji CREATE TABLE, po uruchomieniu SHALLOW CLONE stajesz się 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. 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 tryb dostępu współdzielonego), musisz mieć następujące uprawnienia w tabeli i zawierające zasoby:
| Zasób | Wymagane uprawnienia |
|---|---|
| Catalog | USE CATALOG |
| Schema | USE SCHEMA |
| Table | SELECT |
Aby uruchomić następujące operacje, musisz również mieć MODIFY uprawnienia do obiektu docelowego operacji klonowania:
INSERTDELETEUPDATEMERGECREATE TABLEDROP TABLE
Praca z płytkimi sklonowanymi tabelami w trybie dedykowanego dostępu
Podczas pracy z klonami płytkimi Unity Catalog w trybie dedykowanego dostępu (dawniej tryb dostępu dla pojedynczego użytkownika) musisz mieć uprawnienia do zasobów zarówno źródłowej sklonowanej tabeli, jak i tabeli docelowej.
W przypadku prostych zapytań oprócz wymaganych uprawnień do tabeli docelowej musisz mieć uprawnienia USE do katalogu źródłowego i schematu źródłowego oraz uprawnienia SELECT do tabeli źródłowej. W przypadku zapytań, które aktualizują lub wstawią rekordy do tabeli docelowej, musisz również mieć MODIFY uprawnienia do tabeli źródłowej.
Databricks zaleca używanie klonów Unity Catalog w zasobach obliczeniowych ze standardowym trybem dostępu, ponieważ pozwala to na niezależne zmienianie uprawnień dla docelowych płytkich klonów 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 przerwania 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 w Unity Catalog śledzi relacje między wszystkimi tabelami sklonowanymi płytko a źródłowymi plikami danych, dlatego zakres prawidłowych plików jest rozszerzany o pliki danych niezbędne do zwracania wyników zapytań zarówno dla tabel sklonowanych płytko, jak i dla tabeli źródłowej.
W przypadku VACUUM w klonie płytkim Unity Catalog prawidłowym plikiem danych jest dowolny plik mieszczący się w określonym progu retencji dla tabeli źródłowej lub dowolnej sklonowanej tabeli. Tabele zarządzane i tabele zewnętrzne mają nieco inne zachowania.
To ulepszone śledzenie metadanych zmienia sposób, w jaki operacje VACUUM wpływają na bazowe pliki danych w tabelach Delta Lake, w następujący sposób:
- W przypadku tabel zarządzanych operacje
VACUUMna źródle lub celu operacji płytkiego klonowania mogą spowodować usunięcie plików danych z tabeli źródłowej. - W przypadku tabel zewnętrznych operacje
VACUUMusuwają 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
VACUUMna dowolnej z sklonowanych tabel nie powoduje usunięcia prawidłowych plików danych dla innych sklonowanych tabel.
Note
Databricks zaleca, aby nigdy nie uruchamiać VACUUM z okresem przechowywania krótszym niż 7 dni, aby uniknąć uszkodzenia długotrwałych transakcji będących w toku. Jeśli potrzebujesz niższego progu retencji, zastanów się, czym VACUUM w przypadku płytkich klonów w Unity Catalog różni się od tego, jak VACUUM wpływa na inne sklonowane tabele w usłudze Azure Databricks. Aby uzyskać więcej informacji, zobacz Klonowanie tabeli w usłudze Azure Databricks.
Nawet jeśli usuniesz tabelę sklonowaną płytko, może być potrzebny dostęp SELECT do tej tabeli sklonowanej płytko, aby uruchomić VACUUM na 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. Usługa Databricks utrzymuje ten link przez 7 dni po usunięciu płytkiej sklonowanej tabeli w celu obsługi UNDROP operacji. Jednak w standardowym trybie dostępu to uprawnienie nie jest wymagane.
Usuń tabelę bazową dla klonu płytkiego
Możesz usunąć tabelę bazową zarządzanej tabeli Unity Catalog, nawet jeśli istniejące płytkie klony nadal się do niej odwołują. Klony czytają dalej, aż pliki danych tabeli bazowej zostaną usunięte, co wtedy czyni je bezużytecznymi. Możesz przywrócić tabelę bazową za pomocą UNDROP w okresie jej odzyskiwania, który domyślnie wynosi 7 dni i można go ustawić na poziomie katalogu lub schematu na 0 (aby wyłączyć odzyskiwanie) albo na wartość od 7 do 30 dni. Konfiguracja okresu regeneracji znajduje się w Public Preview. Jeśli nie przywrócisz tabeli, asynchroniczny proces czyszczenia usuwa pliki danych po zakończeniu okresu odzyskiwania, dzięki czemu klony mogą czytać przez pewien czas po tym, jak bazowa tabela nie będzie już do odzyskania. Aby odzyskać usuniętą tabelę bazową, użyj UNDROP.
Note
Niektóre przestrzenie robocze wymuszają ochronę przed czasem dropu dla tabel bazowych, które mają płytkie klony. Jeśli operacja DROP TABLE na takiej tabeli bazowej kończy się niepowodzeniem z błędem CANNOT_DROP_BASE_TABLE_REFERENCED_BY_SHALLOW_CLONE, oznacza to, że Twoja przestrzeń robocza wymusza to zabezpieczenie. Aby mimo to usunąć tabelę bazową, użyj DROP TABLE ... FORCE. Usunięcie tabeli bazowej z FORCE powoduje uszkodzenie płytkich klonów, które się do niej odwołują. Klony kończą się niepowodzeniem podczas operacji odczytujących dane lub metadane (na przykład SELECT, INSERT, UPDATE, DESCRIBE HISTORY, CLONE), ale pozostają widoczne dla operacji na poziomie metadanych (na przykład SHOW TABLES, DROP TABLE), aby można było je usunąć. Ta ochrona dotyczy tylko tabel zarządzanych w Unity Catalog.
Limitations
- Klonowanie płytkie jest obsługiwane tylko dla tabel Delta Lake. Nie można utworzyć klonu płytkiego tabeli Iceberg ani żadnej innej tabeli innej niż Delta.
- Nie można zastąpić
CREATE OR REPLACEistniejącego płytkiego klonu. UżyjDROP TABLE, a następnieCREATE TABLE, lub użyj nowej nazwy tabeli. - 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 udostępniać płytkich klonów przy użyciu funkcji OpenSharing.
- 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 zewnętrznych element
DROP TABLEnie usuwa źródłowych plików danych, więc usunięcie tabeli źródłowej nie ma wpływu na płytkie klony. - W przypadku tabel zarządzanych w Databricks Runtime w wersji 13.3 LTS i nowszych płytkie klony usuniętej tabeli źródłowej działają do momentu usunięcia źródłowych plików danych. Zobacz Usuwanie tabeli bazowej dla płytkiego klonu.