Co to są wektory usuwania?

Wektory usuwania to funkcja optymalizacji magazynu, którą można włączyć w tabelach usługi Delta Lake. Domyślnie po usunięciu pojedynczego wiersza w pliku danych cały plik Parquet zawierający rekord musi zostać zapisany ponownie. W przypadku włączenia wektorów usuwania dla tabeli operacje DELETE, UPDATEi MERGE używają wektorów usuwania do oznaczania istniejących wierszy jako usuniętych lub zmienionych bez ponownego zapisywania pliku Parquet. Kolejne operacje odczytu w tabeli rozpoznają bieżący stan tabeli, stosując usunięcia odnotowane przez wektory usuwania do najnowszej wersji tabeli.

Usługa Databricks zaleca używanie środowiska Databricks Runtime 14.3 LTS lub nowszego do zapisywania tabel z wektorami usuwania w celu wykorzystania wszystkich optymalizacji. Tabele można odczytywać z wektorami usuwania włączonymi w środowisku Databricks Runtime 12.2 LTS lub nowszym.

W środowisku Databricks Runtime 14.2 lub nowszym tabele z wektorami usuwania obsługują współbieżność na poziomie wiersza. Zobacz Konflikty zapisu ze współbieżnością na poziomie wiersza.

Uwaga

Photon wykorzystuje wektory usuwania na potrzeby predykcyjnych aktualizacji we/wy, przyspieszając DELETEoperacje , MERGEi UPDATE . Wszyscy klienci obsługujący wektory usuwania odczytu mogą odczytywać aktualizacje, które wygenerowały wektory usuwania, niezależnie od tego, czy te aktualizacje zostały utworzone przez predykcyjne operacje we/wy. Zobacz Przyspieszanie aktualizacji przy użyciu predykcyjnego we/wy.

Włączanie wektorów usuwania

Ważne

Ustawienie administratora obszaru roboczego określa, czy wektory usuwania są automatycznie włączone dla nowych tabel delty. Zobacz Automatyczne włączanie wektorów usuwania.

Obsługę wektorów usuwania w tabeli usługi Delta Lake można włączyć, ustawiając właściwość tabeli usługi Delta Lake. Można włączyć wektory usuwania podczas tworzenia tabeli lub zmienić istniejącą tabelę, jak w następujących przykładach:

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Ostrzeżenie

Po włączeniu wektorów usuwania protokół tabeli zostanie uaktualniony. Po uaktualnieniu tabela nie będzie czytelna dla klientów usługi Delta Lake, którzy nie obsługują wektorów usuwania. Zobacz Jak usługa Azure Databricks zarządza zgodnością funkcji usługi Delta Lake?.

W środowisku Databricks Runtime 14.1 lub nowszym można usunąć funkcję tabeli wektorów usuwania, aby umożliwić zgodność z innymi klientami delty. Zobacz Usuwanie funkcji tabeli delty.

Stosowanie zmian w plikach danych Parquet

Wektory usuwania wskazują zmiany wierszy jako usunięcia nietrwałe, które logicznie modyfikują istniejące pliki danych Parquet w tabeli usługi Delta Lake. Te zmiany są stosowane fizycznie, gdy pliki danych zostaną przepisane, co jest wyzwalane przez jedno z następujących zdarzeń:

  • Polecenie OPTIMIZE jest uruchamiane w tabeli.
  • Automatyczne kompaktowanie wyzwala ponowne zapisywanie pliku danych z wektorem usuwania.
  • REORG TABLE ... APPLY (PURGE) polecenie jest uruchamiane względem tabeli.

Zdarzenia związane z kompaktowaniem plików nie mają ścisłych gwarancji rozpoznawania zmian zarejestrowanych w wektorach usuwania, a niektóre zmiany zarejestrowane w wektorach usuwania mogą nie być stosowane, jeśli docelowe pliki danych nie byłyby w przeciwnym razie kandydatami do kompaktowania plików. REORG TABLE ... APPLY (PURGE) Ponownie zapisuje wszystkie pliki danych zawierające rekordy z modyfikacjami zarejestrowanymi przy użyciu wektorów usuwania. Zobacz REORG TABLE (TABELA REORG).

Uwaga

Zmodyfikowane dane mogą nadal istnieć w starych plikach. Możesz uruchomić polecenie VACUUM , aby fizycznie usunąć stare pliki. REORG TABLE ... APPLY (PURGE) Tworzy nową wersję tabeli w momencie jego ukończenia, czyli znacznik czasu, który należy wziąć pod uwagę, aby próg VACUUM przechowywania operacji w pełni usunąć usunięte pliki. Zobacz Usuwanie nieużywanych plików danych z próżnią.

Zgodność z klientami usługi Delta

Usługa Azure Databricks wykorzystuje wektory usuwania do zasilania predykcyjnego we/wy na potrzeby aktualizacji zasobów obliczeniowych z włączoną usługą Photon. Zobacz Przyspieszanie aktualizacji przy użyciu predykcyjnego we/wy.

Obsługa korzystania z wektorów usuwania dla operacji odczytu i zapisu różni się w zależności od klienta.

W poniższej tabeli przedstawiono wymagane wersje klienta do odczytywania i zapisywania tabel różnicowych z włączonymi wektorami usuwania i określa, które operacje zapisu korzystają z wektorów usuwania:

Klient Zapis wektorów usuwania Odczytywanie wektorów usuwania
Środowisko uruchomieniowe usługi Databricks z aplikacją Photon Obsługuje MERGEsystem , UPDATEi DELETE przy użyciu środowiska Databricks Runtime 12.2 LTS i nowszych wersji. Wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.
Środowisko uruchomieniowe usługi Databricks bez usługi Photon Obsługuje DELETE używanie środowiska Databricks Runtime 12.2 LTS lub nowszego. Obsługuje UPDATE korzystanie z środowiska Databricks Runtime w wersji 14.1 lub nowszej. Obsługuje MERGE używanie środowiska Databricks Runtime 14.3 LTS lub nowszego. Wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.
System operacyjny Apache Spark z usługą Delta Lake systemu operacyjnego Obsługuje DELETE używanie funkcji delta systemu operacyjnego 2.4.0 i nowszych. Obsługuje UPDATE używanie funkcji delta systemu operacyjnego 3.0.0 i nowszych. Wymaga różnicy systemu operacyjnego 2.3.0 lub nowszej.
Adresaci udostępniania różnicowego Zapisy nie są obsługiwane w tabelach udostępniania różnicowego Databricks: wymaga DBR 14.1 lub nowszego. Platforma Apache Spark typu open source: wymaga delta-sharing-spark wersji 3.1 lub nowszej.

Uwaga

Aby uzyskać pomoc techniczną w innych klientach usługi Delta, zobacz dokumentację integracji usługi Delta Lake systemu operacyjnego.

Ograniczenia

  • Aplikacja UniForm nie obsługuje wektorów usuwania.
  • Można włączyć wektory usuwania dla zmaterializowanych widoków, ale aby wyłączyć wektory usuwania dla zmaterializowanego widoku, należy usunąć zmaterializowany widok i utworzyć go ponownie.
  • Nie można wygenerować pliku manifestu dla tabeli z obecnymi wektorami usuwania. Aby wygenerować manifest, uruchom polecenie REORG TABLE ... APPLY (PURGE) i upewnij się, że nie są uruchomione żadne współbieżne operacje zapisu.
  • Nie można przyrostowo wygenerować plików manifestu dla tabeli z włączonymi wektorami usuwania.