Usare Funzioni di Azure per gestire le risorse di calcolo per il pool SQL dedicato (in precedenza SQL Data Warehouse) in Azure Synapse Analytics
Questa esercitazione usa Funzioni di Azure per gestire le risorse di calcolo per un pool SQL dedicato (in precedenza SQL Data Warehouse) in Azure Synapse Analytics.
Per usare un'app per le funzioni di Azure con un pool SQL dedicato (in precedenza SQL Data Warehouse), è necessario creare un account entità servizio. L'account dell'entità servizio richiede l'accesso come collaboratore nella stessa sottoscrizione dell'istanza del pool SQL dedicato (in precedenza SQL Data Warehouse).
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 Data Warehouse)
- Nome del server in cui si trova l'istanza del pool SQL dedicato (in precedenza SQL Data Warehouse)
- Nome dell'istanza del pool SQL dedicato (in precedenza SQL Data Warehouse)
- ID tenant (ID directory) dell'ID Microsoft Entra
- ID sottoscrizione
- ID applicazione dell'entità servizio
- Chiave privata dell'entità servizio
Dopo aver recuperato le informazioni riportate sopra, distribuire questo modello:
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
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.
Selezionare DWScaleDownTrigger o DWScaleUpTrigger per aumentare o ridurre le prestazioni. Nel menu a discesa selezionare Integrazione.
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.
Nell'area di pianificazione aggiungere l'espressione CRON da riflettere la frequenza con cui si vuole aumentare le prestazioni di Azure Synapse Analytics.
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
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.
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.
Modificare il valore di ServiceLevelObjective nel livello desiderato e selezionare Salva. ServiceLevelObjective è il livello di calcolo su cui verrà ridimensionata l'istanza del 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.
Passare al riquadro Funzioni.
Selezionare l'interruttore scorrevole per i trigger corrispondenti da abilitare.
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.
Creare una nuova funzione vuota. Selezionare il pulsante + accanto a Funzioni per visualizzare il riquadro dei modelli di funzioni.
In Linguaggio selezionare JavaScript e quindi TimerTrigger.
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ì).
Copiare il contenuto di index.js da una delle altre funzioni trigger.
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
Aumento giornaliero alle 8:00 a DW600c e riduzione delle prestazioni alle 18:00 fino a DW200c.
Funzione | Pianificazione | 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
Aumentare ogni giorno le 8:00 fino a DW1000c, ridurre le prestazioni una volta a DW600 alle 14:00 e ridurre le prestazioni alle 10:00 fino a DW200c.
Funzione | Pianificazione | 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
Aumentare le prestazioni alle 8:00 a DW1000c, ridurre una volta a DW600c alle 18:00 nei giorni feriali. nonché sospendere alle ore 23 di venerdì e riprendere alle ore 7 di lunedì.
Funzione | Pianificazione | 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 sul trigger timer Funzioni di Azure.
Vedere repository di esempi di pool SQL dedicato (in precedenza SQL Data Warehouse).