Uwaga
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.
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 DELETE
, UPDATE
i MERGE
operacje używają wektorów usuwania do oznaczania istniejących wierszy jako usuniętych lub zmienionych bez ponownego zapisywania pliku Parquet. Kolejne odczyty w tabeli ustalają bieżący stan tabeli, stosując usunięcia wskazane 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, aby móc wykorzystać wszystkie udoskonalenia. 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 zawierające wektory usuwania obsługują równoczesny dostęp na poziomie wiersza. Zobacz Konflikty zapisu z współbieżnością na poziomie wiersza.
Uwaga
Photon wykorzystuje wektory kasowania na potrzeby predykcyjnych aktualizacji WE/WY, przyspieszając DELETE
, MERGE
i UPDATE
operacje. Wszyscy klienci obsługujący odczyty wektorów usuwania mogą odczytywać aktualizacje, które wygenerowały wektory usuwania, niezależnie od tego, czy predykcyjne operacje wejścia/wyjścia wygenerowały te aktualizacje. Zobacz Przyspieszanie aktualizacji przy użyciu predykcyjnego we/wy.
Włącz wektory 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.
Jeśli jest używane ustawienie obszaru roboczego do kontrolowania automatycznego włączania wektorów usuwania, na podstawie opcji wybranej dla typów tabel wektory usuwania są domyślnie włączone podczas tworzenia nowej tabeli przy użyciu usługi SQL Warehouse lub Databricks Runtime 14.1 lub nowszej.
Uwaga
Wektory usuwania nie są domyślnie włączone dla zmaterializowanych widoków i tabel przesyłania strumieniowego przechowywanych w magazynie metadanych Hive.
Aby ręcznie włączyć lub wyłączyć obsługę wektorów usuwania w dowolnej tabeli lub widoku Delta (w tym w tabelach przesyłania strumieniowego i zmaterializowanych widokach), użyj delta.enableDeletionVectors
właściwości tabeli. Możesz ręcznie wybrać, czy włączyć wektory usuwania w tabeli delty podczas tworzenia lub zmieniania tabeli, jak w poniższym przykładzie. Nie można użyć instrukcji ALTER
, aby włączyć lub wyłączyć wektory usuwania w zmaterializowanym widoku lub tabeli przesyłania strumieniowego.
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 kompatybilność funkcji Delta Lake i protokoły.
W środowisku Databricks Runtime 14.1 lub nowszym można usunąć funkcję tabeli z wektorami usunięć, aby umożliwić zgodność z innymi klientami Delta. Zobacz Usuwanie funkcji tabeli Delta Lake i obniżanie poziomu protokołu tabeli.
Zastosuj zmiany w plikach danych Parquet
Wektory usuwania oznaczają zmiany w wierszach jako miękkie usunięcia, które logicznie modyfikują istniejące pliki danych Parquet w tabeli Delta Lake. Te zmiany są stosowane fizycznie, gdy jedno z następujących zdarzeń powoduje ponowne napisanie plików danych:
- Polecenie
OPTIMIZE
jest uruchamiane w tabeli. - Automatyczne kompaktowanie wyzwala ponowne zapisywanie pliku danych z wektorem usuwania.
-
REORG TABLE ... APPLY (PURGE)
jest uruchamiany 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.
Uwaga
Zmodyfikowane dane mogą nadal istnieć w starych plikach. Możesz uruchomić VACUUM, aby fizycznie usunąć stare pliki.
REORG TABLE ... APPLY (PURGE)
tworzy nową wersję tabeli po jej zakończeniu. Ten czas ukończenia to sygnatura czasowa, którą należy wziąć pod uwagę przy określaniu progu przechowywania dla operacji VACUUM
, aby całkowicie usunąć usunięte pliki. Zobacz Usuwanie nieużywanych plików danych za pomocą próżni.
Zgodność z klientami usługi Delta
Usługa Azure Databricks używa wektorów usuwania do wspomagania predykcyjnych operacji we/wy w celu aktualizacji zasobów obliczeniowych z technologią Photon. Zobacz Przyspieszanie aktualizacji przy użyciu predykcyjnego we/wy.
Obsługa używania 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 Delta z włączonymi wektorami usuwania oraz wskazuje, które operacje zapisu używają wektorów usuwania.
Klient | Zapis wektorów usuwania | Odczytywanie wektorów usuwania |
---|---|---|
Środowisko uruchomieniowe usługi Databricks z aplikacją Photon | Obsługuje MERGE , UPDATE i DELETE przy użyciu środowiska Databricks Runtime 12.2 LTS i jego nowszych wersji. |
Wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego. |
Środowisko uruchomieniowe usługi Databricks bez usługi Photon | Obsługuje DELETE korzystanie z środowiska Databricks Runtime 12.2 LTS lub nowszego. Obsługuje UPDATE korzystanie ze środowiska Databricks Runtime w wersji 14.1 lub nowszej. Obsługuje MERGE korzystanie ze środowiska Databricks Runtime 14.3 LTS lub nowszego. |
Wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego. |
OSS Apache Spark z OSS Delta Lake | Obsługuje DELETE przy użyciu OSS Delta 2.4.0 i nowszych wersji. Obsługuje UPDATE z wykorzystaniem OSS Delta w wersji 3.0.0 i nowszych. |
Wymaga OSS Delta w wersji 2.3.0 lub nowszej. |
Adresaci udostępniania różnicowego | Zapisy nie są obsługiwane w tabelach Delta Sharing. | 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ą dotyczącą innych klientów Delta, zobacz dokumentację integracji z Delta Lake jako oprogramowania open source.
Ograniczenia
- Aplikacja UniForm nie obsługuje wektorów usuwania.
- Nie można użyć instrukcji GENERATE do wygenerowania pliku manifestu dla tabeli zawierającej pliki korzystające z wektorów usuwania. Aby wygenerować manifest, najpierw uruchom REORG TABLE … instrukcję APPLY (PURGE), a następnie uruchom instrukcję
GENERATE
. Należy upewnić się, że podczas przesyłania instrukcjiREORG
nie są uruchomione żadne operacje zapisu współbieżnego. - Nie można przyrostowo wygenerować plików manifestu dla tabeli z włączonymi wektorami usuwania (na przykład przez ustawienie właściwości tabeli
delta.compatibility.symlinkFormatManifest.enabled=true
). - Jeśli włączysz wektory usuwania w zmaterializowanym widoku lub tabeli przesyłania strumieniowego, a następnie je wyłączysz, przyszłe zapisy do widoku lub tabeli nie będą mogły korzystać z wektorów usuwania, ale istniejące wektory usuwania nie zostaną usunięte.
- Nie można obniżyć poziomu protokołu tabeli po włączeniu wektorów usuwania w zmaterializowanym widoku lub tabeli przesyłania strumieniowego. Po włączeniu funkcji tabeli związanej z wektorami usuwania nie można jej usunąć, nawet jeśli później wyłączysz wektory usuwania w widoku lub tabeli.