Partilhar via


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.

Diagrama que mostra a arquitetura do Stream Analytics com o Azure Cosmos DB para PostgreSQL.

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.

  1. No portal do Azure, expanda o menu do portal no canto superior esquerdo e selecione Criar um recurso.

  2. Selecione Trabalho do Analytics>Stream Analytics na lista de resultados.

  3. 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.
  4. Selecione Rever + criar e, em seguida, selecione Criar. Você verá uma notificação de Implantação em andamento no canto superior direito.

    Captura de tela que mostra o formulário de trabalho de criação do Stream Analytics.

  5. Configure a entrada de trabalho.

    Captura de tela que mostra a configuração da entrada de trabalho no Stream Analytics.

    1. Quando a implantação do recurso estiver concluída, navegue até o trabalho do Stream Analytics. Selecione Entradas Adicionar entrada>de>fluxo Hub IoT.

    2. 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.
    3. Selecione Guardar.

    4. 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"
         }
      }
      
  6. Configure a saída do trabalho.

    1. Na página de trabalho do Stream Analytics, selecione Saídas>Adicionar>banco de dados PostgreSQL (visualização).

      Captura de tela que mostra a seleção da saída do banco de dados PostgreSQL.

    2. 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.
    3. Selecione Guardar.

    Configure a saída do trabalho no Azure Stream Analytics.

  7. Defina a consulta de transformação.

    Consulta de transformação no Azure Stream Analytics.

    1. Na página de trabalho do Stream Analytics, selecione Consulta no menu à esquerda.

    2. 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;
      
    3. 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.

  8. Inicie o trabalho do Stream Analytics e verifique a saída.

    1. Regresse à página de descrição geral da tarefa e selecione Iniciar.

    2. Na página Iniciar trabalho, selecione Agora para a hora de início de saída do trabalho e, em seguida, selecione Iniciar.

    3. 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.