Share via


Usare Funzioni di Azure per gestire le risorse di calcolo del pool SQL dedicato (in precedenza SQL DW) in Azure Synapse Analytics

Questa esercitazione usa Funzioni di Azure per gestire le risorse di calcolo per un pool SQL dedicato (in precedenza SQL DW) in Azure Synapse Analytics.

Per usare un'app per Funzioni di Azure con un pool SQL dedicato (in precedenza SQL DW), è necessario creare un account dell’entità servizio. L'account dell'entità servizio richiede l'accesso come collaboratore nella stessa sottoscrizione dell'istanza del pool SQL dedicato (in precedenza SQL DW).

Distribuire il ridimensionamento basato su timer con un modello di Azure Resource Manager

Per distribuire il modello sono necessarie le informazioni seguenti:

  • Nome del gruppo di risorse in cui si trova l'istanza del pool SQL dedicato (in precedenza SQL DW)
  • Nome del server in cui si trova l'istanza del pool SQL dedicato (in precedenza SQL DW)
  • Nome dell'istanza del pool SQL dedicato (in precedenza SQL DW)
  • ID tenant (ID directory) di Microsoft Entra ID
  • ID sottoscrizione
  • ID applicazione dell'entità servizio
  • Chiave privata dell'entità servizio

Dopo aver recuperato le informazioni riportate sopra, distribuire questo modello:

Image showing a button labeled

Al termine della distribuzione del modello, dovrebbero essere presenti tre nuove risorse: un piano di servizio app di Azure gratuito, un piano di app per le funzioni a consumo e un account di archiviazione che gestisce la registrazione e la coda delle operazioni. Per informazioni su come modificare le funzioni distribuite in base alle esigenze, vedere le altre sezioni.

Modificare la data e l'ora dell'operazione di ridimensionamento

  1. Passare al servizio app per le funzioni. Se il modello è stato distribuito con i valori predefiniti, il servizio sarà denominato DWOperations. Dopo aver aperto l'app per le funzioni, si noterà che nel servizio app per le funzioni sono distribuite cinque funzioni.

    Functions that are deployed with template

  2. Selezionare DWScaleDownTrigger o DWScaleUpTrigger per aumentare o ridurre le prestazioni. Nel menu a discesa selezionare Integrazione.

    Select Integrate for function

  3. Il valore attualmente visualizzato dovrebbe essere %ScaleDownTime% o %ScaleUpTime%. Questi valori indicano che la pianificazione è basata sui valori definiti nelle impostazioni dell'applicazione. Per il momento è possibile ignorare questo valore e modificare la pianificazione impostando la data e l'ora preferite in base ai passaggi successivi.

  4. Nell'area relativa alla pianificazione aggiungere l'espressione CRON desiderata per riflettere la frequenza con cui si vogliono aumentare le prestazioni di Azure Synapse Analytics.

    Change function schedule

    Il valore di schedule è un'espressione CRON che include i 6 campi seguenti:

    {second} {minute} {hour} {day} {month} {day-of-week}
    

    Ad esempio, "0 30 9 * * 1-5" corrisponde a un trigger alle 9.30 di ogni giorno feriale. Per altre informazioni, vedere gli esempi di pianificazione di Funzioni di Azure.

Modificare il livello di calcolo

  1. Passare al servizio app per le funzioni. Se il modello è stato distribuito con i valori predefiniti, il servizio sarà denominato DWOperations. Dopo aver aperto l'app per le funzioni, si noterà che nel servizio app per le funzioni sono distribuite cinque funzioni.

  2. Selezionare DWScaleDownTrigger o DWScaleUpTrigger per aumentare o ridurre il valore di calcolo. Quando si selezionano le funzioni, nel riquadro dovrebbe essere visualizzato il file index.js.

    Change function trigger compute level

  3. Modificare il valore di ServiceLevelObjective impostando il livello desiderato e selezionare Salva. ServiceLevelObjective è il livello di calcolo a cui passerà l'istanza di Data Warehouse in base alla pianificazione definita nella sezione Integrazione.

Usare la sospensione o la ripresa invece del ridimensionamento

Attualmente, le funzioni attivate per impostazione predefinita sono DWScaleDownTrigger e DWScaleUpTrigger. Se si preferisce invece sospendere e riprendere le funzionalità, è possibile abilitare DWPauseTrigger o DWResumeTrigger.

  1. Passare al riquadro Funzioni.

    Functions pane

  2. Selezionare l'interruttore scorrevole corrispondente ai trigger da abilitare.

  3. Passare alle schede Integrazione per i rispettivi trigger per modificarne la pianificazione.

    Nota

    La differenza funzionale fra i trigger di ridimensionamento e i trigger di sospensione o ripresa è data dal messaggio inviato alla coda. Per altre informazioni, vedere Aggiungere una nuova funzione trigger.

Aggiungere una nuova funzione trigger

Attualmente, nel modello sono incluse solo due funzioni di ridimensionamento. Con queste funzioni, nel corso di un giorno è possibile eseguire solo una riduzione e un aumento delle prestazioni. Per un controllo più granulare, ad esempio per ridurre le prestazioni più volte al giorno o impostare un comportamento di ridimensionamento diverso nei fine settimana, è necessario aggiungere un altro trigger.

  1. Creare una nuova funzione vuota. Selezionare il pulsante + accanto a Funzioni per visualizzare il riquadro dei modelli di funzioni.

    Screenshot that shows the

  2. Selezionare JavaScript in Linguaggio e quindi TimerTrigger.

    Create new function

  3. Assegnare un nome alla funzione e impostare la pianificazione. L'immagine mostra come è possibile attivare la funzione ogni sabato a mezzanotte (ossia nella tarda serata di venerdì).

    Scale down Saturday

  4. Copiare il contenuto di index.js da una delle altre funzioni trigger.

    Copy index js

  5. Impostare la variabile operation sul comportamento desiderato come illustrato di seguito:

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

Pianificazione complessa

Questa sezione illustra brevemente gli elementi necessari per ottenere una pianificazione più complessa delle funzionalità di sospensione, ripresa e ridimensionamento.

Esempio 1

Eseguire ogni giorno l'aumento delle prestazioni a DW600c alle ore 8 e la riduzione delle prestazioni a DW200c alle ore 20.

Funzione Programmazione Operazione
Funzione 1 0 0 8 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Funzione 2 0 0 20 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"}

Esempio 2

Eseguire ogni giorno l'aumento delle prestazioni a DW1000c alle ore 8 e la riduzione delle prestazioni a DW600 alle ore 16 e a DW200c alle ore 22.

Funzione Programmazione Operazione
Funzione 1 0 0 8 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"}
Funzione 2 0 0 16 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Funzione 3 0 0 22 * * * var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"}

Esempio 3

Eseguire nei giorni feriali l'aumento delle prestazioni a DW1000c alle ore 8 e la riduzione delle prestazioni a DW600c alle ore 16, nonché sospendere alle ore 23 di venerdì e riprendere alle ore 7 di lunedì.

Funzione Programmazione Operazione
Funzione 1 0 0 8 * * 1-5 var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"}
Funzione 2 0 0 16 * * 1-5 var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"}
Funzione 3 0 0 23 * * 5 var operation = {"operationType": "PauseDw"}
Funzione 4 0 0 7 * * 1 var operation = {"operationType": "ResumeDw"}

Passaggi successivi

Altre informazioni sulle funzioni di Azure attivate da un timer.

Vedere repository di esempi di pool SQL dedicato (in precedenza SQL DW).