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.
Note
cloudFiles.cleanSource jest dostępny w Databricks Runtime 16.4 i wyższych.
Używa cloudFiles.cleanSource się do przenoszenia lub usuwania plików z katalogu źródłowego po ich przetworzeniu. Usuwanie przetworzonych plików zmniejsza koszty przechowywania i skraca czas trwania przyszłych operacji wystawiania.
| Mode | Description |
|---|---|
OFF (ustawienie domyślne) |
Pliki w katalogu źródłowym nie są przenoszone ani usuwane. |
MOVE |
Pliki w katalogu źródłowym są przenoszone na ścieżkę określoną przez cloudFiles.cleanSource.moveDestination po upływie czasu przechowywania (domyślnie 30 dni) określonej przez cloudFiles.cleanSource.retentionDuration elapses. |
DELETE |
Pliki w katalogu źródłowym są usuwane po upływie czasu przechowywania (domyślnie 30 dni) określonego przez cloudFiles.cleanSource.retentionDuration upływy. |
| Dodatkowa opcja | Default | Prawidłowe wartości | Description |
|---|---|---|---|
cloudFiles.cleanSource.retentionDuration |
30 days |
Ciąg CalendarInterval, taki jak 14 days, 2 weekslub1 month |
Czas oczekiwania, zanim przetworzone pliki staną się kandydatami do czyszczenia z czystym źródłem. Wartość musi być większa niż 7 dni dla elementu DELETE. Brak minimalnego ograniczenia dla elementu MOVE. |
cloudFiles.cleanSource.waitForCompletion |
false |
true, false |
Ta opcja jest dostępna w Databricks Runtime 19 i wyższych. Czysty kod jest domyślnie operacją opartą na najlepszym wysiłku. Jeśli strumień zakończy przetwarzanie plików przed zakończeniem przenoszenia lub usuwania plików czystego źródła, operacja czystego źródła zostaje zakończona. Ustawienie wymusza cloudFiles.cleanSource.waitForCompletion pozostanie strumieniem przy życiu aż do zakończenia czystego źródła przenoszenia lub usuwania plików. Może to wydłużyć czas działania strumienia, jeśli jest dużo plików do usunięcia.Dotyczy to tylko sytuacji, gdy strumień kończy się sam (na przykład wyzwalacz availableNow opróżnia wszystkie pliki). Ręczne zatrzymanie lub anulowanie strumienia natychmiast kończy operację czystego źródła, nawet gdy ta opcja jest ustawiona. |
cloudFiles.cleanSource.moveDestination |
Żadne | Ścieżka woluminu magazynu w chmurze lub wykazu aparatu Unity | Ścieżka do archiwizacji przetworzonych plików, gdy cloudFiles.cleanSource jest ustawiony na MOVE. Może to być ścieżka magazynu w chmurze lub ścieżka woluminu wykazu aparatu Unity (na przykład /Volumes/my_catalog/my_schema/my_volume/archive/).Lokalizacja przenoszenia musi:
Automatyczny moduł ładujący musi mieć uprawnienia do zapisu w tym katalogu. |
Rozważania przed umożliwieniem cloudFiles.cleanSource
- Azure Databricks nie zaleca korzystania z tej opcji, gdy wiele strumieni zużywa dane z tego samego katalogu źródłowego. Najszybszy strumień czyści pliki, więc wolniejsze strumienie nigdy ich nie pobierają.
- Włączenie tej funkcji wymaga automatycznego modułu ładującego do zachowania dodatkowego stanu w punkcie kontrolnym, co powoduje narzut na wydajność, ale zapewnia lepszą możliwość obserwowania za pośrednictwem
cloud_files_statefunkcji wartości tabeli. Zobaczcloud_files_statefunkcji wartości tabeli. - Clean source korzysta z aktualnego ustawienia, aby zdecydować, czy to zrobić,
MOVEczyDELETEwybrać dany plik. Załóżmy na przykład, że ustawienie byłoMOVEwtedy, gdy plik został pierwotnie przetworzony, ale został zmieniony naDELETE, gdy plik stał się kandydatem do oczyszczenia 30 dni później. W takim przypadku czysty kod usuwa plik. - Nie ma gwarancji, że pliki zostaną wyczyszczone zaraz po
cloudFiles.cleanSource.retentionDurationwygaśnięciu. Aby obniżyć koszty, Auto Loader czyści pliki równocześnie z przetwarzaniem strumienia i kończy je zaraz po zakończeniu lub zakończeniu przetwarzania strumienia. Pliki, które były kandydatami do czyszczenia, ale nie mogły zostać usunięte podczas przetwarzania strumienia, są pobierane przy następnym uruchomieniu Auto Loadera.
Uwagi dotyczące czystego źródła
Clean source działa tylko wtedy, gdy jest do przetworzenia partia plików. Nie jest to proces tła, który przebiega niezależnie od spożycia. Jeśli nie ma nowych plików do pobrania w katalogu źródłowym, czyste źródło nie rozpoczyna się dla bieżącego uruchomienia strumienia. W rezultacie, jeśli strumień przestaje otrzymywać nowe pliki, pliki, które już minęły czas przechowywania danych, nie są czyszczone aż do późniejszego uruchomienia strumienia, które przetworzą nową partię.
Ten wymóg wsadowy dotyczy niezależnie od .
cloudFiles.cleanSource.waitForCompletionTa opcja utrzymuje stream przy życiu tylko na tyle długo, by ukończyć sprzątanie w trakcie jednego przejścia. Nie uruchamia się czystego kodu, gdy nie ma partii do przetworzenia.Jeśli plik zostanie wniesiony podczas N-tego uruchomienia strumienia, dla pliku ustawia się
commit_timena N+1 run strumienia.commit_timemusi być ustawiony zanim czyste źródło może ustalić, czy plik kwalifikuje się do przeniesienia lub usunięcia, więc najwcześniejszy termin, w którym plik może zostać kandydatem do czyszczenia, to N+2 stream run.Setting
commit_timejest konieczny, ale niewystarczający. Plik jest czyszczony dopiero po upływie jego czasu przechowywania, mierzonego od .commit_timeNa przykład, przy domyślnymcloudFiles.cleanSource.retentionDuration30 dniach, plik przetworzony dzisiaj nie kwalifikuje się do wyczyszczenia aż do 30 dni odcommit_timejego ustawienia. To wszystko dotyczy niezależnie od liczby przepływów strumieni pomiędzy. Oba warunki muszą być spełnione przed przeniesieniem lub usunięciem pliku.