Konfigurowanie rozmiaru partii dla strumieniowania strukturalnego w usłudze Azure Databricks
Ograniczenie szybkości wprowadzania dla zapytań strumieniowych ze strukturą pomaga zachować spójny rozmiar partii i zapobiega powstawaniu dużych partii, co prowadzi do przesypywania i kaskadowych opóźnień przetwarzania mikro-batchów.
Usługa Azure Databricks oferuje te same opcje kontrolowania rozmiarów partii przesyłania strumieniowego ze strukturą zarówno dla usługi Delta Lake, jak i modułu ładującego automatycznego.
Ogranicz szybkość wprowadzania za pomocą parametru maxFilesPerTrigger
Ustawienie maxFilesPerTrigger
(lub cloudFiles.maxFilesPerTrigger
dla automatycznego modułu ładującego) określa górną granicę liczby plików przetworzonych w każdej mikroserii. W przypadku usługi Delta Lake i automatycznego modułu ładującego wartość domyślna to 1000. (Należy pamiętać, że ta opcja jest również obecna na platformie Apache Spark dla innych źródeł plików, w których domyślnie nie ma maksymalnej wartości).
Ograniczanie szybkości wprowadzania za pomocą polecenia maxBytesPerTrigger
Ustawienie maxBytesPerTrigger
(lub cloudFiles.maxBytesPerTrigger
dla autoloadera) ustawia wartość "miękki limit maksymalny" ilości danych przetwarzanych w każdej mikro-partii. Oznacza to, że partia przetwarza w przybliżeniu tę ilość danych i może przetwarzać więcej niż limit, aby zapytanie przesyłane strumieniowo przechodziło do przodu w przypadkach, gdy najmniejsza jednostka wejściowa jest większa niż ten limit. Dla tego ustawienia nie ma wartości domyślnej.
Jeśli na przykład określisz ciąg bajtów, taki jak 10g
, aby ograniczyć każdy mikrobajt do 10 GB danych i masz pliki o rozmiarze 3 GB, usługa Azure Databricks przetwarza 12 GB w mikrobajtach.
Ustawianie wielu szybkości wejściowych razem
Jeśli używasz maxBytesPerTrigger
w połączeniu z maxFilesPerTrigger
, proces mikrosiado przetwarza dane aż do osiągnięcia niższego limitu maxFilesPerTrigger
lub maxBytesPerTrigger
.
Ograniczanie szybkości danych wejściowych dla innych źródeł przesyłania strumieniowego ze strukturą
Źródła przesyłania strumieniowego, takie jak Apache Kafka, mają niestandardowe limity danych wejściowych, takie jak maxOffsetsPerTrigger
. Aby uzyskać więcej informacji, zobacz Konfigurowanie źródeł danych przesyłanych strumieniowo.