Compartilhar via


Otimizar consulta usando a simulação de trabalho

Uma maneira de melhorar o desempenho de um trabalho do (ASA) Azure Stream Analytics é aplicando o paralelismo na consulta. Este artigo demonstra como usar a Simulação de Trabalho no portal do Azure e no VS Code (Visual Studio Code) para avaliar o paralelismo de consulta de um trabalho do Stream Analytics. Você aprenderá a visualizar a execução de uma consulta com um número diferente de unidades de streaming e melhorar o paralelismo de consulta com base nas sugestões de edição.

O que é consulta paralela?

O paralelismo de consulta divide a carga de trabalho de uma consulta, criando vários processos (ou nós de streaming), e a executa paralelamente. Isso reduz consideravelmente o tempo de execução geral da consulta e, portanto, diminui as horas de streaming necessárias.

Para que um trabalho seja paralelo, todas as entradas, saídas e etapas da consulta devem ser alinhadas e usar as mesmas chaves de partição. O particionamento lógico de consulta é determinado pelas chaves usadas para agregações (GROUP BY).

Se você quiser saber mais sobre a paralelização de consulta, confira Utilizar a paralelização de consulta no Azure Stream Analytics.

Usar simulação de trabalho no VS Code

O recurso Simulação de Trabalho simula como o trabalho executaria a topologia no Azure. Neste tutorial, você aprenderá a melhorar o desempenho da consulta de acordo com as sugestões de edição e a executá-la paralelamente. Por exemplo, estamos usando um trabalho não paralelo que recebe os dados de entrada de um hub de eventos e envia os resultados para outro hub de eventos.

Pré-requisitos:

  • Extensão de Ferramentas do ASA para VS Code. Se você ainda não instalou, siga este guia para fazê-lo.
  • Configure a entrada dinâmica e a saída dinâmica para o trabalho do Stream Analytics.
  • É necessário incluir a entrada e a saída dinâmicas na consulta.

Observação

A Simulação de Trabalho não pode simular a topologia de execução do trabalho para entradas e saídas locais. Nenhum dado seria enviado para o destino de saída durante a simulação.

  1. Abra o projeto ASA no VS Code. Acesse o arquivo de consulta *.asaql e selecione Simular trabalho para iniciar a Simulação de Trabalho.

    Captura de tela do VS Code abrindo o simulador de diagrama de trabalho no arquivo de consulta.

  2. Sob a guia Diagrama, aparece o número de nós de streaming alocados para o trabalho e o número de partições em cada nó de streaming. A captura de tela a seguir é um exemplo de um trabalho não paralelo em que os dados estão fluindo entre nós.

    Captura de tela do VS Code usando o simulador de diagrama de trabalho e mostrando a topologia do trabalho.

  3. Como essa consulta NÃO está em paralelo, você pode selecionar a guia Aprimoramentos e exibir sugestões sobre como aprimorar a consulta.

    Captura de tela do VS Code usando o simulador de diagrama de trabalho e mostrando as sugestões de edição de consulta.

  4. Selecione a etapa de consulta na lista de aprimoramentos. Você verá que as linhas correspondentes estão realçadas e você pode editar a consulta de acordo com as sugestões.

    Captura de tela do VS Code usando o simulador de diagrama de trabalho e destacando a etapa de consulta.

    Observação

    Estas são sugestões de edição para melhorar o paralelismo de consulta. No entanto, se você estiver usando a função de agregação entre todas as partições, ter uma consulta paralela pode não ser aplicável aos seus cenários.

  5. Para este exemplo, adicione PartitionId à linha nº 22 e salve a alteração. Em seguida, você poderá usar a opção Atualizar simulação para obter o novo diagrama.

    Captura de tela que mostra o diagrama de atualização após a atualização da consulta.

  6. Você também pode ajustar as Unidades de Streaming para estimular a forma como os nós de streaming são alocados com diferentes SUs. Isso lhe dá uma ideia de quantas SUs você precisa para lidar com sua carga de trabalho.

    Captura de tela do VS Code usando o ajustador de UA.

Usar a simulação de trabalho no portal do Azure

  1. Vá para o editor de consultas no portal do Azure e selecione Simulação de trabalho no painel inferior. Ele simula o trabalho que executa a topologia com base em sua consulta e unidades de streaming predefinidas. Captura de tela mostrando a abertura da simulação no portal.
  2. Selecione Aprimoramentos para exibir as sugestões para melhorar o paralelismo de consulta. Captura de tela mostrando a abertura de aprimoramentos de simulação no portal.
  3. Ajuste as unidades de streaming para ver quantas SUs você precisava para lidar com a carga de trabalho. Captura de tela mostrando como adicionar um SU no portal.

Diagrama no nível do processador

Depois de ajustar as unidades de streaming para simular a topologia do seu trabalho, você poderá expandir qualquer um dos nós de streaming para observar como seus dados estão sendo processados no nível do processador.

Uma captura de tela no formato gif mostrando o diagrama no nível do processador do simulador.

O diagrama no nível do processador permite que você:

  • observe como as partições de entrada são alocadas e processadas em cada nó de streaming.
  • descubra qual é a Deslocamento 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 a etapa de consulta, selecione duas vezes no diagrama. Esse recurso ajuda você a localizar as etapas de consulta que fazem a agregação.

A Captura de tela mostrando o recurso de mapeamento de simulação de trabalho no VS Code.

Sugestões de aprimoramento

Estas são as explicações de Aprimoramentos:

Tipo Significado
Partição personalizada sem suporte Altere a chave de partição 'xxx' de entrada para 'xxx'.
Número de partições não correspondentes A entrada e a saída devem ter o mesmo número de partições.
Chaves de partição não correspondentes A entrada, a saída e cada etapa de consulta devem usar a mesma chave de partição.
Número de partições de entrada não correspondentes Todas as entradas devem ter o mesmo número de partições.
Chaves de partição de entrada não correspondentes Todas as entradas devem usar a mesma chave de partição.
Baixo nível de compatibilidade Atualizar o CompatibilityLevel no arquivo JobConfig.json.
Chave de partição de saída não encontrada Você precisa usar a chave de partição especificada para a saída.
Partição personalizada sem suporte Você só pode usar chaves de partição predefinidas.
Etapa de consulta que não usa partição A consulta não está usando cláusulas PARTITION BY.

Próximas etapas

Se você quiser saber mais sobre paralelização de consulta e diagrama de trabalho, confira estes tutoriais: