Zarządzanie zasobami obliczeniowymi dla dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics za pomocą usługi Azure Functions
Ten samouczek używa usługi Azure Functions do zarządzania zasobami obliczeniowymi dla dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics.
Aby użyć aplikacji Azure Functions z dedykowaną pulą SQL (dawniej SQL DW), należy utworzyć konto usługi głównej . Konto Service Principal potrzebuje dostępu współautora do instancji dedykowanej puli SQL (wcześniej SQL DW) w ramach tej samej subskrypcji.
Wdrażanie skalowania opartego na czasomierzu przy użyciu szablonu usługi Azure Resource Manager
Do wdrożenia szablonu potrzebne są następujące informacje:
- Grupa zasobów, w której znajduje się Twoja instancja dedykowanej puli SQL (dawniej SQL DW)
- Nazwa serwera, w którym znajduje się instancja dedykowanej puli SQL (dawniej SQL DW)
- Nazwa wystąpienia dedykowanej puli SQL (dawniej SQL DW)
- Identyfikator dzierżawcy (identyfikator katalogu) Microsoft Entra ID
- Identyfikator subskrypcji
- Identyfikator aplikacji jednostki usługi
- Klucz tajny usługi głównej
Po utworzeniu powyższych informacji wdróż ten szablon:
Po wdrożeniu szablonu powinny znajdować się trzy nowe zasoby: bezpłatny plan usługi Azure App Service, plan aplikacji funkcji oparty na użyciu oraz konto magazynu obsługujące rejestrowanie i kolejkę operacji. Kontynuuj czytanie innych sekcji, aby zobaczyć, jak zmodyfikować wdrożone funkcje zgodnie z potrzebami.
Zmienianie czasu operacji skalowania
Przejdź do usługi aplikacji funkcji. Jeśli szablon został wdrożony z wartościami domyślnymi, ta usługa powinna mieć nazwę DWOperations. Po otwarciu Aplikacji Funkcji powinieneś zauważyć, że w usłudze Aplikacji Funkcji wdrożono pięć funkcji.
Wybierz DWScaleDownTrigger lub DWScaleUpTrigger w celu skalowania w górę lub w dół. W menu rozwijanym wybierz pozycję Integruj.
funkcji
Obecnie wyświetlana wartość powinna mieć wartość %ScaleDownTime% lub %ScaleUpTime%. Te wartości wskazują, że harmonogram jest oparty na wartościach zdefiniowanych w ustawieniach aplikacji . Na razie możesz zignorować tę wartość i zmienić harmonogram na preferowany czas na podstawie następnych kroków.
W obszarze harmonogramu dodaj wyrażenie CRON, które odzwierciedla częstotliwość skalowania w górę Azure Synapse Analytics.
Wartość
schedule
to wyrażenie CRON zawierające te sześć pól:{second} {minute} {hour} {day} {month} {day-of-week}
Na przykład "0 30 9 * * 1-5" oznacza wyzwalacz każdego dnia roboczego o godzinie 9:30. Aby uzyskać więcej informacji, odwiedź stronę z przykładami harmonogramu usługi Azure Functions .
Zmienianie poziomu obliczeń
Przejdź do usługi Function App. Jeśli szablon został wdrożony z wartościami domyślnymi, ta usługa powinna mieć nazwę DWOperations. Po otwarciu aplikacji funkcji powinieneś zauważyć, że wdrożono pięć funkcji w usłudze aplikacji funkcji.
Wybierz DWScaleDownTrigger lub DWScaleUpTrigger w celu skalowania w górę lub w dół wartości obliczeniowej. Po wybraniu funkcji okienko powinno wyświetlić plik index.js.
Zmień wartość ServiceLevelObjective na poziom, który chcesz, i wybierz pozycję Zapisz. ServiceLevelObjective to poziom obliczeniowy, na który będzie skalowana instancja magazynu danych na podstawie harmonogramu zdefiniowanego w sekcji Integracja.
Użyj wstrzymywania lub wznawiania zamiast skalowania
Obecnie funkcje włączone domyślnie są DWScaleDownTrigger i DWScaleUpTrigger. Jeśli zamiast tego chcesz użyć funkcji wstrzymywania i wznawiania, możesz włączyć DWPauseTrigger lub DWResumeTrigger.
Przejdź do okienka Funkcje.
Wybierz przełącznik przesuwany dla odpowiednich wyzwalaczy, które chcesz włączyć.
Przejdź do kart Integracja dla odpowiednich wyzwalaczy, aby zmienić ich harmonogram.
Uwaga
Różnica funkcjonalna między wyzwalaczami skalowania a wyzwalaczami wstrzymywania/wznawiania to komunikat wysyłany do kolejki. Aby uzyskać więcej informacji, zobacz Dodaj nową funkcję wyzwalacza.
Dodawanie nowej funkcji wyzwalacza
Obecnie w szablonie znajdują się tylko dwie funkcje skalowania. Dzięki tym funkcjom w ciągu dnia można skalować w dół tylko raz i w górę tylko raz. Aby uzyskać bardziej szczegółową kontrolę, taką jak skalowanie w dół wiele razy dziennie lub inne zachowanie skalowania w weekendy, należy dodać kolejny wyzwalacz.
Utwórz nową pustą funkcję. Wybierz przycisk + w pobliżu lokalizacji usługi Functions, aby wyświetlić okienko szablonu funkcji.
W obszarze Język wybierz pozycję JavaScript, a następnie wybierz pozycję TimerTrigger.
Nadaj funkcji nazwę i ustaw harmonogram. Obraz pokazuje, jak można wyzwolić ich funkcję w każdą sobotę o północy (późnym wieczorem w piątek).
Skopiuj zawartość index.js z jednej z innych funkcji wyzwalacza.
Ustaw zmienną operacji na żądane zachowanie w następujący sposób:
// Resume the dedicated SQL pool (formerly SQL DW) instance var operation = { "operationType": "ResumeDw" } // Pause the dedicated SQL pool (formerly SQL DW) instance var operation = { "operationType": "PauseDw" } // Scale the dedicated SQL pool (formerly SQL DW)l instance to DW600c var operation = { "operationType": "ScaleDw", "ServiceLevelObjective": "DW600c" }
Złożone planowanie
W tej sekcji krótko przedstawiono, co jest konieczne do bardziej złożonego planowania procesów wstrzymywania, wznawiania i skalowania.
Przykład 1
Codziennie skaluj w górę o 8:00 do DW600c i skaluj w dół o godzinie 18:00 do DW200c.
Funkcja | Rozkład | Operacja |
---|---|---|
Function1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
Funkcja2 | 0 0 20 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"} |
Przykład 2
Codziennie skaluj w górę o 8:00 do DW1000c, skaluj w dół raz do DW600 o godzinie 14:00 i skaluj w dół o godzinie 10:00 do DW200c.
Funkcja | Rozkład | Operacja |
---|---|---|
Funkcja1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
Funkcja2 | 0 0 16 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
Function3 | 0 0 22 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"} |
Przykład 3
Skaluj w górę o 8:00 do DW1000c, skaluj w dół raz do DW600c o godzinie 16:00 w dni powszednie. Wstrzymuje od piątku, 23:00, wznawia o 7:00 w poniedziałek rano.
Funkcja | Rozkład | Operacja |
---|---|---|
Funkcja1 | 0 0 8 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
Funkcja2 | 0 0 16 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
Function3 | 0 0 23 * * 5 | var operation = {"operationType": "PauseDw"} |
Function4 | 0 0 7 * * 1 | var operation = {"operationType": "ResumeDw"} |
Następne kroki
Dowiedz się więcej o wyzwalaczu czasomierza Azure Functions.
Zobacz dedykowaną pulę SQL (dawniej SQL DW) repozytorium przykładów.