Strumieniowe zadanie Dataflow (Streaming Engine, automatyczne skalowanie poziome, max_workers=1000) odczytujące powiadomienia Pub/Sub z GCS emituje jeden element na linię CSV. Zadanie używa tylko 10 workerów, a autoskaler nie dodaje więcej. Jak poprawić równoległość i pozwolić autoskalerowi na skalowanie?
Wybierz odpowiedź
Dotknij opcji, aby sprawdzić swoją odpowiedź.
Poprawna odpowiedź: Zmień kod potoku, aby dodać krok Reshuffle w celu przełamania fuzji..
Dlaczego to jest odpowiedź
Zadanie Dataflow używa tylko 10 workerów, ponieważ prawdopodobnie występuje fuzja (fusion) operacji, co ogranicza równoległość. Fuzja łączy wiele transformacji w jeden etap, aby zminimalizować narzut, ale może uniemożliwić autoskalerowi dodawanie workerów, jeśli wąskie gardło znajduje się w jednej połączonej transformacji. Dodanie kroku Reshuffle (lub innej transformacji wymagającej pełnego przetasowania danych, np. GroupByKey) sztucznie przerywa fuzję, zmuszając Dataflow do materializacji pośrednich wyników i umożliwiając autoskalerowi zwiększenie liczby workerów dla kolejnych etapów. Automatyczne skalowanie pionowe (vertical autoscaling) zwiększa zasoby istniejących workerów, ale nie zwiększa ich liczby. Zwiększenie maxworkers nie pomoże, jeśli fuzja uniemożliwia ich użycie. Dataflow Prime i Right Fitting optymalizują wykorzystanie zasobów, ale nie rozwiązują problemu fuzji ograniczającej równoległość.
Zdaj egzamin — bez niekończącego się szukania odpowiedzi
Uzyskaj wszystkie zweryfikowane pytania i wyjaśnienia do tego egzaminu w jednym miejscu i zaoszczędź godziny przygotowań. Ponad 1000 certyfikacji · Ponad 20 języków · Zacznij za darmo.
Zdaj egzamin szybciej → Karta nie jest wymagana