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.

Ustalanie rozmiaru bezserwerowego magazynu SQL Warehouse

Zawsze zacznij od większego rozmiaru koszulki dla bezserwerowego magazynu SQL Warehouse, niż uważasz, że będziesz potrzebować i rozmiaru w dół podczas testowania. Nie zaczynaj od małego rozmiaru koszulki dla bezserwerowego magazynu SQL Warehouse i przejdź w górę. 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 koszulki bez rozlania na dysk lub znacznego zwiększenia opóźnienia.
  • Aby pomóc w odpowiednim rozmiarze bezserwerowego magazynu SQL Warehouse, użyj następujących narzędzi:
    • Strona monitorowania: przyjrzyj się liczbie zapytań szczytowych. 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.

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.

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ń. Korzystanie z funkcji przewidywania opartego na sztucznej inteligencji do analizowania przychodzących zapytań i określania najszybszych i bardziej wydajnych operacji we/wy (predykcyjnego we/wy) działa w celu zapewnienia, że obciążenia mają odpowiednią ilość zasobów. Kluczową różnicą są możliwości sztucznej inteligencji w usłudze Databricks SQL w celu dynamicznego reagowania na wymagania dotyczące obciążeń, a nie używania progów statycznych.

Ta szybkość reakcji zapewnia:

  • Szybkie skalowanie w celu uzyskania większej ilości zasobów obliczeniowych w razie potrzeby utrzymania małych opóźnień.
  • Wykonywanie zapytań o przyznanie bliżej ograniczenia sprzętu.
  • Szybkie skalowanie w celu zminimalizowania kosztów, gdy zapotrzebowanie jest niskie, zapewniając spójną wydajność ze zoptymalizowanymi kosztami i zasobami.

Po nadejściu zapytania do magazynu usługa IWM przewiduje koszt zapytania. 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 ma wymagane zasoby obliczeniowe, zapytanie rozpoczyna wykonywanie natychmiast.

Usługa IWM monitoruje kolejkę co około 10 sekund. Jeśli kolejka nie zmniejsza się wystarczająco szybko, skalowanie automatyczne rozpoczyna się, aby szybko uzyskać więcej obliczeń. Po dodaniu nowej pojemności zapytania w kolejce są dopuszczone do nowych klastrów. W przypadku bezserwerowych magazynów SQL można szybko dodawać nowe klastry, a jednocześnie można utworzyć więcej niż jeden klaster. Maksymalna liczba zapytań w kolejce dla wszystkich typów usługi SQL Warehouse wynosi 1000.

Rozmiary klastrów dla magazynów pro i klasycznych usług SQL Warehouse

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.

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, upewnij się, że 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 uwzględnić ponowne aprowizowanie magazynu, które odbywa się mniej więcej co 24 godziny. Jeśli magazyny SQL używają automatycznego skalowania lub równoważenia obciążenia w wielu klastrach, może być konieczne zwiększenie mnożnika.
  • 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 Nauka o danych i inżynierię lub 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 Azure Databricks zaleca klaster dla każdego 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.

Kolejkowanie zapytań dla magazynów pro i klasycznych usług SQL Warehouse

Usługa Azure Databricks kolejkuje zapytania, gdy wszystkie klastry przypisane do magazynu wykonują zapytania w pełnej pojemności lub gdy magazyn jest w STARTING stanie. Maksymalna liczba zapytań w kolejce dla wszystkich typów usługi SQL Warehouse wynosi 1000.

Zapytania metadanych (na przykład DESCRIBE <table>) i zapytania modyfikujące stan (na przykład SET) nigdy nie są kolejkowane, chyba że magazyn jest w STARTING stanie .