Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tutorial usa o Azure Functions para gerenciar recursos de computação para um pool SQL dedicado (anteriormente SQL DW) no Azure Synapse Analytics.
Para usar um Aplicativo de Função do Azure com um pool SQL dedicado (anteriormente SQL DW), você deve criar uma Conta Principal de Serviço. A Conta Principal de Serviço precisa de acesso de colaborador sob a mesma assinatura que sua instância dedicada do pool SQL (anteriormente SQL DW).
Implantar o dimensionamento baseado em temporizador com um modelo do Azure Resource Manager
Para implantar o modelo, você precisa das seguintes informações:
- Nome do grupo de recursos em que sua instância dedicada do pool SQL (anteriormente SQL DW) está
- Nome do servidor em que sua instância dedicada do pool SQL (anteriormente SQL DW) está
- Nome da instância dedicada do pool SQL (anteriormente SQL DW)
- ID do inquilino (ID do diretório) do seu Microsoft Entra ID
- ID da subscrição
- ID do aplicativo principal do serviço
- Chave secreta principal do serviço
Depois de ter as informações anteriores, implante este modelo:
Depois de implantar o modelo, você deve encontrar três novos recursos: um Plano de Serviço de Aplicativo do Azure gratuito, um plano de Aplicativo de Função baseado em consumo e uma conta de armazenamento que lida com o log e a fila de operações. Continue lendo as outras seções para ver como modificar as funções implantadas para atender às suas necessidades.
Alterar o tempo da operação de escala
Navegue até o seu serviço App de Funções. Se você implantou o modelo com os valores padrão, esse serviço deve ser chamado DWOperations. Quando o seu Function App estiver aberto, deverá notar que existem cinco funções implementadas no seu Function App Service.
Selecione DWScaleDownTrigger ou DWScaleUpTrigger para aumentar ou diminuir a escala. No menu suspenso, selecione Integrar.
Atualmente, o valor exibido deve dizer %ScaleDownTime% ou %ScaleUpTime%. Esses valores indicam que o agendamento é baseado em valores definidos nas Configurações do aplicativo. Por enquanto, você pode ignorar esse valor e alterar a programação para o seu horário preferido com base nas próximas etapas.
Na área de agenda, adicione a expressão CRON que reflete a frequência com que pretende que o Azure Synapse Analytics seja ampliado.
O valor de
scheduleé uma expressão CRON que inclui estes seis campos:{second} {minute} {hour} {day} {month} {day-of-week}Por exemplo, "0 30 9 * * 1-5" reflete um gatilho todos os dias úteis às 9h30. Para obter mais informações, visite Exemplos de agendamento do Azure Functions.
Alterar o nível de computação
Navegue até ao seu serviço Function App. Se você implantou o modelo com os valores padrão, esse serviço deve ser chamado DWOperations. Quando o seu Function App estiver aberto, deverá notar que existem cinco funções implementadas no seu Function App Service.
Selecione DWScaleDownTrigger ou DWScaleUpTrigger para aumentar ou reduzir o valor de computação. Ao selecionar as funções, seu painel deve mostrar o arquivoindex.js .
Altere o valor de ServiceLevelObjective para o nível desejado e selecione salvar. O ServiceLevelObjective é o nível de computação para o qual sua instância de data warehouse será dimensionada com base no cronograma definido na seção Integrar.
Utilize pausar ou retomar em vez de dimensionar
Atualmente, as funções ativadas por padrão são DWScaleDownTrigger e DWScaleUpTrigger. Se você quiser usar a funcionalidade pausar e retomar em vez disso, você pode ativar DWPauseTrigger ou DWResumeTrigger.
Navegue até o painel Funções.
Selecione o controlo deslizante para os gatilhos correspondentes que pretende ativar.
Navegue até as guias Integrar dos respetivos gatilhos para alterar sua programação.
Observação
A diferença funcional entre os gatilhos de dimensionamento e os gatilhos de pausa/retomada é a mensagem enviada para a fila. Para obter mais informações, consulte Adicionar uma nova função de gatilho.
Adicionar uma nova função de gatilho
Atualmente, há apenas duas funções de dimensionamento incluídas no modelo. Com estas funções, ao longo de um dia, só se pode diminuir a escala uma vez e aumentar a escala uma vez. Para um controle mais granular, como reduzir a escala várias vezes por dia ou ter um comportamento de dimensionamento diferente nos fins de semana, você precisa adicionar outro gatilho.
Crie uma nova função em branco. Selecione o botão perto da localização de Funções + para mostrar o painel de modelo de função.
Em Language, selecione JavaScript e, em seguida, TimerTrigger.
Nomeie sua função e defina sua agenda. A imagem mostra como se pode acionar a sua função todos os sábados à meia-noite (final da noite de sexta-feira).
Copie o conteúdo do index.js de uma das outras funções de gatilho.
Defina sua variável de operação para o comportamento desejado da seguinte maneira:
// 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" }
Agendamento complexo
Esta seção demonstra brevemente o que é necessário para obter um agendamento mais complexo dos recursos de pausa, retomada e dimensionamento.
Exemplo 1
Aumente diariamente às 8h para DW600c e reduza às 20h para DW200c.
| Função | Cronograma | Funcionamento |
|---|---|---|
| Função1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Função2 | 0 0 20 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"} |
Exemplo 2
Escale diariamente às 8h para DW1000c, diminua uma vez para DW600 às 16h e diminua às 22h para DW200c.
| Função | Cronograma | Funcionamento |
|---|---|---|
| Função1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
| Função2 | 0 0 16 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Função3 | 0 0 22 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"} |
Exemplo 3
Aumente a escala às 8h para DW1000c, diminua uma vez para DW600c às 16h nos dias úteis. Pausa sexta-feira 23h, retoma 7h segunda-feira de manhã.
| Função | Cronograma | Funcionamento |
|---|---|---|
| Função1 | 0 0 8 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
| Função2 | 0 0 16 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Função3 | 0 0 23 * * 5 | var operation = {"operationType": "PauseDw"} |
| Função4 | 0 0 7 * * 1 | var operation = {"operationType": "ResumeDw"} |
Próximos passos
Saiba mais sobre gatilho de temporizador Azure Functions.
Consulte o repositório de exemplos dedicado do pool SQL (anteriormente SQL DW).