Wolne dashboardy w lakehouse: optymalizować obciążenie czy dodać warstwę obsługi zapytań?

Zdiagnozuj wolne dashboardy lakehouse za pomocą profili zapytań, analizy plików i testów współbieżności, zanim sfinansujesz nową warstwę obsługi zapytań.

DigiventiOstatnia weryfikacja · 8 min czytania
W tym artykule

Wyobraź sobie dashboard, który podczas testów działa wystarczająco sprawnie, ale przestaje odpowiadać, gdy użytkownicy biznesowi odświeżają go jednocześnie. Sfinansowanie wyspecjalizowanej warstwy obsługi zapytań jest jedną z możliwych reakcji. Zanim jednak zatwierdzisz inwestycję, ustal, czy opóźnienie wynika z odczytu danych, wykonywania złączeń, oczekiwania na zasoby obliczeniowe czy przekazywania wyników do klienta BI.

Każda z tych przyczyn oznacza inną decyzję inwestycyjną. Databricks wskazuje, że czas spędzony w etapie Scheduling w profilu zapytania może sygnalizować kolejkowanie, natomiast dominujący czas Result fetching by client może wskazywać na problem sieciowy między aplikacją a hurtownią. Porównanie silników mierzące wyłącznie wykonanie SQL nie rozstrzygnęłoby tych różnic.

Dodawaj infrastrukturę do obsługi zapytań tylko na podstawie pomiarów konkretnego obciążenia oraz jasno określonych celów dotyczących opóźnień, współbieżności i aktualności danych. Najpierw sprawdź, czy wymagania można spełnić przez poprawę zasilania danymi, wykonywania zapytań lub ograniczenie rywalizacji o zasoby. Celem nie jest obrona istniejącego lakehouse. Chodzi o wskazanie najmniej skomplikowanego modelu operacyjnego, który przejdzie biznesowe testy akceptacyjne.

Ustal wymagania dla dashboardu, zanim zaczniesz diagnozować opóźnienia

Zacznij od konkretnego dashboardu i decyzji, którą wspiera. Zapisz, kto z niego korzysta, kiedy odświeżenia nakładają się na siebie, jakie filtry stosują użytkownicy i jak aktualne muszą być wyświetlane dane. Zastąp polecenie „ma działać szybciej” uzgodnionymi wymaganiami dotyczącymi rozkładu czasów odpowiedzi, obciążenia generowanego przez równoczesne odświeżenia oraz maksymalnego dopuszczalnego wieku widocznych danych. Oceniaj zachowanie przy uruchamianiu oddzielnie od pracy w stanie ustalonym.

Załóż, że znaczenie KPI jest już uzgodnione. Jeśli zespoły kwestionują wartości sumaryczne, rozstrzygnij to osobno w ramach decyzji o wspólnej warstwie semantycznej. W tej ocenie logika biznesowa i oczekiwane wyniki powinny pozostać niezmienne, aby nie zaakceptować szybszego rozwiązania tylko dlatego, że oblicza coś innego.

Zbuduj obciążenie testowe z rzeczywistych zapytań dashboardu, uwzględniając reprezentatywne złączenia, szerokie zakresy dat i często używane kombinacje filtrów. Zapisz wielkość zbioru danych, wersje tabel, układ plików, parametry zapytań, konfigurację zasobów obliczeniowych i zasilanie danymi działające w tle. Zachowaj bazowy SQL oraz oczekiwane wyniki, aby każde rozważane rozwiązanie można było przetestować na tym samym zadaniu.

Określ również granice pomiaru. Rejestruj zarówno czas wykonywania zapytań, jak i czas do momentu, w którym dashboard nadaje się do użycia. Hipotetyczny dashboard sprzedażowy może szybko obliczyć główny agregat, podczas gdy szczegółowe złączenie danych klientów i produktów wciąż się wykonuje. Akceptacja powinna obejmować wymagane elementy dashboardu, a nie tylko zapytanie, które najlepiej wypada podczas prezentacji.

Zlokalizuj wąskie gardło na podstawie profili zapytań i danych o plikach

Diagnozując opóźnienia w lakehouse, przeanalizuj wolne zapytania, zanim zmienisz infrastrukturę. Rozdziel planowanie wykonania, samo wykonanie i przekazywanie wyników. Wskazówki diagnostyczne Databricks dotyczące wysokiej współbieżności wskazują opóźnienia w etapie Scheduling jako możliwy objaw kolejkowania, a dominujący czas pobierania wyników jako możliwy objaw problemu sieciowego między klientem a hurtownią. Traktuj te sygnały jako tropy do sprawdzenia, a nie gotowe diagnozy.

W przypadku zapytań, w których dominuje czas wykonania, przeanalizuj etapy skanowania i złączeń. Poproś zespół o wyjaśnienie, które pliki odczytano, jakie filtry ograniczyły dane wejściowe, gdzie wzrosła liczba wierszy i które operacje pochłonęły czas. Zachowaj profile reprezentatywnych złączeń, nie tylko prostych agregacji. Jeżeli proponowana zmiana dotyczy skanowania, wymagaj dowodów, że miało ono istotny udział w pierwotnym opóźnieniu.

Zmierz wpływ małych plików na wydajność zapytań. Dla tabel Delta w Databricks dostawca opisuje obliczanie średniego rozmiaru pliku przez podzielenie sizeInBytes przez numFiles z wyniku DESCRIBE DETAIL albo Bytes read przez Files read w profilu zapytania. Zapisz te wartości dla analizowanych tabel, a następnie sprawdź rozkład rozmiarów plików i ostatnie partie zasilania, zamiast traktować średnią jako pełną diagnozę.

Ścieżka zasilania wymaga szczególnej uwagi, gdy dane napływają w sposób ciągły. W prezentacji IBM Cloud i Dremio część poświęcona IBM Cloud bezpośrednio łączy stopniowe zapisywanie napływających danych z gromadzeniem małych plików i wskazuje znaczenie ich późniejszego przetwarzania dla wydajności. Dla kupującego oznacza to, że przed uznaniem wymiany silnika zapytań za konieczną warto przetestować operacje porządkujące dane po zasilaniu.

Po korekcie układu plików przeprowadź kontrolowane porównanie, pozostawiając SQL i konfigurację zasobów obliczeniowych bez zmian. Następnie obserwuj, czy poprawa utrzymuje się przy dalszym zasilaniu danymi. Pomyślne wykonanie operacji porządkowania nie wystarczy, jeśli ten sam układ plików szybko powraca. Zanim uznasz rozwiązanie za trwałe, przypisz odpowiedzialność za monitorowanie przyrostu plików i utrzymanie poprawionego układu.

Porównuj zmiany w kolejności uzasadnionej wynikami analizy

Popraw zasilanie i ogranicz gromadzenie plików, gdy analiza wskazuje na ich układ. Ta opcja pasuje do obciążenia, którego profile bazowe i dane o plikach kierują uwagę na ścieżkę odczytu. Uwzględnij w decyzji wpływ zmian na zasilanie: Databricks opisuje automatyczną kompaktację jako operację synchroniczną wykonywaną na klastrze zapisującym po pomyślnym zapisie, obejmującą pliki, które nie były wcześniej kompaktowane. Dokumentacja efektywności wydajnościowej tego dostawcy uzasadnia więc traktowanie kompaktacji jako części modelu operacyjnego, a nie bezkosztowego ustawienia dashboardu.

Zmień zapytania lub oceń mechanizmy akceleracji, gdy wskazuje na to plan wykonania. Poproś o profile tego samego reprezentatywnego złączenia lub agregacji przed zmianą i po niej, wraz z kontrolą równoważności wyników. Przy propozycji akceleracji wymagaj pokazania, które zapytania dashboardu z niej korzystają, które nie oraz co dzieje się, gdy mechanizm jest niedostępny. Nie traktuj przyspieszonego głównego agregatu jako dowodu wydajności nieprzetestowanego zapytania szczegółowego.

Prezentacja IBM Cloud i Dremio pokazuje Reflections i opisuje wcześniejsze obliczanie agregatów jako element mechanizmu akceleracji. To powód, aby uwzględnić akcelerację w ocenie, a nie dowód wydajności Twojego obciążenia. Dla każdego proponowanego wdrożenia Dremio wymagaj aktualnej dokumentacji i demonstracji sposobu odświeżania, wygasania, odzyskiwania po awarii, kwalifikowania zapytań oraz odpowiedzialności za zasoby obliczeniowe i przechowywanie danych, zanim zaakceptujesz projekt.

Odizoluj obciążenia, gdy analiza wskazuje na rywalizację o zasoby. Porównaj to samo obciążenie dashboardu z konkurującymi zadaniami i bez nich. Prezentacja Dremio opisuje rozdzielanie obciążeń, takich jak analizy ad hoc i dashboardy, za pomocą architektury wielosilnikowej. W aktualnej ofercie sprawdź kierowanie zapytań, uprawnienia licencyjne, sposób zarządzania mocą obliczeniową i granice izolacji, zamiast zakładać, że historyczna prezentacja potwierdza dzisiejsze warunki.

Oceń wyspecjalizowaną warstwę obsługi zapytań, gdy poprawione obciążenie nadal nie spełnia uzgodnionych wymagań. To właściwy kolejny test, jeśli pozostałe wymagania dotyczące opóźnień lub współbieżności mają jasne uzasadnienie biznesowe. Wymagaj od rozważanego rozwiązania wykonania rzeczywistych złączeń analitycznych, a nie tylko selektywnych wyszukiwań. Przetestuj również model aktualności danych i odzyskiwania po awarii, szczególnie jeśli projekt wprowadza kolejną utrzymywaną kopię danych.

W wystąpieniu Databricks przedstawiono argument, że wyspecjalizowane silniki obsługi zapytań mogą mieć trudności ze złożonymi złączeniami analitycznymi. To argument dostawcy w porównaniu konkurencyjnym, a nie uniwersalne ograniczenie tej kategorii produktów. Podczas tego samego wystąpienia przedstawiono Lakehouse//RT jako rozwiązanie początkowo obsługujące wyłącznie odczyt i ogłoszono dostęp w wersji beta. Traktuj to jako historyczny kontekst ogłoszenia, a nie potwierdzenie obecnej dostępności. Przed umieszczeniem produktu na krótkiej liście wymagaj aktualnych informacji o statusie wydania, obsługiwanych operacjach, ograniczeniach obciążeń i warunkach handlowych.

Przetestuj dashboard przy zimnej i rozgrzanej pamięci podręcznej oraz równoczesnych odświeżeniach

Ocena warstwy obsługi zapytań dla lakehouse powinna dostarczyć odtwarzalny zapis testów obciążenia, a nie zbiór najszybszych przebiegów. Metodyka Kseniia Tomak z HelloFresh rozdziela testy zimne, testy po rozgrzaniu oraz wykonanie równoległe ze stopniowym zwiększaniem liczby zapytań. Dostosuj ten schemat do wymagań dashboardu, zamiast kopiować eksponowane wyniki benchmarku dostawcy.

W testach zimnych udokumentuj dokładnie, co zostało ponownie uruchomione lub wyczyszczone i jakie pamięci podręczne mogły pozostać aktywne. W testach po rozgrzaniu zapisz zapytania przygotowawcze i odróżnij powtarzanie identycznych żądań od realistycznych zmian parametrów. Jeżeli platforma nie zapewnia wiarygodnego sposobu kontrolowania danej pamięci podręcznej, odnotuj ten warunek, zamiast określać przebieg jako w pełni zimny.

W testach współbieżności zapytań BI odtwarzaj kompletne odświeżenia dashboardów z ich rzeczywistym zestawem zapytań. Zwiększaj stopień nakładania się odświeżeń aż do uzgodnionego szczytu i rejestruj rozkłady czasów odpowiedzi, czas oczekiwania w kolejce, błędy, przekroczenia limitu czasu i ukończone odświeżenia. Testuj zarówno pracę w izolacji, jak i z obciążeniem w tle oczekiwanym na produkcji. Nie usuwaj z wyników wolnych ani nieudanych żądań.

Następnie powtórz odpowiednie testy przy aktywnym zasilaniu danymi i odświeżaniu mechanizmów akceleracji. Wprowadź dopuszczone do testów rekordy z możliwymi do prześledzenia znacznikami czasu źródłowego i zmierz, kiedy stają się widoczne w dashboardzie. Taki proponowany test aktualności zapobiega zatwierdzeniu rozwiązania, które spełnia wymagania dotyczące czasu odpowiedzi tylko dzięki wyświetlaniu danych starszych, niż dopuszcza biznes.

Na koniec porównaj wyniki według rodzin zapytań oraz czasu ukończenia całego dashboardu, a nie wyłącznie zbiorczej średniej. Wymagaj tego samego zbioru danych, kontroli poprawności i jawnie opisanych warunków pamięci podręcznej dla wszystkich wariantów. Rejestruj całą infrastrukturę używaną podczas każdego przebiegu, w tym przygotowanie i utrzymanie, aby powiązać wyniki wydajnościowe z kosztami operacyjnymi.

Zatwierdzaj na podstawie macierzy akceptacji, nie demonstracji produktu

Uzgodnij macierz akceptacji przed rozpoczęciem próby. Wartości progowe ustalają właściciel biznesowy i właściciel platformy. Nie należy wybierać ich dopiero po sprawdzeniu, który wariant wygrywa. Stosuj tę samą macierz dla zoptymalizowanego lakehouse, odizolowanych zasobów obliczeniowych, akceleracji i wyspecjalizowanej warstwy obsługi zapytań.

Proponowana macierz akceptacji dla decyzji: optymalizacja czy dodatkowa warstwa obsługi zapytań
ObszarWymagane dowodyWarunek zatwierdzenia
Opóźnienia w ogonie rozkładuRozkład czasów ukończenia dashboardu, profile wolnych zapytań, błędy i przekroczenia limitu czasu przy jawnie opisanych warunkach pamięci podręcznejSpełnia uzgodniony cel dla wysokiego percentyla bez wykluczania nieudanych żądań
WspółbieżnośćOdtworzenie nakładających się odświeżeń dashboardów z reprezentatywnymi złączeniami i pracą w tleObsługuje wymagany szczyt przy zachowaniu docelowych opóźnień i poprawności
Aktualność danychMożliwe do prześledzenia pomiary czasu od pojawienia się danych w źródle do ich widoczności w dashboardzie podczas zasilania i odświeżaniaSpełnia dopuszczalny limit wieku danych, również przy przywracaniu działania po przerwie
Odpowiedzialność operacyjnaWskazani właściciele i zademonstrowane procedury utrzymania, obsługi błędów odświeżania, kierowania zapytań oraz odzyskiwania po awariiKażdy stały obowiązek ma zaakceptowanego właściciela i ścieżkę eskalacji
Całkowity koszt operacyjnySzczegółowy model obejmujący zasoby obliczeniowe dla zapytań i utrzymania, przechowywanie danych, niewykorzystaną moc, transfer danych, licencje i nakład pracy wsparcia, zależnie od rozwiązaniaMieści się w zatwierdzonym budżecie przy jawnych założeniach dotyczących wolumenu i wykorzystania

Oddziel nakłady wdrożeniowe od bieżących kosztów operacyjnych, ale uwzględnij obie kategorie w decyzji inwestycyjnej. Uzyskaj obowiązujące ceny i warunki licencyjne, zamiast ekstrapolować koszty wyłącznie z czasu trwania testów. Sprawdź założenia modelu dotyczące wolumenu zasilania, częstotliwości odświeżania, szczytowego wykorzystania, okresów bezczynności i nakładu pracy zespołu, a następnie przeanalizuj, jak zmiana tych założeń wpływa na rekomendację.

Końcowy pakiet dowodowy powinien zawierać definicję obciążenia, profile bazowe, dane o plikach, kontrolowane zmiany, konfigurację odtwarzania obciążenia, surowe wyniki i podpisaną macierz akceptacji. Jeśli angażujesz konsultantów Databricks i inżynierów Apache Spark, uwzględnij te materiały w zakresie diagnostyki, aby ocena wspierała decyzję o finansowaniu, zamiast kończyć się na sugestiach optymalizacyjnych.

Przed zatwierdzeniem kolejnego silnika wymagaj porównawczego dokumentu decyzyjnego pokazującego, których wymagań poprawiony lakehouse nadal nie spełnia i czy rozważana warstwa obsługi zapytań spełnia je przy akceptowalnej aktualności danych, odpowiedzialności operacyjnej i kosztach. Jeśli poprawione obciążenie przechodzi testy, odłóż dodatkową infrastrukturę. Jeśli nie, sfinansuj alternatywę odpowiadającą na wykazaną lukę.

Jeśli potrzebujesz pomocy w określeniu zakresu diagnostyki lub ocenie prac wdrożeniowych, porozmawiaj z Digiventi o obciążeniu swojego lakehouse i wymaganiach akceptacyjnych.

Potrzebujesz pomocy z danymi i AI?

Zapewniamy konsultantów IT do projektów i bieżących prac technicznych. Napisz, jakiej pomocy potrzebujesz.

Skontaktuj się z nami
Wróć do wszystkich artykułów