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 = true
tabeli .
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 false
wartość .
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).