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.
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 pełnić rolę braku kodu, wydajnej i skalowalnej alternatywy dla wstępnego przetwarzania i przesyłania strumieniowego danych z usług 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 usługi Azure IoT Hub jako przykładowego źródła danych, ale technika ta 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. Ten artykuł nie obejmuje konfigurowania symulatora.
W witrynie Azure Portal rozwiń menu portalu w lewym górnym rogu i wybierz pozycję Utwórz zasób.
Wybierz pozycję Zadanie usługi>Stream Analytics z listy wyników.
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 Hub.
- 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 usługi IoT Edge.
- Jednostki przesyłania strumieniowego — wybierz liczbę jednostek przesyłania strumieniowego dla zasobów obliczeniowych potrzebnych do wykonania zadania.
Wybierz opcję Przejrzyj i utwórz, a następnie wybierz pozycję Utwórz. W prawym górnym rogu powinno zostać wyświetlone powiadomienie Wdrożenie w toku .
Konfigurowanie danych wejściowych zadania.
Po zakończeniu wdrażania zasobów przejdź do zadania usługi Stream Analytics. Wybierz pozycję Dane wejściowe>Dodaj dane wejściowe strumienia usługi>IoT Hub.
Wypełnij stronę usługi IoT Hub następującymi wartościami:
- Alias wejściowy — wprowadź nazwę identyfikującą dane wejściowe zadania.
- Subskrypcja — wybierz subskrypcję platformy Azure, która ma konto usługi IoT Hub.
- IoT Hub — wybierz nazwę centrum IoT Hub.
Wybierz pozycję Zapisz.
Po dodaniu strumienia wejściowego możesz również zweryfikować lub pobrać przepływ zestawu 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": "aaaa0000-bb11-2222-33cc-444444dddddd", "ConnectionDeviceId": "sim000001", "ConnectionDeviceGenerationId": "637842405470327268", "EnqueuedTime": "2022-04-25T13:49:11.7060000Z" } }
Konfigurowanie danych wyjściowych zadania.
Na stronie zadania usługi Stream Analytics wybierz pozycję Dane wyjściowe>Dodaj>bazę danych PostgreSQL (wersja zapoznawcza).
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. W przykładowym zestawie danych użyj device_data tabeli.
Wybierz pozycję Zapisz.
Zdefiniuj zapytanie przekształcenia.
Na stronie zadania usługi Stream Analytics wybierz pozycję Zapytanie z menu po lewej stronie.
W tym samouczku pozyskasz tylko zdarzenia alternatywne z usługi 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;
Wybierz pozycję Zapisz zapytanie.
Uwaga
Zapytanie służy nie tylko do próbkowania danych, ale także do wyodrębniania żądanych atrybutów ze strumienia danych. Opcja zapytania niestandardowego za pomocą usługi Stream Analytics jest przydatna w przypadku wstępnego przetwarzania/przekształcania danych przed ich pozyskiwaniem do bazy danych.
Uruchom zadanie usługi Stream Analytics i sprawdź dane wyjściowe.
Wróć na stronę przeglądu zadania i wybierz pozycję Uruchom.
Na stronie Uruchamianie zadania wybierz pozycję Teraz w obszarze Godzina rozpoczęcia danych wyjściowych zadania, a następnie wybierz pozycję Uruchom.
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 wykonać zapytanie dotyczące 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 nie jest obecnie obsługiwana dla usługi Azure Cosmos DB for PostgreSQL i może zgłosić 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.