Udostępnij za pośrednictwem


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

W tym artykule wyjaśniono zachowanie określania rozmiaru, kolejkowania i automatycznego skalowania klastra w magazynach SQL.

Omówienie określania rozmiaru

Magazyny SQL są dostępne w typach bezserwerowych, pro i klasycznych, które mają różne funkcje wydajności i optymalizacje, które mogą mieć wpływ na wydajność zapytań w magazynie. Zobacz typy usługi magazynu SQL. Usługa Databricks zaleca używanie bezserwerowych magazynów SQL, jeśli są dostępne.

W przypadku każdego typu magazynu, wybierz rozmiar klastra dla jego zasobów obliczeniowych. Optymalizacja rozmiaru usługi SQL Warehouse usługi Databricks obejmuje więcej niż tylko rozważenie ilości danych lub liczby użytkowników. Złożoność zapytań i liczba współbieżnych zapytań są również kluczowymi czynnikami wydajności.

Magazyny SQL w Databricks używają dynamicznej równoczesności do obsługi tych wymagań. W przeciwieństwie do magazynów o statycznej pojemności, Databricks SQL dostosowuje zasoby obliczeniowe w czasie rzeczywistym, aby zarządzać współbieżnymi obciążeniami i zmaksymalizować przepływność. Każda kategoria rozmiaru magazynu ma stałą pojemność obliczeniową na jednostkę, ale system skaluje liczbę zasobów, aby uwzględnić różne wymagania.

Rozmiary klastra dla magazynów SQL

Tabela w tej sekcji mapuje rozmiary klastra usługi SQL Warehouse na rozmiar sterownika klastra usługi Azure Databricks i liczbę procesów roboczych. Rozmiar sterownika dotyczy tylko magazynów pro i klasycznych usług SQL Warehouse.

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.

Rozmiar klastra Typ wystąpienia sterownika (dotyczy tylko magazynów pro i klasycznych) 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 sterownik i proces roboczy mają dołączone osiem dysków zarządzanych LRS w warstwie Standardowa 128 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.

Kolejkowanie i skalowanie automatyczne dla magazynów pro i klasycznych usług SQL Warehouse

Usługa Azure Databricks ogranicza liczbę zapytań w klastrze przypisanym do usługi SQL Warehouse na podstawie kosztów obliczania wyników. Skalowanie klastrów na magazyn jest oparte na przepływności zapytań, szybkości zapytań przychodzących i rozmiarze kolejki. Usługa Databricks zaleca klaster na każde 10 współbieżnych zapytań. Maksymalna liczba zapytań w kolejce dla wszystkich typów usługi SQL Warehouse wynosi 1000.

Usługa Azure Databricks dodaje klastry na podstawie czasu przetwarzania wszystkich aktualnie uruchomionych zapytań, wszystkich zapytań w kolejce i przychodzących zapytań oczekiwanych w ciągu najbliższych dwóch minut.

  • Jeśli wartość jest mniejsza niż 2 minuty, nie skaluj ich w górę.
  • Jeśli 2 do 6 minut dodaj klaster 1.
  • Jeśli 6 do 12 minut dodaj 2 klastry.
  • Jeśli 12 do 22 minut dodaj 3 klastry.

W przeciwnym razie usługa Azure Databricks dodaje 3 klastry i 1 klaster co dodatkowe 15 minut oczekiwanego ładowania zapytań.

Ponadto magazyn jest zawsze rozbudowany, jeśli zapytanie czeka 5 minut w kolejce.

Jeśli obciążenie jest niskie przez 15 minut, usługa Azure Databricks w dół skaluje magazyn SQL Warehouse. Utrzymuje wystarczającą liczbę klastrów do obsługi szczytowego obciążenia w ciągu ostatnich 15 minut. Jeśli na przykład szczytowe obciążenie miało 25 współbieżnych zapytań, usługa Azure Databricks przechowuje 3 klastry.

Skalowanie automatyczne bezserwerowe i kolejkowanie zapytań

Inteligentne zarządzanie obciążeniami (IWM) to zestaw funkcji, które zwiększają możliwości bezserwerowych magazynów SQL do szybkiego i ekonomicznego przetwarzania dużej liczby zapytań. Dynamicznie zarządza obciążeniami przy użyciu modeli uczenia maszynowego w celu przewidywania zapotrzebowania na zasoby zapytań przychodzących podczas monitorowania dostępnej pojemności obliczeniowej magazynu w czasie rzeczywistym. Śledzenie tych i innych sygnałów w magazynie umożliwia usłudze IWM reagowanie na zmiany zapotrzebowania na obciążenia.

To dynamiczne zarządzanie umożliwia usłudze IWM wykonywanie następujących czynności:

  • Szybkie skalowanie zasobów obliczeniowych w celu utrzymania małych opóźnień.
  • Podaj możliwość udzielania zapytań w szybkościach bliżej ograniczenia sprzętu.
  • Szybkie obniżanie skali w celu zminimalizowania kosztów, gdy zapotrzebowanie jest niskie.

Gdy zapytanie dociera do magazynu, program IWM przewiduje jego koszt. Jednocześnie usługa IWM monitoruje dostępną pojemność obliczeniową magazynu w czasie rzeczywistym. Następnie, korzystając z modeli uczenia maszynowego, IWM przewiduje, czy przychodzące zapytanie ma niezbędne zasoby obliczeniowe dostępne dla istniejących zasobów obliczeniowych. Jeśli nie ma potrzebnych zasobów obliczeniowych, zapytanie zostanie dodane do kolejki. Jeśli zasoby obliczeniowe są potrzebne, zapytanie zaczyna działać natychmiast.

Usługa IWM monitoruje kolejkę w czasie rzeczywistym. Jeśli kolejka nie zmniejsza się wystarczająco szybko, skalowanie automatyczne automatycznie aprowizuje więcej zasobów obliczeniowych. Po dodaniu nowej pojemności zapytania w kolejce są dopuszczone do nowych zasobów obliczeniowych. W przypadku bezserwerowych magazynów SQL można szybko dodać nowe zasoby obliczeniowe. Maksymalna liczba zapytań w kolejce dla wszystkich typów usługi SQL Warehouse wynosi 1000.

Ustalanie rozmiaru bezserwerowego magazynu SQL Warehouse

Zacznij od większego rozmiaru dla bezserwerowego magazynu SQL, niż myślisz, że będzie potrzebny, i zmniejszaj go podczas testowania. Nie zaczynaj od małego rozmiaru dla swojego bezserwerowego magazynu SQL i nie zwiększaj skali. Ogólnie rzecz biorąc, zacznij od pojedynczego bezserwerowego magazynu SQL Warehouse i polegaj na usłudze Azure Databricks w celu odpowiedniego rozmiaru klastrów bezserwerowych, określania priorytetów obciążeń i szybkiego odczytu danych. Zobacz Skalowanie automatyczne bezserwerowe i kolejkowanie zapytań.

  • Aby zmniejszyć opóźnienie zapytań dla danego bezserwerowego magazynu SQL Warehouse:
    • Jeśli zapytania rozlewają się na dysk, zwiększ rozmiar koszulki.
    • Jeśli zapytania są wysoce równoległe, zwiększ rozmiar koszulki.
    • Jeśli jednocześnie uruchamiasz wiele zapytań, dodaj więcej klastrów na potrzeby skalowania automatycznego.
  • Aby zmniejszyć koszty, spróbuj zmniejszyć rozmiar bez zapisywania na dysk lub znacznego zwiększenia opóźnienia.

Narzędzia do monitorowania i oceniania wydajności

Aby pomóc w dopasowaniu rozmiaru SQL warehouse, użyj następujących narzędzi:

  • Strona monitorowania: Przejrzyj liczbę szczytowych zapytań. Jeśli szczytowa kolejka jest często wyższa niż jedna, dodaj klastry. Maksymalna liczba zapytań w kolejce dla wszystkich typów usługi SQL Warehouse wynosi 1000. Zobacz Monitorowanie usługi SQL Warehouse.
  • Historia zapytań. Zobacz Historia zapytań.
  • Profile zapytań (poszukaj bajtów rozlanych na dysk powyżej 1). Zobacz Profil zapytania.