Otimizar a consulta com a simulação de tarefas
Uma forma de melhorar o desempenho de uma tarefa do Azure Stream Analytics (ASA) é aplicar paralelismo na consulta. Este artigo demonstra como utilizar a Simulação de Tarefas no portal do Azure e no Visual Studio Code (VS Code) para avaliar o paralelismo de consultas de uma tarefa do Stream Analytics. Aprende a visualizar uma execução de consulta com um número diferente de unidades de transmissão em fluxo e a melhorar o paralelismo de consultas com base nas sugestões de edição.
O que é uma consulta paralela?
O paralelismo de consultas divide a carga de trabalho de uma consulta ao criar vários processos (ou nós de transmissão em fluxo) e executa-a em paralelo. Reduz consideravelmente o tempo de execução geral da consulta e, por conseguinte, são necessárias menos horas de transmissão em fluxo.
Para que uma tarefa seja paralela, todas as entradas, saídas e passos de consulta têm de estar alinhados e utilizar as mesmas chaves de partição. A criação de partições lógicas de consulta é determinada pelas chaves utilizadas para agregações (GROUP BY).
Se quiser saber mais sobre a paralelização de consultas, veja Tirar partido da paralelização de consultas no Azure Stream Analytics.
Utilizar a simulação de tarefas no VS Code
A funcionalidade Simulação de tarefas simula como a tarefa estaria a executar a topologia no Azure. Neste tutorial, vai aprender a melhorar o desempenho das consultas com base em sugestões de edição e a executá-lo em paralelo. Por exemplo, estamos a utilizar uma tarefa não paralelo que utiliza os dados de entrada de um hub de eventos e envia os resultados para outro hub de eventos.
Pré-requisitos:
- Extensão asa Tools para VS Code. Se ainda não o instalou, siga este guia para instalar.
- Configure a entrada em direto e a saída em direto para a tarefa do Stream Analytics.
- Tem de incluir entrada em direto e saída na consulta.
Nota
A Simulação de Tarefas não consegue simular a topologia de execução de tarefas para entradas e saídas locais. Não seriam enviados dados para o destino de saída durante a simulação.
Abra o projeto ASA no VS Code. Aceda ao ficheiro de consulta *.asaql e selecione Simular tarefa para iniciar a Simulação de Tarefas.
No separador Diagrama , mostra o número de nós de transmissão em fluxo alocados à tarefa e o número de partições em cada nó de transmissão em fluxo. A seguinte captura de ecrã é um exemplo de uma tarefa não paralelo em que os dados fluem entre nós.
Uma vez que esta consulta NÃO está em paralelo, pode selecionar o separador Melhoramentos para ver sugestões sobre como melhorar a consulta.
Selecione o passo de consulta na lista de melhoramentos, verá que as linhas correspondentes estão realçadas e pode editar a consulta com base nas sugestões.
Nota
Estas são sugestões de edição para melhorar o paralelismo de consultas. No entanto, se estiver a utilizar a função de agregação entre todas as partições, ter uma consulta paralela poderá não ser aplicável aos seus cenários.
Para este exemplo, adicione o PartitionId à linha#22 e guarde a alteração. Em seguida, pode utilizar a Simulação de atualização para obter o novo diagrama.
Também pode ajustar as Unidades de Transmissão em Fluxo para estimular a forma como os nós de transmissão em fluxo são alocados com diferentes SUs. Dá-lhe uma ideia de quantas SUs precisa para lidar com a carga de trabalho.
Utilizar a simulação de tarefas no portal do Azure
- Aceda ao editor de consultas no portal do Azure e selecione Simulação de tarefas no painel inferior. Simula a tarefa de execução da topologia com base na consulta e nas unidades de transmissão em fluxo predefinidas.
- Selecione Melhoramentos para ver as sugestões para melhorar o paralelismo da consulta.
- Ajuste as unidades de transmissão em fluxo para ver quantas SUs precisava para processar a carga de trabalho.
Diagrama ao nível do processador
Depois de ajustar as unidades de transmissão em fluxo para simular a topologia da sua tarefa, pode expandir qualquer um dos nós de transmissão em fluxo para observar como os seus dados estão a ser processados ao nível do processador.
O diagrama ao nível do processador permite-lhe:
- observe como as partições de entrada são alocadas e processadas em cada nó de transmissão em fluxo.
- descubra qual é a mudança de tempo para cada processador de computação.
- forneça informações sobre se os processadores de Entrada e Saída estão alinhados em paralelo.
Para mapear o processador com o passo de consulta, selecione duas vezes no diagrama. Esta funcionalidade ajuda-o a localizar os passos de consulta que estão a agregar.
Sugestões de melhoramento
Eis as explicações para Melhoramentos:
Tipo | Significado |
---|---|
Partição personalizada não suportada | Altere a chave de partição "xxx" de entrada para "xxx". |
Número de partições não correspondidas | A entrada e a saída têm de ter o mesmo número de partições. |
As chaves de partição não correspondem | Os passos de entrada, saída e cada consulta têm de utilizar a mesma chave de partição. |
Número de partições de entrada não correspondidas | Todas as entradas têm de ter o mesmo número de partições. |
Chaves de partição de entrada não correspondidas | Todas as entradas têm de utilizar a mesma chave de partição. |
Nível de compatibilidade baixo | Atualize CompatibilityLevel no ficheiro JobConfig.json . |
Chave de partição de saída não encontrada | Tem de utilizar a chave de partição especificada para o resultado. |
Partição personalizada não suportada | Só pode utilizar chaves de partição predefinidas. |
O passo de consulta não está a utilizar a partição | A consulta não está a utilizar nenhuma cláusula PARTITION BY. |
Passos seguintes
Se quiser saber mais sobre a paralelização de consultas e o diagrama de tarefas, veja estes tutoriais: