Jak ingestovat data pomocí Azure Stream Analytics ve službě Azure Cosmos DB for PostgreSQL

PLATÍ PRO: Azure Cosmos DB for PostgreSQL (využívá rozšíření databáze Citus pro PostgreSQL)

Azure Stream Analytics je analytický modul a modul zpracování událostí v reálném čase, který je navržený tak, aby zpracovával velké objemy rychle streamovaných dat ze zařízení, senzorů a webů. Je také k dispozici v modulu runtime Azure IoT Edge, který umožňuje zpracování dat na zařízeních IoT.

Diagram znázorňující architekturu Stream Analytics se službou Azure Cosmos DB for PostgreSQL

Azure Cosmos DB for PostgreSQL zářit u úloh v reálném čase, jako je IoT. U těchto úloh může Stream Analytics fungovat jako výkonná a škálovatelná alternativa k předprocesování a streamování dat z Azure Event Hubs, Azure IoT Hub a Azure Blob Storage do služby Azure Cosmos DB for PostgreSQL.

Postup nastavení Stream Analytics

Poznámka

V tomto článku se jako příklad zdroje dat používá Azure IoT Hub, ale tato technika se dá použít pro všechny ostatní zdroje podporované službou Stream Analytics. Následující ukázková data pocházejí také ze simulátoru telemetrie zařízení Azure IoT. Tento článek nepopisuje nastavení simulátoru.

  1. V Azure Portal rozbalte nabídku portálu vlevo nahoře a vyberte Vytvořit prostředek.

  2. V seznamu výsledků vyberte Úloha Stream>Analytics Analytics.

  3. Na stránce Nová úloha Stream Analytics vyplňte následující informace:

    • Předplatné – vyberte předplatné Azure, které chcete pro tuto úlohu použít.
    • Skupina prostředků – Vyberte stejnou skupinu prostředků jako vaše centrum IoT.
    • Název – Zadejte název, který identifikuje vaši úlohu Stream Analytics.
    • Oblast – Vyberte oblast Azure pro hostování úlohy Stream Analytics. Použijte zeměpisné umístění, které je nejblíže vašim uživatelům, pro lepší výkon a snížení nákladů na přenos dat.
    • Hostitelské prostředí – Vyberte Cloud, který chcete nasadit do cloudu Azure, nebo Edge pro nasazení do IoT Edge zařízení.
    • Jednotky streamování – Vyberte počet jednotek streamování pro výpočetní prostředky, které potřebujete ke spuštění úlohy.
  4. Vyberte Zkontrolovat a vytvořit a potom vyberte Vytvořit. V pravém horním rohu by se mělo zobrazit oznámení o průběhu nasazení .

    Snímek obrazovky znázorňující formulář vytvoření úlohy Stream Analytics

  5. Nakonfigurujte vstup úlohy.

    Snímek obrazovky znázorňující konfiguraci vstupu úlohy ve Stream Analytics

    1. Po dokončení nasazení prostředku přejděte k úloze Stream Analytics. Vyberte Vstupy>Přidat vstup streamu>IoT Hub.

    2. Na stránce IoT Hub vyplňte následující hodnoty:

      • Alias vstupu – Zadejte název pro identifikaci vstupu úlohy.
      • Předplatné – vyberte předplatné Azure, které má váš účet IoT Hub.
      • IoT Hub – Vyberte název centra IoT.
    3. Vyberte Uložit.

    4. Po přidání vstupního datového proudu můžete také ověřit nebo stáhnout tok datové sady. Následující kód ukazuje data pro ukázkovou událost:

      {
         "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": "990407b8-4332-4cb6-a8f4-d47f304397d8",
           "ConnectionDeviceId": "sim000001",
           "ConnectionDeviceGenerationId": "637842405470327268",
           "EnqueuedTime": "2022-04-25T13:49:11.7060000Z"
         }
      }
      
  6. Nakonfigurujte výstup úlohy.

    1. Na stránce Úloha Stream Analytics vyberte Výstupy>Přidat>databázi PostgreSQL (Preview).

      Snímek obrazovky znázorňující výběr výstupu databáze PostgreSQL

    2. Na stránce Azure PostgreSQL vyplňte následující hodnoty:

      • Alias výstupu – Zadejte název pro identifikaci výstupu úlohy.
      • Vyberte Zadat nastavení databáze PostgreSQL ručně a zadejte plně kvalifikovaný název domény serveru, Databáze, Tabulka, Uživatelské jméno a Heslo. Z ukázkové datové sady použijte tabulku device_data.
    3. Vyberte Uložit.

    Konfigurace výstupu úlohy v Azure Stream Analytics

  7. Definujte transformační dotaz.

    Transformační dotaz v Azure Stream Analytics

    1. Na stránce úloha Stream Analytics vyberte v nabídce vlevo dotaz .

    2. Pro účely tohoto kurzu ingestujete do služby Azure Cosmos DB for PostgreSQL pouze alternativní události z IoT Hub, abyste snížili celkovou velikost dat. Zkopírujte následující dotaz a vložte ho do podokna dotazu:

      select
         counter,
         iothub.connectiondeviceid,
         iothub.correlationid,
         iothub.connectiondevicegenerationid,
         iothub.enqueuedtime
      from
         [src-iot-hub]
      where counter%2 = 0;
      
    3. Vyberte Uložit dotaz.

      Poznámka

      Dotaz slouží nejen k vzorkování dat, ale také k extrahování požadovaných atributů z datového streamu. Možnost vlastního dotazu se službou Stream Analytics je užitečná při předběžném zpracování nebo transformaci dat před jejich ingestováním do databáze.

  8. Spusťte úlohu Stream Analytics a ověřte výstup.

    1. Vraťte se na stránku přehledu úlohy a vyberte Spustit.

    2. Na stránce Spustit úlohu vyberte Nyní jako čas spuštění výstupu úlohy a pak vyberte Spustit.

    3. První spuštění úlohy nějakou dobu trvá, ale jakmile se aktivuje, poběží i při příchodu dat. Po několika minutách můžete do clusteru zadat dotaz a ověřit, že se data načetla.

      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)
      

Poznámka

Funkce Test připojení se v současné době ve službě Azure Cosmos DB for PostgreSQL nepodporuje a může vyvolat chybu, i když připojení funguje správně.

Další kroky

Zjistěte, jak vytvořit řídicí panel v reálném čase se službou Azure Cosmos DB for PostgreSQL.