Udostępnij za pośrednictwem


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:

Obraz przedstawiający przycisk z etykietą

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

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

    Funkcje, które są wdrażane przy użyciu szablonu

  2. Wybierz DWScaleDownTrigger lub DWScaleUpTrigger w celu skalowania w górę lub w dół. W menu rozwijanym wybierz pozycję Integruj.

    Wybierz integrację dla funkcji

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

  4. W obszarze harmonogramu dodaj wyrażenie CRON, które odzwierciedla częstotliwość skalowania w górę Azure Synapse Analytics.

    Zmień harmonogram funkcji

    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ń

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

  2. 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ń poziom obliczeń wyzwalacza funkcji

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

  1. Przejdź do okienka Funkcje.

    panel funkcji

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

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

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

    Zrzut ekranu przedstawiający menu

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

    Tworzenie nowej funkcji

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

    Skalowanie w dół w sobotę

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

    skopiuj 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"
    }
    

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.