Metody optymalizacji

Automatyzacja potoków danych w Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Więcej mocy obliczeniowej to nie zawsze rozwiązanie

bigger_house

Automatyzacja potoków danych w Snowflake

Cztery różne podejścia

nanobanana: half: Cztery różne geometryczne ikony narzędzi ułożone w siatce dwa na dwa, abstrakcyjny płaski design, kolory DataCamp: granatowy i zielony, białe tło, bez tekstu, minimalistyczny

  • Search Optimization – wyszukiwania równości na identyfikatorach o wysokiej kardynalności
  • Query Acceleration Service – nieprzewidywalne, rozległe skany
  • Automatic Clustering – powtarzające się filtry zakresowe na tych samych kolumnach
  • Materialized Views – kosztowne agregacje wykonywane często
Automatyzacja potoków danych w Snowflake

Optymalizacja wyszukiwania

  • Pomaga w znajdowaniu zapytań zwracających niewiele wierszy z dużej tabeli
  • Buduje trwałą ścieżkę dostępu; część mikro-partycji może być pomijana
  • Koszty przechowywania i obliczeń związane z utrzymaniem ścieżki dostępu
ALTER TABLE logistics.shipments
  ADD SEARCH OPTIMIZATION;
1 docs.snowflake.com/en/user-guide/search-optimization-service
Automatyzacja potoków danych w Snowflake

Usługa przyspieszania zapytań

  • Obsługuje duże, nieprzewidywalne skany
  • Obsługuje SELECT, INSERT, CREATE TABLE AS SELECT, COPY INTO
  • QUERY_ACCELERATION_MAX_SCALE_FACTOR: domyślnie 8; 0 oznacza brak limitu, nie wyłączenie
ALTER WAREHOUSE harbr_wh SET
  ENABLE_QUERY_ACCELERATION = TRUE
  QUERY_ACCELERATION_MAX_SCALE_FACTOR 
  = 8;
1 docs.snowflake.com/en/user-guide/query-acceleration-service
Automatyzacja potoków danych w Snowflake

Automatyczne klastrowanie

  • Dla tabel, w których te same kolumny filtrów pojawiają się w większości zapytań
  • Snowflake reorganizuje mikro-partycje, aby filtry zakresowe pomijały więcej danych
  • Konserwacja w tle – nie wymaga magazynu
  • Kompromis: bieżący koszt obliczeń przy napływie nowych danych
ALTER TABLE logistics.delivery_events
  CLUSTER BY (region, dispatch_date);
1 docs.snowflake.com/en/user-guide/tables-auto-reclustering
Automatyzacja potoków danych w Snowflake

Zmaterializowane widoki

  • Przydatne, gdy kosztowne zapytanie jest wykonywane wielokrotnie
  • Wstępnie oblicza i przechowuje wynik zapytania; odczyty trafiają do przechowywanego wyniku
  • Snowflake utrzymuje je automatycznie w tle
  • Ograniczenia SQL: brak HAVING, ograniczone złączenia, brak funkcji okna
CREATE MATERIALIZED VIEW 
logistics.emea_summary_mv AS
  SELECT region, carrier_id,
         COUNT(*) AS shipments,
         AVG(delivery_days) AS avg_days
  FROM logistics.shipments
  WHERE region = 'EMEA'
  GROUP BY region, carrier_id;
1 docs.snowflake.com/en/user-guide/views-materialized
Automatyzacja potoków danych w Snowflake

Wybór właściwej metody

Sygnał w profilu zapytania Metoda do rozważenia
TableScan odczytuje prawie wszystkie partycje; wyszukiwanie równości na kolumnie o wysokiej kardynalności Search Optimization
Duże agregacje, rozległe skany, nieprzewidywalne zapytania Query Acceleration Service
Te same kolumny filtrów w większości zapytań; słabe przycinanie Automatic Clustering
Ta sama kosztowna agregacja wykonywana często na rzadko zmienianych danych Materialized View
  • Metody uzupełniają się nawzajem
Automatyzacja potoków danych w Snowflake

Czas na ćwiczenia!

Automatyzacja potoków danych w Snowflake

Preparing Video For Download...