Como ingerir dados usando o Azure Stream Analytics no Azure Cosmos DB para PostgreSQL
APLICA-SE A: Azure Cosmos DB para PostgreSQL (alimentado pela extensão de banco de dados Citus para PostgreSQL)
O Azure Stream Analytics é um mecanismo de análise e processamento de eventos em tempo real projetado para processar grandes volumes de dados de streaming rápido de dispositivos, sensores e sites. Também está disponível no tempo de execução do Azure IoT Edge, permitindo o processamento de dados em dispositivos IoT.
O Azure Cosmos DB para PostgreSQL brilha em cargas de trabalho em tempo real, como IoT. Para essas cargas de trabalho, o Stream Analytics pode atuar como uma alternativa sem código, eficiente e escalável para pré-processar e transmitir dados dos Hubs de Eventos do Azure, do Hub IoT do Azure e do Armazenamento de Blobs do Azure para o Azure Cosmos DB para PostgreSQL.
Etapas para configurar o Stream Analytics
Nota
Este artigo usa o Hub IoT do Azure como uma fonte de dados de exemplo, mas a técnica é aplicável a qualquer outra fonte suportada pelo Stream Analytics. Além disso, os dados de demonstração a seguir vêm do Simulador de Telemetria de Dispositivo IoT do Azure. Este artigo não aborda a configuração do simulador.
No portal do Azure, expanda o menu do portal no canto superior esquerdo e selecione Criar um recurso.
Selecione Trabalho do Analytics>Stream Analytics na lista de resultados.
Preencha a página de trabalho do New Stream Analytics com as seguintes informações:
- Subscrição - Selecione a subscrição do Azure que pretende utilizar para este trabalho.
- Grupo de recursos - Selecione o mesmo grupo de recursos que seu hub IoT.
- Nome - Insira um nome para identificar seu trabalho do Stream Analytics.
- Região - Selecione a região do Azure para hospedar seu trabalho do Stream Analytics. Use a localização geográfica mais próxima de seus usuários para obter um melhor desempenho e reduzir o custo de transferência de dados.
- Ambiente de hospedagem - Selecione Nuvem para implantar na nuvem do Azure ou Edge para implantar em um dispositivo IoT Edge.
- Unidades de streaming - Selecione o número de unidades de streaming para os recursos de computação necessários para executar o trabalho.
Selecione Rever + criar e, em seguida, selecione Criar. Você verá uma notificação de Implantação em andamento no canto superior direito.
Configure a entrada de trabalho.
Quando a implantação do recurso estiver concluída, navegue até o trabalho do Stream Analytics. Selecione Entradas Adicionar entrada>de>fluxo Hub IoT.
Preencha a página do Hub IoT com os seguintes valores:
- Alias de entrada - Insira um nome para identificar a entrada de trabalho.
- Assinatura - Selecione a assinatura do Azure que tem sua conta do Hub IoT.
- Hub IoT – Selecione o nome do seu hub IoT.
Selecione Guardar.
Depois que o fluxo de entrada é adicionado, você também pode verificar ou baixar o conjunto de dados que flui. O código a seguir mostra os dados para um evento de exemplo:
{ "deviceId": "sim000001", "time": "2022-04-25T13:49:11.6892185Z", "counter": 1, "EventProcessedUtcTime": "2022-04-25T13:49:41.4791613Z", "PartitionId": 3, "EventEnqueuedUtcTime": "2022-04-25T13:49:12.1820000Z", "IoTHub": { "MessageId": null, "CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd", "ConnectionDeviceId": "sim000001", "ConnectionDeviceGenerationId": "637842405470327268", "EnqueuedTime": "2022-04-25T13:49:11.7060000Z" } }
Configure a saída do trabalho.
Na página de trabalho do Stream Analytics, selecione Saídas>Adicionar>banco de dados PostgreSQL (visualização).
Preencha a página do Azure PostgreSQL com os seguintes valores:
- Alias de saída - Insira um nome para identificar a saída do trabalho.
- Selecione Fornecer configurações de banco de dados PostgreSQL manualmente e insira o Nome de domínio totalmente qualificado, Banco de dados, Tabela, Nome de usuário e Senha do servidor. No conjunto de dados de exemplo, use a tabela device_data.
Selecione Guardar.
Defina a consulta de transformação.
Na página de trabalho do Stream Analytics, selecione Consulta no menu à esquerda.
Para este tutorial, você ingere apenas os eventos alternativos do Hub IoT no Azure Cosmos DB para PostgreSQL, para reduzir o tamanho geral dos dados. Copie e cole a seguinte consulta no painel de consulta:
select counter, iothub.connectiondeviceid, iothub.correlationid, iothub.connectiondevicegenerationid, iothub.enqueuedtime from [src-iot-hub] where counter%2 = 0;
Selecione Salvar consulta.
Nota
Use a consulta não apenas para obter amostras dos dados, mas também para extrair os atributos desejados do fluxo de dados. A opção de consulta personalizada com o Stream Analytics é útil no pré-processamento/transformação dos dados antes que eles sejam ingeridos no banco de dados.
Inicie o trabalho do Stream Analytics e verifique a saída.
Regresse à página de descrição geral da tarefa e selecione Iniciar.
Na página Iniciar trabalho, selecione Agora para a hora de início de saída do trabalho e, em seguida, selecione Iniciar.
O trabalho leva algum tempo para iniciar pela primeira vez, mas uma vez acionado, continua a ser executado à medida que os dados chegam. Após alguns minutos, você pode consultar o cluster para verificar se os dados foram carregados.
citus=> SELECT * FROM public.device_data LIMIT 10; counter | connectiondeviceid | correlationid | connectiondevicegenerationid | enqueuedtime ---------+--------------------+--------------------------------------+------------------------------+------------------------------ 2 | sim000001 | 7745c600-5663-44bc-a70b-3e249f6fc302 | 637842405470327268 | 2022-05-25T18:24:03.4600000Z 4 | sim000001 | 389abfde-5bec-445c-a387-18c0ed7af227 | 637842405470327268 | 2022-05-25T18:24:05.4600000Z 6 | sim000001 | 3932ce3a-4616-470d-967f-903c45f71d0f | 637842405470327268 | 2022-05-25T18:24:07.4600000Z 8 | sim000001 | 4bd8ecb0-7ee1-4238-b034-4e03cb50f11a | 637842405470327268 | 2022-05-25T18:24:09.4600000Z 10 | sim000001 | 26cebc68-934e-4e26-80db-e07ade3775c0 | 637842405470327268 | 2022-05-25T18:24:11.4600000Z 12 | sim000001 | 067af85c-a01c-4da0-b208-e4d31a24a9db | 637842405470327268 | 2022-05-25T18:24:13.4600000Z 14 | sim000001 | 740e5002-4bb9-4547-8796-9d130f73532d | 637842405470327268 | 2022-05-25T18:24:15.4600000Z 16 | sim000001 | 343ed04f-0cc0-4189-b04a-68e300637f0e | 637842405470327268 | 2022-05-25T18:24:17.4610000Z 18 | sim000001 | 54157941-2405-407d-9da6-f142fc8825bb | 637842405470327268 | 2022-05-25T18:24:19.4610000Z 20 | sim000001 | 219488e5-c48a-4f04-93f6-12c11ed00a30 | 637842405470327268 | 2022-05-25T18:24:21.4610000Z (10 rows)
Nota
O recurso Testar Conexão atualmente não tem suporte para o Azure Cosmos DB para PostgreSQL e pode gerar um erro, mesmo quando a conexão funciona bem.
Próximos passos
Saiba como criar um painel em tempo real com o Azure Cosmos DB para PostgreSQL.