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.
O Stream Analytics integra-se com fluxos de dados Azure como entradas de cinco tipos de recursos:
- Azure Event Hubs
- Azure IoT Hub
- Azure Armazenamento de Blobs
- Azure Data Lake Storage Gen2
- Apache Kafka
Esses recursos de entrada podem existir na mesma assinatura Azure que seu trabalho do Stream Analytics ou em uma assinatura diferente.
Compactação
O Stream Analytics dá suporte à compactação para todas as fontes de entrada. Os tipos de compactação compatíveis são: Nenhuma, Gzip e Deflate. O Stream Analytics não dá suporte à compactaçã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 compactação com a serialização do Avro.
Criar, editar ou testar entradas
Você pode usar o portal Azure, Visual Studio e Visual Studio Code para adicionar e exibir ou editar entradas existentes em seu trabalho de streaming. Você também pode testar conexões de entrada e testar consultas de dados de exemplo do portal Azure, Visual Studio e Visual Studio Code. Ao escrever uma consulta, você lista os dados de entrada na cláusula FROM. Você pode obter a lista de entradas disponíveis na página Consulta no portal. Se você quiser usar várias entradas, JOIN conjugá-las ou escrever várias SELECT consultas.
Observação
Para obter a melhor experiência de desenvolvimento local, use Stream Analytics para Visual Studio Code. Há lacunas de recursos conhecidas nas ferramentas do Stream Analytics para Visual Studio 2019 (versão 2.6.3000.0) e elas não serão aprimoradas daqui para frente.
Transmitir dados dos Hubs de Eventos
Azure Event Hubs é um ingestor de eventos de publicação-assinatura altamente escalonável. Um Hub de Eventos pode incluir milhões de eventos por segundo, para que você possa processar e analisar grandes quantidades de dados produzidos por seus aplicativos e dispositivos conectados. Juntos, os Hubs de Eventos e o Stream Analytics fornecem uma solução de ponta a ponta para análise em tempo real. Os Hubs de Eventos alimentam eventos em Azure em tempo real e os trabalhos do Stream Analytics processam esses eventos em tempo real. Por exemplo, você pode enviar cliques da Web, leituras do sensor ou eventos de log online para Hubs de Eventos. Em seguida, você pode criar trabalhos do Stream Analytics para usar os Hubs de Eventos como dados de entrada para filtragem, agregação e correlação em tempo real.
EventEnqueuedUtcTime é o timestamp da chegada de um evento em um hub de eventos e é o timestamp padrão de eventos provenientes dos Event Hubs para o Stream Analytics. Para processar os dados como um fluxo, usando um timestamp no payload do evento, você deve utilizar a palavra-chave TIMESTAMP BY.
Grupos de consumidores dos Hubs de Eventos
Configure cada entrada do hub de eventos com seu próprio grupo de consumidores. Quando um trabalho contém uma autojunção ou tem várias entradas, mais de um leitor downstream pode ler algumas entradas. Essa situação afeta o número de leitores em um único grupo de consumidores. Para evitar exceder o limite de Hubs de Eventos de cinco leitores por grupo de consumidores por partição, designe um grupo de consumidores para cada trabalho do Stream Analytics. Também há um limite de 20 grupos de consumidores por Hub de Eventos de nível padrão. Para obter mais informações, consulte Solução de problemas de entradas do Azure Stream Analytics.
Criar uma entrada de dados dos Hubs de Eventos
A tabela a seguir explica cada propriedade na página New input no portal Azure para transmitir a entrada de dados 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 assinatura Azure na qual o recurso do Hub de Eventos existe. |
| Namespace do Hub de Eventos | O namespace Event Hubs é um contêiner para os hubs de eventos. Ao criar um hub de eventos, crie também o namespace. |
| Nome do Hub de Eventos | O nome do Hub de Eventos para usar como entrada. |
| Grupo de consumidores do Hub de Eventos (recomendado) | Use um grupo de consumidores distinto para cada trabalho do Stream Analytics. Esta cadeia de caracteres identifica o grupo de consumidores a ser usado para ingerir dados do hub de eventos. Se você não especificar um grupo de consumidores, o trabalho do Stream Analytics usará o $Default grupo de consumidores. |
| Modo de autenticação | Especifique o tipo de autenticação que você deseja usar para se conectar ao hub de eventos. Use uma cadeia de conexão ou uma identidade gerenciada para autenticar no 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 autenticação com o hub de eventos. Quando você usa uma identidade gerenciada, a identidade gerenciada deve ser um membro das funções Azure Event Hubs Data Receiver ou Azure Event Hubs Data Owner. |
| Nome da política do Hub de Eventos | A política de acesso compartilhado que fornece acesso ao Hub de Eventos. Cada política de acesso compartilhado tem um nome, as permissões definidas por você e as chaves de acesso. Essa opção é preenchida automaticamente, a menos que você selecione a opção para fornecer as configurações do Hub de Eventos manualmente. |
| Chave de partição | Esse campo opcional só estará disponível se você configurar seu trabalho para usar o nível de compatibilidade 1.2 ou superior. Se sua entrada for particionada por uma propriedade, adicione o nome dessa propriedade aqui. Use isto para melhorar o desempenho da consulta caso inclua uma cláusula PARTITION BY ou GROUP BY desta propriedade. Se este trabalho usar o nível de compatibilidade 1.2 ou superior, esse campo usará como padrão PartitionId. |
| Formato de serialização de eventos | O formato de serialização (JSON, CSV, Avro) do fluxo de dados de entrada. Verifique se o formato JSON está alinhado com a especificação e não inclui o 0 à esquerda para números decimais. |
| Codificação | UTF-8 é o único formato de codificação com suporte no momento. |
| Tipo de compactação de evento | O tipo de compactação usado para ler o fluxo de dados de entrada, como Nenhum (padrão), Gzip ou Deflate. |
| Registro de esquema | Selecione o registro de esquema com esquemas para dados de evento recebidos do hub de eventos. |
Quando seus dados vêm de uma entrada de fluxo do Hub 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 o Event Hubs recebe os eventos. |
| PartiçãoID | A ID de partição com base em zero para o adaptador de entrada. |
Usando esses campos, você pode escrever uma consulta como o seguinte exemplo:
SELECT
EventProcessedUtcTime,
EventEnqueuedUtcTime,
PartitionId
FROM Input
Observação
Ao usar Event Hubs como um endpoint para rotas do IoT Hub, você pode acessar os metadados do IoT Hub usando a função GetMetadataPropertyValue.
Transmitir dados de IoT Hub
Azure IoT Hub é um ingestor de eventos de publicação-assinatura altamente escalonável otimizado para cenários de IoT.
O timestamp padrão dos eventos provenientes de um IoT Hub no Stream Analytics é o timestamp do momento em que o evento chegou ao IoT Hub, que é EventEnqueuedUtcTime. Para processar os dados em forma de fluxo usando um timestamp no payload do evento, use a palavra-chave TIMESTAMP BY.
Grupos de consumidores do IoT Hub
Configure cada entrada do Stream Analytics IoT Hub para ter seu próprio grupo de consumidores. Quando um trabalho contém uma autojunção ou quando tem várias entradas, mais de um leitor pode ler algumas entradas. Essa situação afeta o número de leitores em um único grupo de consumidores. Para evitar exceder o limite de Azure IoT Hub de cinco leitores por grupo de consumidores por partição, designe um grupo de consumidores para cada trabalho do Stream Analytics.
Configurar um IoT Hub como uma entrada de fluxo de dados
A tabela a seguir explica cada propriedade na página New input no portal Azure quando você configura um IoT Hub como uma 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 IoT Hub existe. |
| IoT Hub | O nome do IoT Hub a ser usado como entrada. |
| Grupo de consumidores | Use um grupo de consumidores diferente para cada trabalho do Stream Analytics. O grupo de consumidores ingere dados do IoT Hub. O Stream Analytics usa o grupo de consumidores $Default, a menos que você especifique o contrário. |
| Nome da política de acesso compartilhado | A política de acesso compartilhado que fornece acesso ao IoT Hub. Cada política de acesso compartilhado tem um nome, as permissões definidas por você e as chaves de acesso. |
| Chave da política de acesso compartilhado | A chave de acesso compartilhado usada para autorizar o acesso ao IoT Hub. Essa opção é preenchida automaticamente, a menos que você selecione a opção para fornecer as configurações de IoT Hub manualmente. |
| Ponto de extremidade | O ponto de extremidade do IoT Hub. |
| Chave de partição | É um campo opcional disponível somente se você configurar seu trabalho para usar o nível de compatibilidade 1.2 ou superior. Se você particionar sua entrada por uma propriedade, poderá adicionar o nome dessa propriedade aqui. É usado para melhorar o desempenho da sua consulta se ela incluir uma cláusula PARTITION BY ou GROUP BY nessa propriedade. Se esse trabalho usar o nível de compatibilidade 1.2 ou superior, o padrão desse campo será "PartitionId." |
| Formato de serialização de eventos | O formato de serialização (JSON, CSV, Avro) do fluxo de dados de entrada. Verifique se o formato JSON está alinhado com a especificação e não inclui o 0 à esquerda para números decimais. |
| Codificação | UTF-8 é o único formato de codificação com suporte no momento. |
| Tipo de compactação de evento | O tipo de compactação usado para ler o fluxo de dados de entrada, como Nenhum (padrão), Gzip ou Deflate. |
Ao usar dados de fluxo de um IoT Hub, você terá acesso aos seguintes campos de metadados em sua consulta do Stream Analytics:
| Propriedade | Descrição |
|---|---|
| EventProcessedUtcTime | A data e a hora em que o evento foi processado. |
| EventEnqueuedUtcTime | A data e a hora em que o IoT Hub recebe o evento. |
| PartiçãoID | A ID de partição com base em zero para o adaptador de entrada. |
| IoTHub.MessageId | Uma ID usada para correlacionar a comunicação bidirecional em IoT Hub. |
| IoTHub.CorrelationId | Uma ID usada em respostas de mensagens e comentários em IoT Hub. |
| IoTHub.ConnectionDeviceId | A ID de autenticação usada para enviar esta mensagem. O IoT Hub carimba esse valor em mensagens associadas ao serviço. |
| IoTHub.ConnectionDeviceGenerationId | A ID de geração do dispositivo autenticado que foi usado para enviar esta mensagem. O IoT Hub carimba esse valor em mensagens destinadas ao serviço. |
| IoTHub.EnqueuedTime | A hora em que o IoT Hub recebe a mensagem. |
Transmitir dados do Armazenamento de Blobs ou Data Lake Storage Gen2
Para cenários que envolvem o armazenamento de grandes quantidades de dados não estruturados na nuvem, Azure armazenamento de Blobs ou Azure Data Lake Storage Gen2 oferece uma solução econômica e escalonável. Os dados no Armazenamento de Blobs ou Azure Data Lake Storage Gen2 são considerados dados em repouso. No entanto, o Stream Analytics pode processar esses dados como um fluxo de dados.
Um cenário comumente usado para usar essas entradas com o Stream Analytics é o processamento de log. Nesse cenário, você captura arquivos de dados de telemetria de um sistema e precisa analisá-los e processá-los para extrair dados significativos.
O carimbo de data/hora padrão de um evento no armazenamento de Blobs ou no Azure Data Lake Storage Gen2 dentro do Stream Analytics é o carimbo de data/hora da última modificação, que é BlobLastModifiedUtcTime. Se você carregar um blob em uma conta de armazenamento às 13:00 e iniciar o trabalho do Azure Stream Analytics usando a opção Now às 13:01, o trabalho não processa o blob porque seu tempo de modificação fica fora do período de execução do trabalho.
Se você carregar um blob em um contêiner da conta de armazenamento às 13:00 e iniciar o trabalho Azure Stream Analytics usando Hora Personalizada às 13:00 ou antes, o trabalho pegará o blob porque seu tempo de modificação está dentro do período de execução do trabalho.
Se você iniciar um trabalho Azure Stream Analytics usando Now às 13:00 e carregar um blob no contêiner da conta de armazenamento às 13:01, Azure Stream Analytics pegará o blob. O carimbo de data/hora atribuído a cada blob é baseado apenas em BlobLastModifiedTime. A pasta em que o blob está não tem nenhuma relação com o timestamp atribuído. Por exemplo, se houver um blob 2019/10-01/00/b1.txt com um BlobLastModifiedTime de 2019-11-11, então o carimbo de data/hora atribuído a esse blob será 2019-11-11.
Para processar os dados como um fluxo usando um carimbo de data/hora no conteúdo do evento, você deve usar a palavra-chave TIMESTAMP BY . Um trabalho do Stream Analytics extrai dados do Armazenamento Blob do Azure ou do Azure Data Lake Storage Gen2 de entrada a cada segundo se o arquivo de blob estiver disponível. Se o arquivo de blob não estiver disponível, o trabalho usará um recuo exponencial com um atraso máximo de 90 segundos.
Observação
O Stream Analytics não dá suporte à adição de conteúdo a um arquivo de blob existente. O Stream Analytics exibe cada arquivo apenas uma vez e não processa nenhuma alteração que ocorra no arquivo depois que o trabalho lê os dados. A prática recomendada é carregar todos os dados para um arquivo de blob de uma vez e, em seguida, adicionar outros eventos mais recentes em um arquivo diferente, o novo arquivo de blob.
Em cenários em que você adiciona continuamente muitos blobs e o Stream Analytics processa os blobs à medida que os adiciona, você pode ignorar alguns blobs em casos raros devido à granularidade do BlobLastModifiedTime. Você pode atenuar esse problema carregando blobs com pelo menos dois segundos de diferença. Se essa opção não for viável, use os Hubs de Eventos para transmitir grandes volumes de eventos.
Configurar o Armazenamento de Blobs como uma entrada de fluxo
A tabela a seguir explica cada propriedade na página Nova entrada no portal Azure quando você configura o Blob Storage como uma 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 existem os recursos de armazenamento. |
| Conta de armazenamento | O nome da conta de armazenamento em que estão localizados os arquivos de blob. |
| Chave de conta de armazenamento | A chave secreta associada à conta de armazenamento. Essa opção é preenchida automaticamente, a menos que você selecione a opção para fornecer as configurações manualmente. |
| Contêiner | Contêineres fornecem um agrupamento lógico para blobs. Você pode escolher Usar contêiner existente ou Criar novo para ter um novo contêiner criado. |
| Modo de autenticação | Especifique o tipo de autenticação que você deseja usar para se conectar à conta de armazenamento. Você pode usar uma cadeia de conexão ou uma identidade gerenciada para autenticar na conta de armazenamento. Para a opção de identidade gerenciada, é possível criar uma identidade gerenciada atribuída pelo sistema para o trabalho do Stream Analytics ou uma identidade gerenciada atribuída pelo usuário para autenticação com a conta de armazenamento. Quando você usa uma identidade gerenciada, a identidade gerenciada deve ser um membro de uma função apropriada na conta de armazenamento. |
| Padrão de caminho (opcional) | O caminho do arquivo usado para localizar os blobs no contêiner especificado. Se você quiser ler os blobs da raiz do contêiner, não defina um padrão de caminho. Dentro do caminho, você pode especificar uma ou mais instâncias das três variáveis a seguir: {date}, {time}ou {partition}Exemplo 1: cluster1/logs/{date}/{time}/{partition}Exemplo 2: cluster1/logs/{date}O * caractere não é um valor permitido para o prefixo de caminho. Apenas caracteres Azure blob válidos são permitidos. Não inclua nomes de contêiner ou de arquivo. |
| Formato de 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 contém {date} ou {time} em seu caminho, o Stream Analytics examina as pastas em ordem de tempo crescente. |
| Formato de hora (opcional) | Se você usar a variável de data no caminho, o formato de data no qual os arquivos são organizados. Atualmente, o único valor com suporte é HH por horas. |
| Chave de partição | É um campo opcional disponível somente se você configurar seu trabalho para usar o nível de compatibilidade 1.2 ou superior. Se você particionar sua entrada por uma propriedade, poderá adicionar o nome dessa propriedade aqui. É usado para melhorar o desempenho da sua consulta se ela incluir uma cláusula PARTITION BY ou GROUP BY nessa propriedade. Se esse trabalho usar o nível de compatibilidade 1.2 ou superior, o padrão desse campo será "PartitionId." |
| Contagem de partições de entrada | Este campo está presente somente quando {partition} está presente no padrão de caminho. O valor dessa propriedade é um inteiro >=1. Sempre que {partition} aparecer em pathPattern, um número entre 0 e o valor desse campo-1 será usado. |
| Formato de serialização de eventos | O formato de serialização (JSON, CSV, Avro) do fluxo de dados de entrada. Verifique se o formato JSON está alinhado com a especificação e não inclui o 0 à esquerda para números decimais. |
| Codificação | Para CSV e JSON, UTF-8 é o único formato de codificação com suporte no momento. |
| Compactação | O tipo de compactação usado para ler o fluxo de dados de entrada, como Nenhum (padrão), Gzip ou Deflate. |
Quando os dados são provenientes de uma fonte de armazenamento de Blobs, você pode acessar os seguintes campos de metadados em sua consulta do Stream Analytics:
| Propriedade | Descrição |
|---|---|
| BlobName | O nome do blob de entrada de onde o evento veio. |
| EventProcessedUtcTime | A data e a hora em que o Stream Analytics processa o evento. |
| BlobLastModifiedUtcTime (Hora de última modificação do Blob em UTC) | A data e hora da última modificação do blob. |
| PartitionId | A ID de partição com base em zero para o adaptador de entrada. |
Usando esses campos, você pode escrever uma consulta como o seguinte exemplo:
SELECT
BlobName,
EventProcessedUtcTime,
BlobLastModifiedUtcTime
FROM Input
Transmissão de dados do Apache Kafka
Azure Stream Analytics permite que você se conecte diretamente aos clusters do Apache Kafka para ingerir dados. A solução é de baixo código e totalmente gerenciada pela equipe de Azure Stream Analytics da Microsoft, portanto, atende aos padrões de conformidade dos negócios. A entrada do Kafka é compatível com versões anteriores e dá suporte a todas as versões a partir da versão 0.10 com a versão mais recente do cliente. Você pode se conectar a clusters Kafka dentro de uma rede virtual e clusters Kafka com um ponto de extremidade público, dependendo das configurações. A configuração depende das convenções de configuração existentes do Kafka. Os tipos de compactação com suporte são None, Gzip, Snappy, LZ4 e Zstd.
Para obter mais informações, consulte Transmitir dados do Kafka para o Azure Stream Analytics (versão prévia).