Udostępnij za pośrednictwem


Jak pozyskiwać dane przy użyciu usługi Azure Stream Analytics w usłudze Azure Cosmos DB for PostgreSQL

DOTYCZY: Usługa Azure Cosmos DB for PostgreSQL (obsługiwana przez rozszerzenie bazy danych Citus do bazy danych PostgreSQL)

Usługa Azure Stream Analytics to aparat analizy i przetwarzania zdarzeń w czasie rzeczywistym, który jest przeznaczony do przetwarzania dużych ilości szybkich danych przesyłanych strumieniowo z urządzeń, czujników i witryn internetowych. Jest ona również dostępna w środowisku uruchomieniowym usługi Azure IoT Edge, umożliwiając przetwarzanie danych na urządzeniach IoT.

Diagram przedstawiający architekturę usługi Stream Analytics z usługą Azure Cosmos DB for PostgreSQL.

Usługa Azure Cosmos DB for PostgreSQL świeci w obciążeniach czasu rzeczywistego, takich jak IoT. W przypadku tych obciążeń usługa Stream Analytics może działać jako bez kodu, wydajna i skalowalna alternatywa dla wstępnego przetwarzania i przesyłania strumieniowego danych z Azure Event Hubs, Azure IoT Hub i Azure Blob Storage do usługi Azure Cosmos DB for PostgreSQL.

Kroki konfigurowania usługi Stream Analytics

Uwaga

W tym artykule użyto Azure IoT Hub jako przykładowego źródła danych, ale technika ma zastosowanie do dowolnego innego źródła obsługiwanego przez usługę Stream Analytics. Ponadto następujące dane demonstracyjne pochodzą z symulatora telemetrii urządzenia usługi Azure IoT. W tym artykule nie omówiono konfigurowania symulatora.

  1. W Azure Portal rozwiń menu portalu w lewym górnym rogu i wybierz pozycję Utwórz zasób.

  2. Wybierz pozycję Zadanie usługi>Stream Analytics z listy wyników.

  3. Wypełnij stronę Nowe zadanie usługi Stream Analytics następującymi informacjami:

    • Subskrypcja — wybierz subskrypcję platformy Azure, której chcesz użyć dla tego zadania.
    • Grupa zasobów — wybierz tę samą grupę zasobów co centrum IoT.
    • Nazwa — wprowadź nazwę, aby zidentyfikować zadanie usługi Stream Analytics.
    • Region — wybierz region świadczenia usługi Azure do hostowania zadania usługi Stream Analytics. Użyj lokalizacji geograficznej znajdującej się najbliżej użytkowników, aby uzyskać lepszą wydajność i zmniejszyć koszt transferu danych.
    • Środowisko hostingu — wybierz pozycję Chmura, aby wdrożyć w chmurze platformy Azure lub przeglądarkę Edge w celu wdrożenia na urządzeniu IoT Edge.
    • Jednostki przesyłania strumieniowego — wybierz liczbę jednostek przesyłania strumieniowego dla zasobów obliczeniowych, które należy wykonać zadanie.
  4. Wybierz pozycję Przejrzyj i utwórz, a następnie wybierz pozycję Utwórz. Powinno zostać wyświetlone powiadomienie Wdrożenie w toku w prawym górnym rogu.

    Zrzut ekranu przedstawiający formularz tworzenia zadania usługi Stream Analytics.

  5. Konfigurowanie danych wejściowych zadania.

    Zrzut ekranu przedstawiający konfigurowanie danych wejściowych zadania w usłudze Stream Analytics.

    1. Po zakończeniu wdrażania zasobów przejdź do zadania usługi Stream Analytics. Wybierz pozycję Dane wejściowe>Dodaj dane wejściowe> strumienia IoT Hub.

    2. Wypełnij stronę usługi IoT Hub następującymi wartościami:

      • Alias wejściowy — wprowadź nazwę, aby zidentyfikować dane wejściowe zadania.
      • Subskrypcja — wybierz subskrypcję platformy Azure z kontem IoT Hub.
      • IoT Hub — wybierz nazwę centrum IoT.
    3. Wybierz pozycję Zapisz.

    4. Po dodaniu strumienia wejściowego możesz również zweryfikować lub pobrać przepływujący zestaw danych. Poniższy kod przedstawia dane dla przykładowego zdarzenia:

      {
         "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. Konfigurowanie danych wyjściowych zadania.

    1. Na stronie zadania usługi Stream Analytics wybierz pozycję Dane wyjściowe>Dodaj>bazę danych PostgreSQL (wersja zapoznawcza).

      Zrzut ekranu przedstawiający wybieranie danych wyjściowych bazy danych PostgreSQL.

    2. Wypełnij stronę usługi Azure PostgreSQL następującymi wartościami:

      • Alias danych wyjściowych — wprowadź nazwę identyfikującą dane wyjściowe zadania.
      • Wybierz pozycję Podaj ustawienia bazy danych PostgreSQL ręcznie i wprowadź w pełni kwalifikowaną nazwę domeny serwera, bazę danych, tabelę, nazwę użytkownika i hasło. Z przykładowego zestawu danych użyj tabeli device_data.
    3. Wybierz pozycję Zapisz.

    Konfigurowanie danych wyjściowych zadania w usłudze Azure Stream Analytics.

  7. Zdefiniuj zapytanie przekształcenia.

    Zapytanie przekształcania w usłudze Azure Stream Analytics.

    1. Na stronie zadania usługi Stream Analytics wybierz pozycję Zapytanie z menu po lewej stronie.

    2. W tym samouczku pozyskasz tylko zdarzenia alternatywne z IoT Hub do usługi Azure Cosmos DB for PostgreSQL, aby zmniejszyć ogólny rozmiar danych. Skopiuj i wklej następujące zapytanie w okienku zapytania:

      select
         counter,
         iothub.connectiondeviceid,
         iothub.correlationid,
         iothub.connectiondevicegenerationid,
         iothub.enqueuedtime
      from
         [src-iot-hub]
      where counter%2 = 0;
      
    3. Wybierz pozycję Zapisz zapytanie.

      Uwaga

      Zapytanie służy nie tylko do próbkowania danych, ale także wyodrębniania żądanych atrybutów ze strumienia danych. Opcja zapytania niestandardowego z usługą Stream Analytics jest przydatna w przypadku wstępnego przetwarzania/przekształcania danych przed ich pozyskiwaniem do bazy danych.

  8. Uruchom zadanie usługi Stream Analytics i zweryfikuj dane wyjściowe.

    1. Wróć na stronę przeglądu zadania i wybierz pozycję Uruchom.

    2. Na stronie Uruchom zadanie wybierz pozycję Teraz dla godziny rozpoczęcia danych wyjściowych zadania, a następnie wybierz pozycję Uruchom.

    3. Uruchomienie zadania po raz pierwszy zajmuje trochę czasu, ale po wyzwoleniu będzie ono nadal uruchamiane po nadejściu danych. Po kilku minutach możesz wysłać zapytanie do klastra, aby sprawdzić, czy dane zostały załadowane.

      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)
      

Uwaga

Funkcja testu połączenia obecnie nie jest obsługiwana w przypadku usługi Azure Cosmos DB for PostgreSQL i może zgłaszać błąd, nawet jeśli połączenie działa prawidłowo.

Następne kroki

Dowiedz się, jak utworzyć pulpit nawigacyjny w czasie rzeczywistym za pomocą usługi Azure Cosmos DB for PostgreSQL.