Sdílet prostřednictvím


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

Důležité

Azure Cosmos DB for PostgreSQL se už pro nové projekty nepodporuje. Tuto službu nepoužívejte pro nové projekty. Místo toho použijte jednu z těchto dvou služeb:

  • Azure Cosmos DB for NoSQL můžete použít pro distribuované databázové řešení navržené pro vysoce škálovatelné scénáře s 99,999% smlouvou o úrovni služeb (SLA), okamžitým automatickým škálováním a automatickým převzetím služeb při selhání napříč několika oblastmi.

  • Použijte funkci Elastic Clusters služby Azure Database for PostgreSQL pro horizontálně dělené PostgreSQL pomocí opensourcového rozšíření Citus.

Azure Stream Analytics je modul pro analýzu a zpracování událostí v reálném čase, který je navržený tak, aby zpracovával velké objemy dat rychlého streamování 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 vyniká v úlohách v reálném čase, jako je IoT. Pro tyto úlohy může Stream Analytics fungovat jako bez kódu, výkonné a škálovatelné alternativy k předběžnému zpracování a streamování dat ze služby Azure Event Hubs, Azure IoT Hub a Azure Blob Storage do služby Azure Cosmos DB for PostgreSQL.

Postup nastavení Stream Analytics

Poznámka:

Tento článek používá Azure IoT Hub jako příklad zdroje dat, ale technika se vztahuje na jakýkoli jiný zdroj 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 se nezabývá nastavením simulátoru.

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

  2. V seznamu výsledků vyberte Analytics>Stream Analytics úlohu.

  3. Vyplňte na stránce Nová úloha Stream Analytics 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 pro identifikaci úlohy Stream Analytics.
    • Oblast – Vyberte oblast Azure pro hostování úlohy Stream Analytics. Pokud chcete dosáhnout lepšího výkonu a snížit náklady na přenos dat, použijte geografickou polohu, která je nejblíže vašim uživatelům.
    • Hostitelské prostředí – Vyberte Cloud , který chcete nasadit do cloudu Azure, nebo Edge , aby se nasadil do zařízení IoT Edge.
    • 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 položku Zkontrolovat + vytvořit a potom vyberte Vytvořit. V pravém horním rohu by se mělo zobrazit oznámení o probíhajícím 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 >IoT Hub.

    2. Vyplňte stránku IoT Hub následujícími hodnotami:

      • Vstupní alias – pro identifikaci vstupu úlohy zadejte název.
      • Předplatné – Vyberte předplatné Azure, u kterého máte svůj účet IoT Hub.
      • IoT Hub – Vyberte název centra IoT.
    3. Zvolte Uložit.

    4. Po přidání vstupního streamu 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": "aaaa0000-bb11-2222-33cc-444444dddddd",
           "ConnectionDeviceId": "sim000001",
           "ConnectionDeviceGenerationId": "637842405470327268",
           "EnqueuedTime": "2022-04-25T13:49:11.7060000Z"
         }
      }
      
  6. Nakonfigurujte výstup úlohy.

    1. Na stránce úlohy Stream Analytics vyberte Outputs>Add>PostgreSQL database (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ázi, tabulku, uživatelské jméno a heslo. Z ukázkové datové sady použijte tabulku device_data.
    3. Zvolte Uložit.

    Konfigurace výstupu úlohy ve službě Azure Stream Analytics

  7. Definujte transformační dotaz.

    Transformační dotaz ve službě Azure Stream Analytics

    1. Na stránce úlohy Stream Analytics vyberte v nabídce vlevo možnost Dotaz .

    2. V tomto kurzu ingestujete pouze alternativní události ze služby IoT Hub do služby Azure Cosmos DB for PostgreSQL, abyste snížili celkovou velikost dat. Zkopírujte a vložte následující dotaz 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 použijete nejen k vzorkování dat, ale také k extrahování požadovaných atributů z datového streamu. Možnost vlastního dotazu pomocí Stream Analytics je užitečná při předběžném zpracování a 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í pro čas spuštění výstupu úlohy a pak vyberte Spustit.

    3. První spuštění úlohy nějakou dobu trvá, ale jakmile ji aktivujete, bude se spouštět i po doručení dat. Po několika minutách můžete do clusteru zadat dotaz, abyste ověřili, ž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í v současné době není pro Službu Azure Cosmos DB for PostgreSQL podporovaná 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 pomocí služby Azure Cosmos DB for PostgreSQL.