Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Usuwanie funkcji tabeli delty

Ważne

Obsługa usuwania funkcji tabeli delty i wersji protokołu obniżania wersji jest dostępna w publicznej wersji zapoznawczej w środowisku Databricks Runtime 14.1 lub nowszym.

Usługa Azure Databricks zapewnia ograniczoną obsługę usuwania funkcji tabeli. Aby usunąć funkcję tabeli, muszą wystąpić następujące elementy:

  • Wyłącz właściwości tabeli korzystające z funkcji tabeli.
  • Usuń wszystkie ślady funkcji tabeli z plików danych kopii zapasowej tabeli.
  • Usuń wpisy transakcji korzystające z funkcji tabeli z dziennika transakcji.
  • Obniżanie poziomu protokołu tabeli.

Jeśli są obsługiwane, należy używać tej funkcji tylko do obsługi zgodności z wcześniejszymi wersjami środowiska Databricks Runtime, udostępnianiem delty lub innymi klientami czytnika lub zapisywania usługi Delta Lake.

Ważne

Wszystkie DROP FEATURE operacje powodują konflikt ze wszystkimi współbieżnymi zapisami.

Operacje odczytu przesyłania strumieniowego kończą się niepowodzeniem, gdy napotkają zatwierdzenie, które zmienia metadane tabeli. Jeśli chcesz, aby strumień kontynuował, musisz uruchomić go ponownie. Aby zapoznać się z zalecanymi metodami, zobacz Zagadnienia dotyczące produkcji przesyłania strumieniowego ze strukturą.

Jak mogę usunąć funkcję tabeli delty?

Aby usunąć funkcję tabeli delty, uruchom ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY] polecenie . Zobacz ALTER TABLE.

Musisz użyć środowiska Databricks Runtime 14.1 lub nowszego i mieć MODIFY uprawnienia do docelowej tabeli delty.

Jakie funkcje tabeli delty można porzucić?

Możesz usunąć następujące funkcje tabeli delty:

Nie można usunąć innych funkcji tabeli delty.

Włączanie funkcji tabeli w celu porzucania starszych funkcji

Polecenie DROP FEATURE wymaga wersji protokołu, które obsługują odczyty i zapisy funkcji tabeli. Funkcje różnicowe, takie jak columnMapping i checkConstraints , były obsługiwane we wcześniejszych wersjach protokołu. W zależności od innych funkcji włączonych w tabeli może być konieczne uaktualnienie wersji protokołu przed usunięciem tych funkcji.

Możesz użyć następującego polecenia, aby uaktualnić czytnik tabel i wersje składników zapisywania, co umożliwia usuwanie mapowania kolumn i obniżanie poziomu protokołu:

ALTER TABLE <table-name> SET TBLPROPERTIES (
  'delta.minReaderVersion' = '3',
  'delta.minWriterVersion' = '7'
)

W jaki sposób funkcje tabeli delty zostały porzucone?

Ponieważ funkcje tabeli delta reprezentują protokoły czytników i składników zapisywania, muszą być całkowicie nieobecne w dzienniku transakcji w celu pełnego usunięcia. Porzucanie funkcji występuje w dwóch etapach i wymaga czasu, który upłynął przed ukończeniem. Szczegóły usuwania funkcji różnią się w zależności od funkcji, ale poniższa sekcja zawiera ogólne omówienie.

Przygotowanie do porzucania funkcji tabeli

Podczas pierwszego etapu użytkownik przygotowuje się do porzucenia funkcji tabeli. Poniżej opisano, co dzieje się na tym etapie:

  1. Użytkownik uruchamia DROP FEATURE polecenie .
  2. Właściwości tabeli, które w szczególności włączają funkcję tabeli, mają ustawione wartości, aby wyłączyć tę funkcję.
  3. Właściwości tabeli kontrolujące zachowania skojarzone z porzuconą funkcją mają opcje ustawione na wartości domyślne przed wprowadzeniem funkcji.
  4. W razie potrzeby pliki danych i metadanych zostaną przepisane z uwzględnieniem zaktualizowanych właściwości tabeli.
  5. Polecenie kończy działanie i zwraca komunikat o błędzie informujący użytkownika, że musi poczekać 24 godziny, aby kontynuować usuwanie funkcji.

Po pierwszym wyłączeniu funkcji możesz kontynuować zapisywanie w tabeli docelowej przed ukończeniem obniżania poziomu protokołu, ale nie można użyć funkcji tabeli, którą usuwasz.

Uwaga

Jeśli pozostawisz tabelę w tym stanie, operacje względem tabeli nie używają funkcji tabeli, ale protokół nadal obsługuje funkcję tabeli. Dopóki nie ukończysz ostatniego kroku obniżania poziomu, tabela nie będzie czytelna dla klientów różnicowych, które nie rozumieją funkcji tabeli.

Obniżanie poziomu protokołu i usuwanie funkcji tabeli

Aby usunąć funkcję tabeli, należy usunąć całą historię transakcji skojarzona z funkcją i obniżyć jej dół.

  1. Po upływie co najmniej 24 godzin użytkownik ponownie wykona DROP FEATURE polecenie z klauzulą TRUNCATE HISTORY .
  2. Klient potwierdza, że żadna transakcja w określonym progu przechowywania nie używa funkcji tabeli, a następnie obcina historię tabeli do tej wartości.
  3. Protokół jest obniżany, upuszczając funkcję tabeli.
  4. Jeśli funkcje tabeli, które znajdują się w tabeli, mogą być reprezentowane przez starszą wersję protokołu, wartości minReaderVersion i minWriterVersion dla tabeli zostaną obniżone do najniższej wersji, która obsługuje dokładnie wszystkie pozostałe funkcje używane przez tabelę delty.

Ważne

Uruchomienie ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY spowoduje usunięcie wszystkich danych dziennika transakcji starszych niż 24 godziny. Po usunięciu funkcji tabeli delty nie masz dostępu do historii tabel ani podróży w czasie.

Zobacz artykuł Jak usługa Azure Databricks zarządza zgodnością funkcji usługi Delta Lake?.