Azure Cosmos DB for PostgreSQL에서 Azure Stream Analytics를 사용하여 데이터를 수집하는 방법
적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)
Azure Stream Analytics는 실시간 분석 및 이벤트 처리 엔진으로 디바이스, 센서 및 웹 사이트에서 대량의 빠른 스트리밍 데이터를 처리하도록 설계되었습니다. Azure IoT Edge 런타임에서도 사용할 수 있으므로 IoT 디바이스에서 데이터를 처리할 수 있습니다.
Azure Cosmos DB for PostgreSQL은 IoT와 같은 실시간 워크로드에서 빛을 발합니다. 이러한 워크로드의 경우 Stream Analytics는 Azure Event Hubs, Azure IoT Hub 및 Azure Blob Storage의 데이터를 Azure Cosmos DB for PostgreSQL로 스트리밍하고 사전 처리하는 데 있어 성능이 뛰어나며 스케일링 가능한 노코드 대안으로 작동할 수 있습니다.
Stream Analytics를 설정하는 단계
참고 항목
이 문서에서는 예제 데이터 원본으로 Azure IoT Hub를 사용하지만 이 기술은 Stream Analytics에서 지원하는 다른 모든 원본에 적용할 수 있습니다. 또한 다음에 표시된 데모 데이터는 Azure IoT Device Telemetry Simulator에서 가져온 것입니다. 이 문서에서는 시뮬레이터 설정을 다루지 않습니다.
Azure Portal에서 왼쪽 위에 있는 포털 메뉴를 확장하고 리소스 만들기를 선택합니다.
결과 목록에서 Analytics>Stream Analytics 작업을 선택합니다.
새 Stream Analytics 작업 페이지를 다음 정보로 채웁니다.
- 구독: 해당 작업에 사용할 Azure 구독을 선택합니다.
- 리소스 그룹 - IoT Hub와 동일한 리소스 그룹을 선택합니다.
- 이름 - Stream Analytics 작업을 식별하는 이름을 입력합니다.
- 지역 - Stream Analytics 작업을 호스트할 Azure 지역을 선택합니다. 성능을 향상하고 데이터 전송 비용을 줄이기 위해 사용자에게 가장 가까운 지리적 위치를 사용합니다.
- 호스팅 환경 - Azure 클라우드에 배포할 클라우드를 선택하거나 IoT Edge 디바이스에 배포에 에지를 선택합니다.
- 스트리밍 단위 - 작업을 실행하는 데 필요한 컴퓨팅 리소스의 스트리밍 단위 수를 선택합니다.
검토 및 생성를 선택한 후 생성를 선택합니다. 오른쪽 위에 배포 진행 중 알림이 표시됩니다.
작업 입력을 구성합니다.
리소스 배포가 완료되면 Stream Analytics 작업으로 이동합니다. 입력>스트림 입력 추가>IoT Hub를 선택합니다.
다음과 같은 값으로 페이지를 채웁니다.
- 입력 별칭 - 작업 입력을 식별하는 이름을 입력합니다.
- 구독 - IoT Hub 계정이 있는 Azure 구독을 선택합니다.
- IoT Hub – IoT Hub의 이름을 선택합니다.
저장을 선택합니다.
입력 스트림이 추가되면 유입되는 데이터 세트를 확인 또는 다운로드할 수도 있습니다. 다음 코드는 예제 이벤트에 대한 데이터를 보여 줍니다.
{ "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" } }
작업 출력을 구성합니다.
Stream Analytics 작업 페이지에서 출력>추가>PostgreSQL 데이터베이스(미리 보기)를 선택합니다.
다음 값으로 Azure PostgreSQL 페이지를 작성합니다.
- 출력 별칭 - 작업 출력을 식별하는 이름을 입력합니다.
- PostgreSQL 데이터베이스 설정을 수동으로 제공을 선택하고 서버 정규화된 도메인 이름, 데이터베이스, 테이블, 사용자 이름 및 암호를 입력합니다. 예제 데이터 세트에서 테이블 device_data를 사용합니다.
저장을 선택합니다.
변환 쿼리를 정의합니다.
Stream Analytics 작업 페이지의 왼쪽 메뉴에서 쿼리를 선택합니다.
이 자습서에서는 전체 데이터 크기를 줄이기 위해 IoT Hub의 대체 이벤트만 Azure Cosmos DB for PostgreSQL로 수집합니다. 쿼리 창에 다음 쿼리를 복사하여 붙여 넣습니다.
select counter, iothub.connectiondeviceid, iothub.correlationid, iothub.connectiondevicegenerationid, iothub.enqueuedtime from [src-iot-hub] where counter%2 = 0;
쿼리 저장을 선택합니다.
참고 항목
쿼리를 사용하여 데이터를 샘플링할 뿐만 아니라 데이터 스트림에서 원하는 특성을 추출합니다. 스트림 분석이 포함된 사용자 지정 쿼리 옵션은 데이터가 데이터베이스에 수집되기 전에 데이터를 사전 처리/변환하는 데 유용합니다.
Stream Analytics 작업을 시작하고 출력을 확인합니다.
작업 개요 페이지로 돌아가서 시작을 선택합니다.
작업 시작 페이지의 작업 출력 시작 시간에서 지금을 선택한 후 시작을 선택합니다.
작업을 처음 시작하는 데까지는 시간이 걸릴 수 있지만 일단 트리거되면 데이터가 도착할 때까지 계속 실행됩니다. 몇 분 후 클러스터를 쿼리하여 로드된 데이터를 확인할 수 있습니다.
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)
참고 항목
Azure Cosmos DB for PostgreSQL에 대해 연결 테스트 기능은 현재 지원되지 않으며 연결이 제대로 작동하더라도 오류가 발생할 수 있습니다.
다음 단계
Azure Cosmos DB for PostgreSQL을 사용하여 실시간 대시보드를 만드는 방법을 알아봅니다.