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:

Image showing a button labeled

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

  1. 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.

    Functions that are deployed with template

  2. Wybierz pozycję DWScaleDownTrigger lub DWScaleUpTrigger, aby skalować w górę lub w dół. W menu rozwijanym wybierz pozycję Integruj.

    Select Integrate for function

  3. 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.

  4. W obszarze harmonogramu dodaj wyrażenie CRON, które chcesz uwzględnić częstotliwość skalowania usługi Azure Synapse Analytics w górę.

    Change function schedule

    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ń

  1. 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.

  2. 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.

    Change function trigger compute level

  3. 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.

  1. Przejdź do okienka Funkcje.

    Functions pane

  2. Wybierz przełącznik przesuwany dla odpowiednich wyzwalaczy, które chcesz włączyć.

  3. 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.

  1. Utwórz nową pustą funkcję. Wybierz przycisk w + pobliżu lokalizacji usługi Functions, aby wyświetlić okienko szablonu funkcji.

    Screenshot that shows the

  2. W obszarze Język wybierz pozycję JavaScript, a następnie wybierz pozycję TimerTrigger.

    Create new function

  3. 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).

    Scale down Saturday

  4. Skopiuj zawartość pliku index.js z jednej z funkcji wyzwalacza.

    Copy index js

  5. 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).