다음을 통해 공유


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을 사용한 Stream Analytics 아키텍처를 보여 주는 다이어그램

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에서 가져온 것입니다. 이 문서에서는 시뮬레이터 설정을 다루지 않습니다.

  1. Azure Portal에서 왼쪽 위에 있는 포털 메뉴를 확장하고 리소스 만들기를 선택합니다.

  2. 결과 목록에서 Analytics>Stream Analytics 작업을 선택합니다.

  3. 새 Stream Analytics 작업 페이지를 다음 정보로 채웁니다.

    • 구독: 해당 작업에 사용할 Azure 구독을 선택합니다.
    • 리소스 그룹 - IoT Hub와 동일한 리소스 그룹을 선택합니다.
    • 이름 - Stream Analytics 작업을 식별하는 이름을 입력합니다.
    • 지역 - Stream Analytics 작업을 호스트할 Azure 지역을 선택합니다. 성능을 향상하고 데이터 전송 비용을 줄이기 위해 사용자에게 가장 가까운 지리적 위치를 사용합니다.
    • 호스팅 환경 - Azure 클라우드에 배포할 클라우드를 선택하거나 IoT Edge 디바이스에 배포에 에지를 선택합니다.
    • 스트리밍 단위 - 작업을 실행하는 데 필요한 컴퓨팅 리소스의 스트리밍 단위 수를 선택합니다.
  4. 검토 및 생성를 선택한 후 생성를 선택합니다. 오른쪽 위에 배포 진행 중 알림이 표시됩니다.

    Stream Analytics 만들기 작업 양식을 보여 주는 스크린샷

  5. 작업 입력을 구성합니다.

    Stream Analytics의 작업 입력 구성을 보여 주는 스크린샷

    1. 리소스 배포가 완료되면 Stream Analytics 작업으로 이동합니다. 입력>스트림 입력 추가>IoT Hub를 선택합니다.

    2. 다음과 같은 값으로 페이지를 채웁니다.

      • 입력 별칭 - 작업 입력을 식별하는 이름을 입력합니다.
      • 구독 - IoT Hub 계정이 있는 Azure 구독을 선택합니다.
      • IoT Hub – IoT Hub의 이름을 선택합니다.
    3. 저장을 선택합니다.

    4. 입력 스트림이 추가되면 유입되는 데이터 세트를 확인 또는 다운로드할 수도 있습니다. 다음 코드는 예제 이벤트에 대한 데이터를 보여 줍니다.

      {
         "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. 작업 출력을 구성합니다.

    1. Stream Analytics 작업 페이지에서 출력>추가>PostgreSQL 데이터베이스(미리 보기)를 선택합니다.

      PostgreSQL 데이터베이스 출력 선택을 보여 주는 스크린샷

    2. 다음 값으로 Azure PostgreSQL 페이지를 작성합니다.

      • 출력 별칭 - 작업 출력을 식별하는 이름을 입력합니다.
      • PostgreSQL 데이터베이스 설정을 수동으로 제공을 선택하고 서버 정규화된 도메인 이름, 데이터베이스, 테이블, 사용자 이름암호를 입력합니다. 예제 데이터 세트에서 테이블 device_data를 사용합니다.
    3. 저장을 선택합니다.

    Azure Stream Analytics에서 작업 출력 구성

  7. 변환 쿼리를 정의합니다.

    Azure Stream Analytics의 변환 쿼리

    1. Stream Analytics 작업 페이지의 왼쪽 메뉴에서 쿼리를 선택합니다.

    2. 이 자습서에서는 전체 데이터 크기를 줄이기 위해 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;
      
    3. 쿼리 저장을 선택합니다.

      참고 항목

      쿼리를 사용하여 데이터를 샘플링할 뿐만 아니라 데이터 스트림에서 원하는 특성을 추출합니다. 스트림 분석이 포함된 사용자 지정 쿼리 옵션은 데이터가 데이터베이스에 수집되기 전에 데이터를 사전 처리/변환하는 데 유용합니다.

  8. Stream Analytics 작업을 시작하고 출력을 확인합니다.

    1. 작업 개요 페이지로 돌아가서 시작을 선택합니다.

    2. 작업 시작 페이지의 작업 출력 시작 시간에서 지금을 선택한 후 시작을 선택합니다.

    3. 작업을 처음 시작하는 데까지는 시간이 걸릴 수 있지만 일단 트리거되면 데이터가 도착할 때까지 계속 실행됩니다. 몇 분 후 클러스터를 쿼리하여 로드된 데이터를 확인할 수 있습니다.

      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을 사용하여 실시간 대시보드를 만드는 방법을 알아봅니다.