Notatka
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.
Ważna
Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Zła transformacja, nieprawidłowa partia rekordów źródłowych lub nieoczekiwana zmiana schematu mogą sprawić, że tabele w potoku danych będą nieprawidłowe od określonego momentu w czasie. Przewinięcie przywraca potok do stanu sprzed wystąpienia problemu, aby umożliwić wdrożenie poprawki i ponowne przetworzenie tylko danych, których dotyczył problem.
Rewind przywraca jednocześnie wersje tabel, przesunięcia źródeł strumieniowych oraz stan operatora, dzięki czemu ponowne odtwarzanie nie pomija rekordów ani nie zapisuje duplikatów. Trzy operacje przetwarzają dane i rozwiązują różne problemy:
- Cofanie dotyczy potoku do odzyskania , który zapisał błędne dane z znanego punktu czasu, na przykład po błędnej transformacji, nieprawidłowym wejściu lub złym wdrożeniu kodu. Przywraca dane tabeli, przesunięcia źródła oraz stan operatora do stanu sprzed wystąpienia problemu i przetwarza ponownie wyłącznie dane, których dotyczy problem, zachowując stan operatora. Dane sprzed tego momentu pozostają nietknięte.
- Pełne odświeżanie odbudowuje tabelę ze wszystkich dostępnych danych źródłowych i odrzuca jej obecne treści. Użyj go do ponownego obliczenia wszystkiego od zera lub gdy zmiana kodu nie jest zgodna z istniejącym stanem.
- Reset punktów kontrolnych przywraca potok, którego punkt kontrolny jest nieprawidłowy lub uszkodzony, albo zablokowany przez zmianę kodu niezgodną z punktem kontrolnym. Resetuje punkt kontrolny i przechodzi dalej, zachowując bieżącą zawartość tabeli. Rewind nie może przywrócić danych w takich przypadkach, ponieważ nie łagodzi zasad zgodności ze Structured Streaming.
Requirements
| Wymaganie | Detail |
|---|---|
| Channel | Potok musi być w kanale Preview. Zobacz Konfigurowanie potoków. |
| Configuration | Ustaw konfigurację potoku pipelines.rewind.betaEnabled na true, a następnie uruchom potok jednokrotnie. Każdy flow można cofnąć dopiero po zakończeniu aktualizacji z włączoną podróżą w czasie. |
| Tryb potokowy | Potoki wyzwalane i ciągłe. Tryb czasu rzeczywistego nie jest obsługiwany. |
| Sources | Tabele delta, tabele streamingowe, Kafka i Auto Loader. |
| Targets | Tabele strumieniowe i zmaterializowane widoki. |
| Flows | Przepływy strumieniowe i przepływy AUTO do przechwytywania zmian danych (CDC), w tym obiekty docelowe SCD typu 1 i typu 2. Obsługiwane są zapytania stanowe, takie jak agregacje, łączenia i deduplikacja. |
Każdy przepływ w rurociągu musi spełniać te wymagania. Gdy pipelines.rewind.betaEnabled jest true, potok zawierający przepływ, który nie spełnia kryteriów, nie przechodzi aktualizacji. Sprawdź, czy każdy przepływ spełnia powyższe wymagania, zanim go włączysz.
Note
Potok, który ma ustawione pipelines.rewind.betaEnabled na true, nie może wrócić do kanału Current, dopóki kanał Current nie zostanie zaktualizowany do środowiska uruchomieniowego obsługującego cofanie.
Jak działa przewijanie i odtwarzanie
Cofnięcie i ponowne odtwarzanie to osobne etapy.
Przewijanie przywraca każdą tabelę do wersji, którą miała w punkcie przewijania , oraz resetuje punkty kontrolne streamingu, które śledzą, jak daleko przebiegł każdy przepływ. Twoje transformacje nie są uruchamiane, a dane źródłowe nie są przetwarzane ponownie.
Powtórka następuje przy następnym uruchomieniu pipeline'u. Ponownie przetwarza dane od punktu przewinięcia zgodnie z aktualną definicją potoku, dochodzi do stanu bieżącego, a następnie wznawia normalne przetwarzanie przyrostowe. Przewijanie nie uruchamia pipeline, więc zacznij go sam, gdy będziesz gotowy.
Potok generuje punkty cofania automatycznie, około raz na godzinę, i przechowuje je przez 7 dni. Pipeline, który właśnie stworzyłeś, nie ma do czego cofnąć się, dopóki nie wygeneruje pierwszego pociągu.
Przewijanie zbioru danych cofa także wszystko, co znajduje się poniżej niego w tym samym potoku. Rewind obejmuje jeden potok. Nie koordynuje się z innymi potokami ani z zewnętrznymi czytelnikami tych samych tabel, więc zarządza nimi osobno.
Cofnij pipeline za pomocą interfejsu użytkownika
Interfejs i Genie to główne sposoby wykorzystania przewijania do tyłu. Interfejs wyświetla dostępne punkty przewijania i pokazuje, na które zbiory danych wpływa każdy z nich, zanim zdecydujesz się na to.
- Na stronie swojego pipeline'u kliknij
obok Run pipeline, a następnie kliknij Rewind pipeline.
- Wybierz punkt przewijania lub użyj skrótu, np. Przewiń do wczoraj lub cofnij do najpóźniejszego punktu. Kliknij Dalej.
- Wybierz, które tabele uwzględnić. Użyj widoku Graf do wyboru zbiorów danych w grafie pipeline lub widoku Listy , aby wybrać je z tabeli. Pozostaw zaznaczoną opcję Reset all checkpoints (ustawienie domyślne), aby przywrócić offsety źródła i stan operatora wraz z danymi tabeli, tak aby potok ponownie przetwarzał dane od punktu cofnięcia. Usuń ją, aby przywrócić tylko dane tabeli, bez ponownego przetwarzania, na przykład gdy chcesz przywrócić zawartość tabeli, ale nie chcesz ponownie przetwarzać dotkniętych danych. To ustawienie musi mieć tę samą wartość dla tabeli i jej tabel nadrzędnych oraz nie może być wyłączone dla przepływu odczytującego dane z zewnętrznego źródła, takiego jak Kafka lub Auto Loader. Kliknij Dalej.
- Przejrzyj punkt cofania, ustawienie punktu kontrolnego oraz zbiory danych, których to dotyczy, a następnie kliknij Cofnij.
Uruchom pipeline, aby odtworzyć dane.
Możesz cofać się wielokrotnie. Każde cofnięcie zastępuje poprzednie, więc po nieudanym ponownym odtworzeniu możesz spróbować odzyskać stan, cofając do innego miejsca.
Po przewinięciu
Błąd odtwarzania powoduje, że potok zostaje cofnięty, ale zatrzymany. Popraw kod lub dane źródłowe i uruchom pipeline, aby spróbować ponownie lub cofnąć się do innego punktu. Potok nie cofa się samodzielnie, a błędy pojawiają się w standardowej diagnostyce potoków oraz dzienniku zdarzeń.
Ponowne odtworzenie powiedzie się tylko wtedy, gdy bieżąca definicja potoku jest zgodna z przywróconym stanem; cofnięcie nie łagodzi reguł zgodności mechanizmu Structured Streaming. Aby sprawdzić, które zmiany są zgodne, zobacz Rodzaje zmian w zapytaniach Structured Streaming. Widoki materializowane opierają się na semantyce wsadowej i tolerują bardziej rozległe zmiany w schemacie, ale nadal przestają działać, jeśli zależność jest niezgodna.
Przewijanie, które zakończy się niepowodzeniem w połowie, może pozostawić potok częściowo przewinięty. Masz do wyboru dwie opcje:
- Cofnij się ponownie do tego samego punktu lub do innego, a potok zbiega do tego punktu.
- Aby wymusić normalną aktualizację pipeline mimo niepełnego przewijania, ustaw
pipelines.allowUpdateAfterIncompleteRewindna itruezrestartuj pipeline.
Jak daleko można cofnąć się
Punkty cofania są przechowywane przez 7 dni. W tym oknie przewijanie nie udaje się, jeśli potrzebne dane zostały już usunięte. Sprawdź te rzeczy, zanim zaczniesz polegać na funkcji cofania:
-
VACUUMlub zwarciedelta.deletedFileRetentionDurationw tabelach. Zobacz Praca z historią tabel. - Retencja źródeł krótsza niż czas, który chcesz przewinąć, na przykład temat Kafki, który zachowuje jeden dzień.
Potoki z kilkoma źródłami lub długimi łańcuchami zależności wymagają dłuższego okresu przechowywania, ponieważ każda tabela i punkt kontrolny muszą sięgać wstecz do tego samego spójnego punktu.
Ograniczenia
- Przewijanie nie może przywrócić pipeline do punktu przed pełnym odświeżeniem.
- Punkty przywracania są przechowywane przez 7 dni, a operacja przywracania kończy się niepowodzeniem, jeśli historia tabeli lub dane źródłowe potrzebne do przywrócenia do tego punktu zostały już usunięte, na przykład przez
VACUUMlub krótki okres przechowywania danych źródłowych. Zobacz, jak daleko możesz cofnąć się do tyłu. - Tryb czasu rzeczywistego nie jest obsługiwany.
- Kinesis, Pulsar, Google Pub/Sub oraz niestandardowe źródła zbudowane z API DSv2 lub Python nie są obsługiwane jako źródła.
- Zewnętrzne i niestandardowe zlewy nie są obsługiwane, w tym zlewy zdefiniowane jako
create_sink(). Zobacz Korzystanie z ujść w potokach. - Tabel strumieniowych wykorzystujących filtr wierszowy lub maskę kolumnową nie można przewijać. Zobacz Ręczne stosowanie filtrów wierszy i masek kolumn.
- Przewijanie ze stanem wymaga magazynu stanu RocksDB, z którego potoki domyślnie korzystają. Przewijanie nie działa dla przepływu skonfigurowanego z innym magazynem stanów.
- Niektóre tabele streamingowe AUTO CDC wymagają odświeżenia, zanim można je przewinąć. Pipeline powiadamia cię, gdy poprosisz o przewijanie.
- Zmaterializowane widoki mogą zostać w pełni przeliczone zamiast być odświeżane przyrostowo po cofnięciu. Zobacz Odświeżanie przyrostowe, aby uzyskać zmaterializowane widoki.
- Rewind obejmuje jeden potok i nie jest skoordynowany z zewnętrznymi czytnikami ani z innymi potokami odczytującymi te same tabele.
- Rewind nie przywraca kodu potoku, konfiguracji potoku ani metadanych obiektów Unity Catalog, takich jak tagi i uprawnienia.