Udostępnij za pośrednictwem


Niskie przetasowanie scalania na Azure Databricks

Notatka

Scalanie z niskim przełączaniem jest ogólnie dostępne (GA) w środowisku Databricks Runtime 10.4 LTS i nowszych oraz w publicznej wersji zapoznawczej w środowisku Databricks Runtime 9.1 LTS. Usługa Databricks zaleca klientom wersji zapoznawczej migrację do środowiska Databricks Runtime 10.4 LTS lub nowszego.

Polecenie MERGE służy do jednoczesnego aktualizowania, wstawiania i usuwania z tabeli usługi Delta Lake. Azure Databricks ma zoptymalizowaną implementację MERGE, która znacznie poprawia wydajność dla typowych obciążeń, zmniejszając liczbę operacji przetasowywania.

Scalanie z niskiemu przemieszczaniu w Databricks zapewnia lepszą wydajność dzięki przetwarzaniu niezmodyfikowanych wierszy w osobnym, lepszym trybie przetwarzania, zamiast przetwarzania ich razem ze zmodyfikowanymi wierszami. W związku z tym ilość przetasowanych danych jest znacznie zmniejszona, co prowadzi do poprawy wydajności. Mała ilość operacji scalania zmniejsza również potrzebę ponownego uruchamiania OPTIMIZE użytkowników po wykonaniu MERGE operacji.

Zoptymalizowana wydajność

Wiele obciążeń MERGE aktualizuje tylko stosunkowo małą liczbę wierszy w danej tabeli. Jednak tabele delty można aktualizować tylko dla poszczególnych plików. Gdy polecenie MERGE musi zaktualizować lub usunąć niewielką liczbę wierszy przechowywanych w określonym pliku, należy również przetworzyć i ponownie zapisać wszystkie pozostałe wiersze przechowywane w tym samym pliku, mimo że te wiersze są niezmodyfikowane. Scalanie z małą ilością mieszania optymalizuje przetwarzanie niezmodyfikowanych wierszy. Wcześniej były przetwarzane w taki sam sposób, jak zmodyfikowane wiersze, przechodząc przez wiele etapów przetasowywania i kosztownych kalkulacji. W przypadku scalania przy niskim mieszaniu niezmodyfikowane wiersze są przetwarzane bez mieszania, kosztownego przetwarzania ani dodatkowego obciążenia.

Zoptymalizowany układ danych

Małe przetasowania scalania są szybsze do uruchamiania i przynosi korzyści z kolejnych operacji. Wcześniejsza MERGE implementacja zmieniła układ danych niezmodyfikowanych danych całkowicie, obniżając wydajność kolejnych operacji. Funkcja scalania o niskim przetasowaniu na zasadzie najlepszych starań zachowuje istniejący układ danych w niezmodyfikowanych rekordach, w tym układ klastrowania cieczy , a wydajność pogarsza się wolniej po wykonaniu jednego lub więcej poleceń .

Notatka

Scalanie z niewielkim przetasowywaniem próbuje zachować układ danych na danych, które nie były modyfikowane. Układ danych zaktualizowanych lub nowo wstawionych danych może nie być optymalny, dlatego nadal może być konieczne uruchomienie OPTIMIZE w tabelach z włączonym klastrowaniem płynnym.

Dostępność

Domyślnie w środowisku Databricks Runtime 10.4 lub nowszym, jest włączone scalanie z niskim mieszaniem. We wcześniejszych obsługiwanych wersjach środowiska Databricks Runtime można ją włączyć, ustawiając konfigurację spark.databricks.delta.merge.enableLowShuffle na true. Ta flaga nie ma wpływu na środowisko Databricks Runtime 10.4 i nowsze.

Dziedziczenie porządkowania Z

W przypadku tabel korzystających z Z-ordering, funkcja scalania z ograniczonym mieszaniem próbuje również zachować istniejący układ kolejności Z na niezmodyfikowanych danych w miarę możliwości. Układ zaktualizowanych lub nowo wstawionych danych może nie być optymalny, dlatego po wykonaniu OPTIMIZE operacji nadal może być konieczne uruchomienie ORDER BY. Usługa Databricks zaleca używanie płynnego klastrowania dla wszystkich nowych tabel.