Udostępnij przez


Sposoby określania rozmiaru, skalowania i kolejkowania w magazynie SQL

W tym artykule wyjaśniono, jak skalować i skalować kolejki zapytań dla magazynów SQL usługi Databricks oraz zarządzać nimi w celu optymalizacji wydajności i kosztów. Usługa Databricks zaleca używanie bezserwerowego magazynu SQL Dla większości obciążeń. Bezserwerowe magazyny SQL zapewniają najlepszą wydajność i wydajność dzięki dynamicznemu zarządzaniu zasobami dla zapytań.

Zarządzanie bezserwerową usługą SQL Warehouse

Bezserwerowe magazyny SQL używają inteligentnego zarządzania obciążeniami (IWM) do automatycznego zarządzania obciążeniami zapytań. IWM to zestaw funkcji opartych na sztucznej inteligencji, które umożliwiają szybkie i ekonomiczne przetwarzanie zapytań bez konieczności zarządzania infrastrukturą.

Inteligentne zarządzanie obciążeniami i skalowanie automatyczne

Usługa IWM używa modeli uczenia maszynowego do dynamicznego zarządzania zasobami obliczeniowymi:

  • Po nadejściu nowego zapytania usługa IWM przewiduje wymagania dotyczące zasobów i sprawdza dostępną pojemność.
    • Jeśli pojemność istnieje, zapytanie jest uruchamiane natychmiast.
    • Jeśli nie, zapytanie zostanie umieszczone w kolejce.
  • Program IWM stale monitoruje kolejkę. W przypadku zwiększenia czasu oczekiwania funkcja skalowania automatycznego szybko aprowizuje więcej klastrów do przetwarzania zapytań w kolejce.
  • Gdy zapotrzebowanie spadnie, usługa IWM skaluje zasoby w dół, aby zmniejszyć koszty przy zachowaniu wystarczającej pojemności do obsługi ostatnich szczytowych obciążeń.

Takie podejście zapewnia:

  • Szybkie skalowanie w celu zachowania małych opóźnień zapytań.
  • Wysoka przepływność dzięki przyznaniu zapytań, gdy tylko sprzęt jest dostępny.
  • Szybkie skalowanie w dół w celu oszczędzania kosztów podczas niskiego zapotrzebowania.

Ustalanie rozmiaru bezserwerowego magazynu SQL Warehouse

Rozmiar klastra (na przykład X-Small, Medium, Large) określa zasoby obliczeniowe dostępne dla jednego klastra. Autoskalator dodaje lub usuwa klastry tego rozmiaru zgodnie z potrzebami.

Skorzystaj z poniższych wskazówek, aby ułatwić wybór odpowiedniego rozmiaru:

  • Zacznij od jednego większego magazynu i pozwól, aby funkcje bezserwerowe zarządzały współbieżnością i wydajnością. Zwykle bardziej wydajne jest zmniejszenie rozmiaru, jeśli jest to konieczne, niż uruchomienie małych i skalowanych w górę.
  • Jeśli zapytania rozlewają się na dysk, zwiększ rozmiar klastra. Sprawdź wycieki w profilu zapytania.
  • W przypadku obciążeń z wieloma współbieżnymi zapytaniami należy skonfigurować wystarczającą maksymalną liczbę klastrów do obsługi szczytowych obciążeń. Monitorowanie metryki Peak Queued Queries na stronie monitorowania magazynu.

Uwaga

W przypadku bezserwerowych magazynów SQL rozmiary klastrów mogą w niektórych przypadkach używać różnych typów wystąpień niż wymienione w dokumentacji dla magazynów pro i klasycznych magazynów SQL dla równoważnego rozmiaru klastra. Ogólnie rzecz biorąc, stosunek cen/wydajności rozmiarów klastrów dla bezserwerowych magazynów SQL jest podobny do tych w przypadku magazynów pro i klasycznych usług SQL Warehouse.

Monitorowanie wydajności magazynu

Przy użyciu tych narzędzi możesz monitorować i określać odpowiedni rozmiar dowolnego magazynu SQL Warehouse. Maksymalna liczba zapytań w kolejce dla wszystkich typów magazynu wynosi 1000.

  • Strona monitorowania: Na karcie Monitorowanie usługi SQL Warehouse zaznacz pole Peak Queued Queries (Szczytowe zapytania w kolejce). Wartość spójna powyżej 0 wskazuje, że może być potrzebny większy rozmiar klastra lub więcej klastrów.
  • Historia zapytań: Przejrzyj historyczną wydajność zapytań, aby zidentyfikować wąskie gardła.
  • Profil zapytania: Sprawdź plany wykonywania metryk, takich jak bajty rozlane na dysk, co wskazuje, że rozmiar magazynu może być zbyt mały.

Klasyczne i pro sql warehouse

Magazyny klasyczne i pro używają modelu skalowania ręcznego, w którym można skonfigurować liczbę klastrów.

Ustalanie rozmiaru i aprowizowanie klastra

Podczas tworzenia magazynu klasycznego lub pro wybierz rozmiar klastra i ustaw minimalną i maksymalną liczbę klastrów. Te jednostki SKU mają stały limit jednego klastra na 10 współbieżnych zapytań.

Rozmiar klastra Typ wystąpienia sterownika Liczba procesów roboczych
2X-small Standard_E8ds_v4 1 x Standard_E8ds_v4
X-Small Standard_E8ds_v4 2 x Standard_E8ds_v4
Mały Standard_E16ds_v4 4 x Standard_E8ds_v4
Śred. Standard_E32ds_v4 8 x Standard_E8ds_v4
Duży Standard_E32ds_v4 16 x Standard_E8ds_v4
X-Large Standard_E64ds_v4 32 x Standard_E8ds_v4
Duży rozmiar 2X Standard_E64ds_v4 64 x Standard_E8ds_v4
Duży rozmiar 3X Standard_E64ds_v4 128 x Standard_E8ds_v4
Duży rozmiar 4X Standard_E64ds_v4 256 x Standard_E8ds_v4

Rozmiar wystąpienia wszystkich procesów roboczych jest Standard_E8ds_v4.

Każdy kierowca i pracownik ma dołączony zarządzany dysk LRS SSD w warstwie Premium o pojemności 256 GB. Opłaty za dołączone dyski są naliczane godzinowo.

Wymagany limit przydziału procesorów wirtualnych platformy Azure dla magazynów klasycznych i pro SQL

Aby uruchomić klasyczny lub pro sql warehouse, musisz mieć odpowiedni limit przydziału procesorów wirtualnych platformy Azure dla wystąpień Standard_E8ds_v4 na koncie platformy Azure. Skorzystaj z poniższych wskazówek, aby określić wymagany limit przydziału procesorów wirtualnych:

Jeśli masz tylko jeden lub dwa magazyny SQL, sprawdź, czy masz 8 procesorów wirtualnych platformy Azure dostępnych dla każdego rdzenia w klastrze. Gwarantuje to, że masz odpowiedni procesor wirtualny platformy Azure, aby umożliwić ponowne aprowizowanie magazynu, co odbywa się mniej więcej co 24 godziny. Może być konieczne zwiększenie mnożnika, jeśli magazyny SQL używają skalowania automatycznego lub równoważenia obciążenia w wielu klastrach.

  • Wraz ze wzrostem liczby magazynów SQL umożliwia korzystanie z procesorów wirtualnych platformy Azure z zakresu od 4 do 8 dla każdego rdzenia w klastrze. Usługa Databricks zaleca rozpoczęcie od większej liczby i monitorowanie stabilności.
  • Procesory wirtualne platformy Azure używane przez magazyny SQL są dodatkiem do procesorów wirtualnych platformy Azure używanych przez klastry używane przez środowisko data science & Engineering lub przez obciążenia inne niż databricks.

Aby zażądać dodatkowego limitu przydziału procesorów wirtualnych platformy Azure, zobacz Standardowy limit przydziału: Zwiększanie limitów według serii maszyn wirtualnych w dokumentacji platformy Azure.

Uwaga

Informacje w tej tabeli mogą się różnić w zależności od dostępności produktu lub regionu i typu obszaru roboczego.

Logika kolejkowania i skalowania automatycznego

W przypadku magazynów klasycznych i pro skalowanie automatyczne dodaje klastry w oparciu o szacowany czas przetwarzania wszystkich uruchomionych i kolejek zapytań:

  • 2–6 minut ładowania zapytań: Dodaj 1 klaster.
  • 6–12 minut: Dodaj 2 klastry.
  • 12–22 minuty: Dodaj 3 klastry.
  • Ponad 22 minuty: dodaj 3 klastry plus 1 więcej dla każdego dodatkowego 15 minut ładowania.

Dodatkowe reguły:

  • Jeśli zapytanie czeka w kolejce przez 5 minut, magazyn jest skalowany w górę.
  • Jeśli obciążenie pozostanie niskie przez 15 kolejnych minut, magazyn jest skalowany w dół do minimum potrzebnego do obsługi szczytowego obciążenia z tego okresu.