Udostępnij przez


Używanie śledzenia wierszy dla tabel delty

Śledzenie wierszy w Delta Lake umożliwia usłudze Azure Databricks śledzenie pochodzenia na poziomie wiersza w tabeli Delta. Ta funkcja jest wymagana dla niektórych aktualizacji przyrostowych 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 zapisu tabeli niż niektóre klienty Delta Lake. Nie można obniżyć wersji protokołu tabel, a tabele z włączonym śledzeniem wierszy nie są zapisywalne przez klientów Delta Lake, którzy nie obsługują wszystkich włączonych funkcji protokołu zapisu Delta. Zobacz kompatybilność funkcji Delta Lake i protokoły.

Włącz śledzenie 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 Unikalny identyfikator wiersza. Wiersz zachowuje ten sam identyfikator za każdym razem, gdy jest modyfikowany przy użyciu instrukcji MERGE lub UPDATE.
_metadata.row_commit_version Długi Wersja dziennika delty lub tabeli, w której wiersz został ostatnio wstawiony lub zaktualizowany. Wiersz otrzymuje nową wersję za każdym razem, gdy jest modyfikowany przy użyciu instrukcji MERGE lub UPDATE.

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

Wyłącz śledzenie wierszy

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

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 wersji zatwierdzeń wierszy podczas odczytywania kanału danych o zmianach. Zobacz Używanie kanału danych zmian Delta Lake na platformie Azure Databricks.