Udostępnij za pośrednictwem


Używanie śledzenia wierszy dla tabel delty

Śledzenie wierszy usługi Delta Lake umożliwia usłudze Azure Databricks śledzenie pochodzenia wierszy w tabeli delty. Ta funkcja jest wymagana w przypadku niektórych aktualizacji przyrostowych dla zmaterializowanych widoków.

Ważne

Śledzenie wierszy usługi Delta Lake jest dostępne w środowisku Databricks Runtime 14.1 lub nowszym.

Śledzenie wierszy jest funkcją tabeli i używa wyższego protokołu modułu zapisywania tabel niż niektórzy klienci usługi Delta Lake. Nie można obniżyć wersji protokołu tabel, a tabele z włączonym śledzeniem wierszy nie są zapisywane przez klientów usługi Delta Lake, które nie obsługują wszystkich funkcji tabel protokołu zapisywania różnicowego. Zobacz artykuł Jak usługa Azure Databricks zarządza zgodnością funkcji usługi Delta Lake?.

Włączanie śledzenia wierszy

Należy jawnie włączyć śledzenie wierszy, ustawiając właściwość delta.enableRowTracking = truetabeli .

Można to zrobić podczas tworzenia tabeli, jak w poniższym przykładzie:

CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;

Możesz zmienić istniejącą tabelę, aby włączyć śledzenie wierszy, jak w poniższym przykładzie:

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);

Ważne

Włączenie śledzenia wierszy w istniejących tabelach automatycznie przypisuje identyfikatory wierszy i wersje zatwierdzeń wierszy do wszystkich istniejących wierszy w tabeli. Ten proces może spowodować utworzenie wielu nowych wersji tabeli i może zająć dużo czasu.

Klonowanie tabeli delty tworzy oddzielną historię, więc identyfikatory wierszy i wersje zatwierdzeń wierszy w sklonowanych tabelach nie są zgodne z tymi w oryginalnej tabeli.

Jaki jest schemat pól metadanych śledzenia wierszy?

Śledzenie wierszy dodaje do tabeli dwa ukryte pola metadanych. Możesz jawnie dodać te pola do zapytania, aby zwrócić wartości.

Nazwa kolumny Typ Wartości Wyjaśnienie
_metadata.row_id Długi Unikatowy identyfikator wiersza. Wiersz zachowuje ten sam identyfikator za każdym razem, gdy jest modyfikowany przy użyciu instrukcji MERGE or UPDATE .
_metadata.row_commit_version Długi Wersja dziennika delty lub tabeli, w której wiersz został ostatnio wstawiony lub zaktualizowany. Wiersz jest przypisywany do nowej wersji za każdym razem, gdy jest modyfikowany przy użyciu instrukcji MERGE or UPDATE .

Niektóre operacje przechowują te pola metadanych przy użyciu dziennika transakcji. REORG Uruchamianie OPTIMIZE lub operacje w tabeli z włączonym śledzeniem wierszy ponownie zapisuje pliki danych w celu przechowywania tych pól.

Wyłączanie śledzenia wierszy

Śledzenie wierszy można wyłączyć, ustawiając właściwość tabeli na falsewartość .

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);

Ważne

Wyłączenie śledzenia wierszy nie powoduje usunięcia odpowiedniej funkcji tabeli i nie obniża wersji protokołu tabeli. Nie powoduje również usunięcia pól metadanych z tabeli docelowej.

Po wyłączeniu śledzenia wierszy wygenerowane identyfikatory wierszy nie są już niezawodne do śledzenia unikatowych wierszy.

Ograniczenia

Nie można uzyskać dostępu do pól metadanych identyfikatorów wierszy i zatwierdzeń wierszy podczas odczytywania zestawienia danych zmian. Zobacz Use Delta Lake change data feed on Azure Databricks (Używanie zestawienia zmian usługi Delta Lake w usłudze Azure Databricks).