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 funkcji platformy Azure z dedykowaną pulą SQL (dawniej SQL DW), musisz utworzyć konto jednostki usługi. Konto jednostki usługi wymaga dostępu współautora w ramach tej samej subskrypcji co wystąpienie dedykowanej puli SQL (dawniej SQL DW).
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:
- Nazwa grupy zasobów dedykowanej puli SQL (dawniej SQL DW) znajduje się w
- Nazwa serwera, w ramach dedykowanej puli SQL (dawniej SQL DW) znajduje się
- Nazwa dedykowanej puli SQL (dawniej SQL DW) wystąpienia
- Identyfikator dzierżawy (identyfikator katalogu) identyfikatora entra firmy Microsoft
- Identyfikator subskrypcji
- Identyfikator aplikacji nazwy głównej usługi
- Klucz tajny usługi nazwy głównej usługi
Po utworzeniu powyższych informacji wdróż ten szablon:
Po wdrożeniu szablonu powinny znajdować się trzy nowe zasoby: bezpłatny plan usługi aplikacja systemu Azure, plan aplikacji funkcji oparty na użyciu oraz konto magazynu obsługujące rejestrowanie i kolejkę operacji. Kontynuuj czytanie pozostałych sekcji, aby dowiedzieć się, jak zmodyfikować wdrożone funkcje i dostosować je do swoich potrzeb.
Zmienianie czasu operacji skalowania
Przejdź do usługi aplikacji funkcji. Jeśli szablon został wdrożony przy użyciu wartości domyślnych, usługa ta powinna mieć nazwę DWOperations. Po otwarciu aplikacji funkcji powinno być widocznych pięć funkcji wdrożonych w usłudze aplikacji funkcji.
Wybierz pozycję DWScaleDownTrigger lub DWScaleUpTrigger, aby skalować w górę lub w dół. W menu rozwijanym wybierz pozycję Integruj.
Obecnie powinna być wyświetlana wartość %ScaleDownTime% lub %ScaleUpTime%. Te wartości wskazują, że harmonogram jest oparty na wartościach określonych 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 chcesz uwzględnić częstotliwość skalowania usługi Azure Synapse Analytics w górę.
Wartość
schedule
jest wyrażeniem CRON obejmującym sześć pól:{second} {minute} {hour} {day} {month} {day-of-week}
Na przykład wartość "0 30 9 * * 1–5" odzwierciedla wyzwalacz każdego dnia tygodnia o godzinie 9:30. Aby uzyskać więcej informacji, zapoznaj się z przykładami harmonogramów usługi Azure Functions.
Zmienianie poziomu obliczeń
Przejdź do usługi aplikacji funkcji. Jeśli szablon został wdrożony przy użyciu wartości domyślnych, usługa ta powinna mieć nazwę DWOperations. Po otwarciu aplikacji funkcji powinno być widocznych pięć funkcji wdrożonych w usłudze aplikacji funkcji.
Wybierz pozycję DWScaleDownTrigger lub DWScaleUpTrigger, aby skalować w górę lub skalować w dół wartość obliczeniową. Po wybraniu funkcji w okienku powinien zostać wyświetlony plik index.js.
Zmień wartość elementu ServiceLevelObjective na poziom, który chcesz, i wybierz pozycję Zapisz. ServiceLevelObjective to poziom obliczeniowy, na który będzie skalowane wystąpienie magazynu danych na podstawie harmonogramu zdefiniowanego w sekcji Integracja.
Używanie wstrzymywania lub wznawiania zamiast skalowania
Obecnie funkcje włączone domyślnie to DWScaleDownTrigger i DWScaleUpTrigger. Jeśli zamiast tego chcesz korzystać z funkcji wstrzymywania i wznawiania, możesz włączyć funkcje DWPauseTrigger lub DWResumeTrigger.
Przejdź do okienka Funkcje.
Wybierz przełącznik przesuwany dla odpowiednich wyzwalaczy, które chcesz włączyć.
Przejdź do kart Integracja 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 Dodawanie nowej funkcji wyzwalacza.
Dodawanie nowej funkcji wyzwalacza
Obecnie szablon zawiera tylko dwie funkcje skalowania. Dzięki tym funkcjom w ciągu dnia można skalować w dół tylko raz i w górę. 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.
Nazwij funkcję i ustaw harmonogram. Ilustracja przedstawia, jak można ustawić wyzwalanie funkcji w każdą sobotę o północy (późny wieczór w piątek).
Skopiuj zawartość pliku index.js z jednej z 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" }
Sporządzanie złożonego harmonogramu
W tej sekcji krótko przedstawiono, co jest konieczne, aby uzyskać bardziej złożone planowanie możliwości 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.
Function | Zaplanuj | Operacja |
---|---|---|
Function1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
Function2 | 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.
Function | Zaplanuj | Operacja |
---|---|---|
Function1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
Function2 | 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. Wstrzymanie w piątek o godz. 23:00, wznowienie w poniedziałek rano o godz. 7:00.
Function | Zaplanuj | Operacja |
---|---|---|
Function1 | 0 0 8 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
Function2 | 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 usługi Azure Functions.
Zobacz repozytorium przykładów dedykowanej puli SQL (dawniej SQL DW).