Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve problemas comuns com o desenvolvimento de consultas do Azure Stream Analytics, como solucionar problemas de consulta e como corrigir os problemas. Muitas etapas de solução de problemas exigem que você habilite logs de recursos para seu trabalho do Stream Analytics. Se você não tiver os logs de recursos habilitados, confira Solucionar problemas do Azure Stream Analytics usando os logs de recursos.
A consulta não está produzindo o resultado esperado
Examine os erros testando localmente:
- No portal Azure, na aba Consulta, selecione Testar. Use os dados de exemplo baixado para testar a consulta. Examine os erros e tente corrigi-los.
- Você também pode testar sua consulta localmente usando as ferramentas do Azure Stream Analytics para Visual Studio ou Visual Studio Code.
Depurar consultas passo a passo e localmente usando o diagrama de trabalho nas ferramentas do Azure Stream Analytics para Visual Studio Code. O diagrama de trabalhos mostra como os dados fluem de fontes de entrada, por exemplo, Hubs de Eventos do Azure e Hub IoT do Azure, passando por múltiplas etapas de consulta e, finalmente, para os sumidouros de saída. O script mapeia cada etapa de consulta para um conjunto temporário de resultados que você define usando a instrução WITH. Veja os dados e métricas em cada conjunto de resultados intermediários para encontrar a origem do problema.
Se você usar Carimbo de Data/Hora Por, verifique se os eventos têm carimbos de data/hora maiores que a hora de início do trabalho.
Elimine armadilhas comuns, como:
- Uma cláusula WHERE na consulta filtrava todos os eventos, então a consulta não gerava saída.
- Uma função CAST falha, causando a falha do trabalho. Nesse caso, para evitar falhas de conversão de tipo, use TRY_CAST.
- Ao usar funções de janela, espere até o fim de toda a duração da janela para ver o resultado da consulta.
- O timestamp dos eventos precede o horário de início do trabalho, então o trabalho descarta os eventos.
- As condições JOIN não correspondem. Se não houver correspondências, a consulta não produz saída.
Certifique-se de configurar as políticas de ordenação de eventos conforme esperado. Acesse Configurações e selecione Ordenação de eventos. O botão Testar não aplica a política quando você testa a consulta. Esse resultado é uma diferença entre testar no navegador e executar o trabalho em produção.
Depurar usando logs de atividade e de recursos:
- Use os logs de atividade e filtre para identificar e depurar erros.
- Use logs de recurso de trabalho para identificar e depurar erros.
Depurar consultas progressivamente
No processamento de dados em tempo real, ajuda saber como os dados ficam no meio da consulta. Para visualizar os dados intermediários, use o diagrama de trabalho no Visual Studio. Se você não tiver o Visual Studio, pode dar passos extras para gerar dados intermediários.
Como o Azure Stream Analytics pode ler entradas ou etapas de um trabalho várias vezes, você pode escrever instruções extrasSELECT INTO. Fazer isso gera dados intermediários para o armazenamento e permite verificar a correção dos dados, assim como as variáveis de relógio fazem ao depurar um programa.
O exemplo de consulta a seguir em um trabalho do Stream Analytics do Azure tem uma entrada de fluxo, duas entradas de dados de referência e uma saída para o Armazenamento de Tabelas do Azure. A consulta une dados do hub de eventos e dois blobs de referência para obter informações de nome e categoria:
A tarefa está em execução, mas não produz eventos na saída. No bloco Monitoramento, mostrado aqui, você pode ver que a entrada está produzindo dados, mas não é possível saber qual etapa do JOIN descartou todos os eventos.
Nessa situação, você pode adicionar algumas instruções extras SELECT INTO para "registrar" os resultados intermediários JOIN e os dados lidos da entrada.
Neste exemplo, adicionamos duas novas "saídas temporárias". Podem ser qualquer pia que você quiser. Aqui, usamos o Armazenamento do Azure como um exemplo:
Assim, você pode reescrever a consulta desta forma:
Agora, reinicie o trabalho e deixe ele ser executado por alguns minutos. Depois, consulte temp1 e temp2 usando o Visual Studio Cloud Explorer para produzir as seguintes tabelas:
Tabela temp1
tabela temp2
Como você pode ver, temp1 e temp2 ambos têm dados, e a name coluna está preenchida corretamente em temp2. No entanto, como a saída ainda não tem dados, algo está errado:
Ao amostrar os dados, você pode ter quase certeza de que o problema está no segundo JOIN. Você pode baixar os dados de referência do blob e dar uma olhada:
Como você pode ver, o formato do GUID nesses dados de referência é diferente do formato da [from] coluna em temp2. Por isso os dados não chegaram em output1 como esperado.
Corrija o formato dos dados, envie para o blob de referência e tente novamente:
Dessa vez, os dados na saída são formatados e preenchidos conforme esperado.
A utilização de recursos está alta
Este artigo mostra como tirar proveito da paralelização no Azure Stream Analytics. Aprenda a escalar com a paralelização de consulta dos trabalhos do Stream Analytics configurando partições de entrada e ajustando a definição da consulta analítica.
Se a utilização de recursos estiver consistentemente acima de 80%, o atraso do watermark estiver aumentando e o número de eventos acumulados estiver aumentando, considere aumentar as unidades de streaming. A alta utilização indica que o trabalho está perto de usar o máximo de recursos alocados.
Obter ajuda
Para obter mais assistência, confira nossa página de Perguntas e respostas do Microsoft do Azure Stream Analytics.