Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 Principale del Servizio. L'account di Service Principal deve avere accesso di contributore sotto la stessa sottoscrizione della tua istanza di 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 DW)
- ID tenant (ID directory) dell'ID Microsoft Entra
- ID sottoscrizione
- ID Applicazione Principale di Servizio
- Chiave segreta del principal del servizio
Dopo aver ottenuto le informazioni precedenti, distribuire questo modello:
Dopo aver distribuito il modello, è necessario trovare tre nuove risorse: un piano di servizio app di Azure gratuito, un piano di app per le funzioni basato sul consumo e un account di archiviazione che gestisce la registrazione e la coda delle operazioni. Continuare a leggere le altre sezioni per vedere come modificare le funzioni distribuite in base alle esigenze.
Modificare l'ora dell'operazione di ridimensionazione
Vai al servizio Function App. Se il modello è stato distribuito con i valori predefiniti, questo servizio deve essere denominato DWOperations. Quando l'app per le funzioni è aperta, 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.
Attualmente il valore visualizzato deve 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 in base al tempo preferito 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 questi sei campi:{second} {minute} {hour} {day} {month} {day-of-week}Ad esempio, "0 30 9 * * 1-5" indica un trigger ogni giorno lavorativo alle 9:30. Per altre informazioni, vedere 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, questo servizio deve essere denominato DWOperations. Una volta che la Function App è aperta, si noterà che nel servizio Function App sono distribuite cinque funzioni.
Selezionare DWScaleDownTrigger o DWScaleUpTrigger per aumentare o ridurre il valore di calcolo. Quando si selezionano le funzioni, il riquadro dovrebbe visualizzare 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 anziché la scala
Attualmente, le funzioni attivate per impostazione predefinita sono DWScaleDownTrigger e DWScaleUpTrigger. Se invece si vuole usare la funzionalità di sospensione e ripresa, è possibile abilitare DWPauseTrigger o DWResumeTrigger.
Passare al riquadro Funzioni.
Selezionare l'interruttore scorrevole per i trigger corrispondenti da abilitare.
Passare alle schede Integrazione dei rispettivi trigger per modificare la loro pianificazione.
Annotazioni
La differenza funzionale tra i trigger di ridimensionamento e i trigger di sospensione/ripresa è il messaggio inviato alla coda. Per altre informazioni, vedere Aggiungere una nuova funzione trigger.
Aggiungere una nuova funzione attivatore
Attualmente, nel modello sono incluse solo due funzioni di ridimensionamento. Con queste funzioni, durante il corso di un giorno, è possibile ridurre le prestazioni una sola volta e aumentare una sola volta. Per un controllo più granulare, ad esempio il ridimensionamento più volte al giorno o un comportamento di ridimensionamento diverso nei fine settimana, è necessario aggiungere un altro trigger.
Creare una nuova funzione vuota. Selezionare il pulsante + vicino alla posizione delle funzioni per visualizzare il riquadro del modello funzione.
In Linguaggio selezionare JavaScript e quindi TimerTrigger.
Dai un nome alla tua funzione e imposta il tuo programma. L'immagine mostra come attivare la loro funzione ogni sabato a mezzanotte (fine venerdì sera).
Copiare il contenuto di index.js da una delle altre funzioni trigger.
Impostare la variabile dell'operazione sul comportamento desiderato nel modo seguente:
// 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 cosa è necessario per ottenere una pianificazione più complessa delle funzionalità di sospensione, ripresa e ridimensionamento.
Esempio 1
Aumento giornaliero alle 8:00 a DW600c e riduzione alle 20:00 a DW200c.
| Funzione | Orario | Operation |
|---|---|---|
| Funzione1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Funzione2 | 0 0 20 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"} |
Esempio 2
Scalare giornalmente alle 8:00 a DW1000c, scalare una volta a DW600 alle 16:00 e scalare alle 22:00 a DW200c.
| Funzione | Orario | Operation |
|---|---|---|
| Funzione1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
| Funzione2 | 0 0 16 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Funzione3 | 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. Sospende venerdì 11:00, riprende 7:00 lunedì mattina.
| Funzione | Orario | Operation |
|---|---|---|
| Funzione1 | 0 0 8 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
| Funzione2 | 0 0 16 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Funzione3 | 0 0 23 * * 5 | var operation = {"operationType": "PauseDw"} |
| Funzione4 | 0 0 7 * * 1 | var operation = {"operationType": "ResumeDw"} |
Passaggi successivi
Ulteriori informazioni sul trigger timer nelle Azure Functions.
Consulta il repository di esempi del pool SQL dedicato (in precedenza SQL Data Warehouse).