Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A Análise de Fluxos integra-se com fluxos de dados do Azure como entradas de cinco tipos de recursos:
Estes recursos de entrada podem existir na mesma subscrição do Azure que o seu trabalho de Stream Analytics ou numa subscrição diferente.
Compressão
O Stream Analytics suporta compactação para todas as fontes de entrada. Os tipos de compressão suportados são: Nenhum, Gzip e Deflate. O Stream Analytics não suporta compressão para dados de referência. Se os dados de entrada forem dados Avro compactados, o Stream Analytics os tratará de forma transparente. Não é necessário especificar o tipo de compressão com a serialização Avro.
Criar, editar ou testar entradas
Pode usar o portal Azure, Visual Studio e Visual Studio Code para adicionar e visualizar ou editar entradas existentes no seu trabalho de streaming. Também pode testar ligações de entrada e consultas de teste a partir de dados de amostra do portal Azure, Visual Studio e Visual Studio Code. Ao escrever uma consulta, você lista a entrada na cláusula FROM. Pode obter a lista de entradas disponíveis na página de Consultas no portal. Se pretender utilizar múltiplas entradas, JOIN ou formular múltiplas SELECT consultas.
Observação
Para obter a melhor experiência em desenvolvimento local, utilize ferramentas Stream Analytics para Visual Studio Code. Existem lacunas conhecidas nas ferramentas de Stream Analytics para o Visual Studio 2019 (versão 2.6.3000.0) e não será melhorado daqui para a frente.
Transmitir dados de Hubs de Eventos
Azure Event Hubs é um gestor de eventos de publicação e subscrição altamente escalável. Um hub de eventos pode coletar milhões de eventos por segundo para que você possa processar e analisar as enormes quantidades de dados produzidos por seus dispositivos e aplicativos conectados. Em conjunto, os Event Hubs e o Stream Analytics fornecem uma solução completa para análises em tempo real. O Event Hubs alimenta eventos para o Azure em tempo real, e os jobs do Stream Analytics processam esses eventos em tempo real. Por exemplo, você pode enviar cliques na Web, leituras de sensores ou eventos de log online para Hubs de Eventos. Em seguida, pode criar tarefas do Stream Analytics para usarem os Hubs de Eventos como dados de entrada para a filtragem, agregação e correlação em tempo real.
EventEnqueuedUtcTime é o carimbo temporal da chegada de um evento num hub de eventos e é o carimbo temporal padrão dos eventos provenientes dos Centros de Eventos para o Stream Analytics. Para processar os dados como um fluxo usando um carimbo temporal no payload do evento, deve usar a palavra-chave TIMESTAMP BY .
Grupos de consumidores Event Hubs
Configure cada entrada do hub de eventos com o seu próprio grupo de consumidores. Quando um trabalho contém uma auto-junção ou tem múltiplas entradas, mais do que um leitor a jusante pode ler algumas entradas. Esta situação afeta o número de leitores num único grupo de consumidores. Para evitar ultrapassar o limite dos Event Hubs de cinco leitores por grupo de consumidores por partição, designe um grupo de consumidores para cada trabalho de Stream Analytics. Há também um limite de 20 grupos de consumidores para um hub de eventos de camada Standard. Para mais informações, consulte Resolver problemas nas entradas do Azure Stream Analytics.
Criar uma entrada a partir dos Hubs de Eventos
A tabela seguinte explica cada propriedade na página Nova entrada no portal Azure para transmitir dados de entrada de um hub de eventos:
| Propriedade | Descrição |
|---|---|
| Alias de entrada | Um nome amigável que você usa na consulta do trabalho para fazer referência a essa entrada. |
| Subscription | Escolha a subscrição do Azure onde existe o recurso do hub de eventos. |
| Espaço de nomes Event Hub | O namespace Hubs de Eventos é um contêiner para hubs de eventos. Ao criar um hub de eventos, você também cria o namespace. |
| Nome do Event Hub | O nome do hub de eventos a ser usado como entrada. |
| Grupo de consumidores do Event Hub (recomendado) | Use um grupo de consumidores distinto para cada trabalho de Análise de Fluxos. Essa cadeia de caracteres identifica o grupo de consumidores a ser usado para ingerir dados do hub de eventos. Se não especificares um grupo de consumidores, o trabalho de Stream Analytics usa o $Default grupo de consumidores. |
| Modo de autenticação | Especifique o tipo de autenticação que quer usar para se ligar ao hub de eventos. Use uma connection string ou uma identidade gerida para autenticar com o hub de eventos. Para a opção de identidade gerenciada, você pode criar uma identidade gerenciada atribuída pelo sistema para o trabalho do Stream Analytics ou uma identidade gerenciada atribuída pelo usuário para autenticar com o hub de eventos. Quando utiliza uma identidade gerida, a identidade gerida deve pertencer a funções de Azure Event Hubs Recetor de Dados ou Azure Event Hubs Proprietário de Dados. |
| Nome da política do Event Hub | A política de acesso compartilhado que fornece acesso aos Hubs de Eventos. Cada política de acesso compartilhado tem um nome, permissões definidas e chaves de acesso. Essa opção é preenchida automaticamente, a menos que você selecione a opção para fornecer as configurações dos Hubs de Eventos manualmente. |
| Chave de partição | Este campo opcional está disponível apenas se configurar o seu trabalho para usar o nível de compatibilidade 1.2 ou superior. Se a sua entrada for particionada por uma propriedade, adicione o nome dessa propriedade aqui. Use-o para melhorar o desempenho da sua consulta se incluir uma cláusula PARTITION BY ou GROUP BY nesta propriedade. Se este trabalho usar nível de compatibilidade 1.2 ou superior, este campo é por predefinição PartitionId. |
| Formato de serialização de eventos | O formato de serialização (JSON, CSV, Avro) do fluxo de dados de entrada. Assegure-se de que o formato JSON está alinhado com a especificação e não inclui o 0 inicial para números decimais. |
| Codificação | UTF-8 é atualmente o único formato de codificação suportado. |
| Tipo de compressão de eventos | O tipo de compressão usado para ler o fluxo de dados recebidos, como Nenhum (padrão), Gzip ou Deflate. |
| Registro de esquema | Selecione o registo de esquemas com esquemas para os dados de eventos recebidos do hub de eventos. |
Quando seus dados vêm de uma entrada de fluxo de Hubs de Eventos, você tem acesso aos seguintes campos de metadados em sua consulta do Stream Analytics:
| Propriedade | Descrição |
|---|---|
| EventProcessedUtcTime | A data e a hora em que o Stream Analytics processa o evento. |
| EventEnqueuedUtcTime | A data e a hora em que os Hubs de Eventos recebem os eventos. |
| PartitionId | O ID de partição baseado em zero para o adaptador de entrada. |
Ao usar estes campos, pode escrever uma consulta como o seguinte exemplo:
SELECT
EventProcessedUtcTime,
EventEnqueuedUtcTime,
PartitionId
FROM Input
Observação
Quando utiliza os Event Hubs como ponto final das rotas do IoT Hub, pode aceder aos metadados do IoT Hub usando a função GetMetadataPropertyValue.
Fluxo de dados a partir do IoT Hub
Azure IoT Hub é um gestor de eventos de publicação-subscrição altamente escalável, otimizado para cenários IoT.
O timestamp padrão dos eventos provenientes de um IoT Hub no Stream Analytics é o timestamp em que o evento chegou no IoT Hub, que é EventEnqueuedUtcTime. Para processar os dados como um fluxo usando um timestamp no conteúdo do evento, use a palavra-chave TIMESTAMP BY.
Grupos de consumidores do IoT Hub
Configure cada entrada do Stream Analytics IoT Hub para ter o seu próprio grupo de consumidores. Quando um trabalho contém uma auto-junção ou quando tem múltiplas entradas, mais do que um leitor pode ler alguma entrada. Esta situação tem impacto no número de leitores num único grupo de consumidores. Para evitar ultrapassar o limite do Azure IoT Hub de cinco leitores por grupo de consumidores por partição, designe um grupo de consumidores para cada trabalho de Stream Analytics.
Configure um IoT Hub como entrada de fluxo de dados
A tabela seguinte explica cada propriedade na página New input no portal Azure quando configura um IoT Hub como entrada de fluxo.
| Propriedade | Descrição |
|---|---|
| Alias de entrada | Um nome amigável que você usa na consulta do trabalho para fazer referência a essa entrada. |
| Subscription | Escolha a subscrição em que existe o recurso IoT Hub. |
| IoT Hub | O nome do IoT Hub para usar como entrada. |
| Grupo de consumidores | Use um grupo de consumidores diferente para cada trabalho de Stream Analytics. O grupo de consumidores ingere dados do IoT Hub. O Stream Analytics usa o $Default grupo de consumidores, a menos que você especifique o contrário. |
| Nome da política de acesso compartilhado | A política de acesso partilhado que proporciona acesso ao IoT Hub. Cada política de acesso compartilhado tem um nome, permissões definidas e chaves de acesso. |
| Chave de política de acesso compartilhado | A chave de acesso partilhada usada para autorizar o acesso ao IoT Hub. Esta opção é automaticamente preenchida, a menos que selecione manualmente as definições do IoT Hub. |
| Ponto final | O ponto final para o IoT Hub. |
| Chave de partição | É um campo opcional disponível apenas se configurares o teu trabalho para usar o nível de compatibilidade 1.2 ou superior. Se particionar a sua entrada por uma propriedade, pode adicionar o nome dessa propriedade aqui. Ele é usado para melhorar o desempenho da sua consulta se incluir uma cláusula PARTITION BY ou GROUP BY nesta propriedade. Se este trabalho usar o nível de compatibilidade 1.2 ou superior, esse campo assumirá como padrão "PartitionId". |
| Formato de serialização de eventos | O formato de serialização (JSON, CSV, Avro) do fluxo de dados de entrada. Assegure-se de que o formato JSON está alinhado com a especificação e não inclui o 0 inicial para números decimais. |
| Codificação | UTF-8 é atualmente o único formato de codificação suportado. |
| Tipo de compressão de eventos | O tipo de compressão usado para ler o fluxo de dados recebidos, como Nenhum (padrão), Gzip ou Deflate. |
Quando utiliza dados de fluxo de um IoT Hub, tem acesso aos seguintes campos de metadados na sua consulta de Análise de Fluxos:
| Propriedade | Descrição |
|---|---|
| EventProcessedUtcTime | A data e hora do processamento do evento. |
| EventEnqueuedUtcTime | A data e hora em que o IoT Hub recebe o evento. |
| PartitionId | O ID de partição baseado em zero para o adaptador de entrada. |
| IoTHub.MessageId | Um ID usado para correlacionar comunicação bidirecional no IoT Hub. |
| IoTHub.CorrelationId | Um ID que é usado em respostas a mensagens e feedback no IoT Hub. |
| IoTHub.ConnectionDeviceId | O ID de autenticação usado para enviar esta mensagem. O IoT Hub atribui este valor às mensagens vinculadas ao serviço. |
| IoTHub.ConnectionDeviceGenerationId | A ID de geração do dispositivo autenticado que foi usado para enviar esta mensagem. O IoT Hub atribui este valor às mensagens vinculadas ao serviço. |
| IoTHub.EnqueuedTime | O momento em que o IoT Hub recebe a mensagem. |
Transmitir dados a partir do Armazenamento Blob ou do Data Lake Storage Gen2
Para cenários que envolvem armazenar grandes quantidades de dados não estruturados na cloud, o Azure Blob Storage ou Azure Data Lake Storage Gen2 oferece uma solução económica e escalável. Os dados em armazenamento Blob ou Azure Data Lake Storage Gen2 são considerados dados em repouso. No entanto, a Análise de Fluxos pode processar estes dados como um fluxo de dados.
Um cenário comum para usar tais entradas com Stream Analytics é o processamento de logs. Neste cenário, captura-se ficheiros de dados de telemetria de um sistema e é necessário analisá-los e processá-los para extrair dados significativos.
O carimbo temporal padrão de um evento de armazenamento Blob ou Azure Data Lake Storage Gen2 no Stream Analytics é o carimbo temporal da última modificação, que é BlobLastModifiedUtcTime. Se carregares um blob para uma conta de armazenamento às 13:00 e começares o trabalho de Azure Stream Analytics usando a opção Now às 13:01, o job não capta o blob porque o seu tempo modificado fica fora do período de execução do trabalho.
Se carregar um blob para um contentor de conta de armazenamento às 13:00 e iniciar a tarefa de Azure Stream Analytics usando Custom Time às 13:00 ou antes, a tarefa captura o blob porque a sua hora de modificação fica dentro do período de execução da tarefa.
Se começares um trabalho de Azure Stream Analytics usando Now às 13:00 e carregares um blob para o contentor da conta de armazenamento às 13:01, Azure Stream Analytics apanha o blob. O carimbo temporal atribuído a cada blob baseia-se apenas em BlobLastModifiedTime. A pasta na qual o blob está não tem relação com o carimbo de data/hora atribuído. Por exemplo, se houver um blob 2019/10-01/00/b1.txt com a BlobLastModifiedTime , 2019-11-11então o timestamp atribuído a esse blob é 2019-11-11.
Para processar os dados como um fluxo, usando um carimbo temporal no conteúdo do evento, tem que usar a palavra-chave TIMESTAMP BY. Um trabalho de Stream Analytics retira dados do Azure Blob Storage ou do Azure Data Lake Storage Gen2 a cada segundo, caso o ficheiro blob esteja disponível. Se o ficheiro blob não estiver disponível, o trabalho utiliza uma estratégia de recuo exponencial com um atraso máximo de 90 segundos.
Observação
O Stream Analytics não suporta adicionar conteúdo a um ficheiro blob existente. O Stream Analytics visualiza cada ficheiro apenas uma vez e não processa quaisquer alterações que ocorram no ficheiro depois de o trabalho ler os dados. A prática recomendada é carregar todos os dados de um arquivo de blob de uma só vez e, em seguida, adicionar eventos mais recentes a um novo arquivo de blob diferente.
Nos cenários em que adiciona continuamente muitos blobs e o Stream Analytics processa os blobs conforme os adiciona, pode ignorar alguns blobs em casos raros devido à granularidade do BlobLastModifiedTime. Pode mitigar este problema carregando blobs com pelo menos dois segundos de intervalo. Se essa opção não for viável, você poderá usar Hubs de Eventos para transmitir grandes volumes de eventos.
Configurar o armazenamento de Blob como uma entrada de fluxo
A tabela seguinte explica cada propriedade na página New input no portal Azure quando configura o armazenamento Blob como entrada de fluxo.
| Propriedade | Descrição |
|---|---|
| Alias de entrada | Um nome amigável que você usa na consulta do trabalho para fazer referência a essa entrada. |
| Subscription | Escolha a assinatura na qual o recurso de armazenamento existe. |
| Conta de armazenamento | O nome da conta de armazenamento onde os arquivos de blob estão localizados. |
| Chave da conta de armazenamento | A chave secreta associada à conta de armazenamento. Esta opção é automaticamente preenchida, a menos que selecione a opção para fornecer as definições manualmente. |
| Contentor | Os contêineres fornecem um agrupamento lógico para blobs. Pode escolher Usar um contentor existente ou Criar novo para criar um novo contentor. |
| Modo de autenticação | Especifique o tipo de autenticação que quer usar para se ligar à conta de armazenamento. Pode usar uma cadeia de conexão ou uma identidade gerida para autenticar-se na conta de armazenamento. Para a opção de identidade gerenciada, você pode criar uma identidade gerenciada atribuída ao sistema para o trabalho do Stream Analytics ou uma identidade gerenciada atribuída pelo usuário para autenticar com a conta de armazenamento. Ao utilizar uma identidade gerida, a identidade gerida deve ser membro de uma função apropriada na conta de armazenamento. |
| Padrão de caminho (opcional) | O caminho do arquivo usado para localizar os blobs dentro do contêiner especificado. Se você quiser ler blobs da raiz do contêiner, não defina um padrão de caminho. Dentro do caminho, pode especificar uma ou mais instâncias das seguintes três variáveis: {date}, {time}, ou {partition}Exemplo 1: cluster1/logs/{date}/{time}/{partition}Exemplo 2: cluster1/logs/{date}O * carácter não é um valor permitido para o prefixo de caminho. Só são permitidos caracteres Azure blob válidos. Não inclua nomes de contêineres ou nomes de arquivos. |
| Formato da data (opcional) | Se você usar a variável de data no caminho, o formato de data no qual os arquivos são organizados. Exemplo: YYYY/MM/DD Quando a entrada de blob tem {date} ou {time} no seu caminho, o Stream Analytics analisa as pastas por ordem cronológica crescente. |
| Formato de tempo (opcional) | Se utilizar a variável de tempo no caminho, o formato de hora determina como os arquivos são organizados. Atualmente, o único valor suportado é HH para horas. |
| Chave de partição | É um campo opcional disponível apenas se configurares o teu trabalho para usar o nível de compatibilidade 1.2 ou superior. Se particionar a sua entrada por uma propriedade, pode adicionar o nome dessa propriedade aqui. Ele é usado para melhorar o desempenho da sua consulta se incluir uma cláusula PARTITION BY ou GROUP BY nesta propriedade. Se este trabalho usar o nível de compatibilidade 1.2 ou superior, esse campo assumirá como padrão "PartitionId". |
| Contagem das partições de entrada | Este campo está presente somente quando {partition} está presente no padrão de caminho. O valor desta propriedade é um inteiro >= 1. Onde quer que {partition} apareça em pathPattern, um número entre 0 e o valor deste campo -1 será usado. |
| Formato de serialização de eventos | O formato de serialização (JSON, CSV, Avro) do fluxo de dados de entrada. Assegure-se de que o formato JSON está alinhado com a especificação e não inclui o 0 inicial para números decimais. |
| Codificação | Para CSV e JSON, UTF-8 é atualmente o único formato de codificação suportado. |
| Compression | O tipo de compressão usado para ler o fluxo de dados recebidos, como Nenhum (padrão), Gzip ou Deflate. |
Quando os seus dados vêm de uma fonte de armazenamento Blob, pode aceder aos seguintes campos de metadados na sua consulta de Análise de Fluxos:
| Propriedade | Descrição |
|---|---|
| BlobName | O nome do blob de entrada do qual o evento veio. |
| EventProcessedUtcTime | A data e a hora em que o Stream Analytics processa o evento. |
| BlobLastModifiedUtcTime | A data e a hora em que o blob foi modificado pela última vez. |
| PartitionId | O ID de partição baseado em zero para o adaptador de entrada. |
Ao usar estes campos, pode escrever uma consulta como o seguinte exemplo:
SELECT
BlobName,
EventProcessedUtcTime,
BlobLastModifiedUtcTime
FROM Input
Transmitir dados do Apache Kafka
O Azure Stream Analytics permite-lhe ligar diretamente a clusters Apache Kafka para ingerir dados. A solução é low code e totalmente gerida pela equipa Azure Stream Analytics da Microsoft, por isso cumpre os padrões de conformidade empresarial. A entrada Kafka é compatível com versões anteriores e suporta todas as versões a partir da versão 0.10 com a versão mais recente do cliente. Pode ligar-se a clusters Kafka dentro de uma rede virtual e clusters Kafka com um endpoint público, dependendo das configurações. A configuração baseia-se nas convenções de configuração Kafka existentes. Os tipos de compressão suportados são None, Gzip, Snappy, LZ4 e Zstd.
Para mais informações, consulte Transmitir dados do Kafka para o Azure Stream Analytics (Prévia).