다음을 통해 공유


빠른 시작 - IoT Central 애플리케이션에서 데이터 내보내기

이 빠른 시작에서는 데이터 Azure Data Explorer를 내보내도록 IoT Central 애플리케이션을 구성합니다. Azure Data Explorer를 사용하면 IoT 플러그 앤 플레이 스마트폰 앱과 같은 디바이스에서 원격 분석을 저장, 쿼리 및 처리할 수 있습니다.

이 빠른 시작에서 관련 정보는 다음과 같습니다.

  • IoT Central의 데이터 내보내기 기능을 사용하여 스마트폰 앱에서 Azure Data Explorer 데이터베이스로의 원격 분석을 수행합니다.
  • Azure Data Explorer를 사용하여 원격 분석에서 쿼리를 실행합니다.

이 빠른 시작을 완료하면 Azure Data Explorer 인스턴스에 대한 Azure 계정에 약간의 비용이 발생합니다. IoT Central 애플리케이션의 처음 두 디바이스는 무료입니다.

필수 조건

Azure 서비스 설치

IoT Central 애플리케이션에서 데이터를 내보내려면 먼저 Azure Data Explorer 클러스터 및 데이터베이스가 필요합니다. 이 빠른 시작에서는 Azure Cloud Shell에서 bash 스크립트를 실행하여 만들고 구성합니다.

스크립트는 다음 단계를 완료합니다.

  • REST API 호출을 인증하기 위해 전달자 토큰을 생성할 수 있도록 Azure 구독에 로그인하라는 메시지를 표시합니다.
  • Azure Data Explorer 클러스터 및 데이터베이스를 만듭니다.
  • IoT Central 애플리케이션에 대한 관리 ID를 만듭니다.
  • Azure Data Explorer 데이터베이스에 액세스할 수 있는 권한으로 관리 ID를 구성합니다.
  • IoT Central에서 들어오는 원격 분석을 저장하기 위해 데이터베이스에 테이블을 추가합니다.

다음 명령을 실행하여 Azure Cloud Shell 환경에 스크립트를 다운로드합니다.

wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/quickstart-cde/createADX.sh
chmod u+x createADX.sh

다음 명령을 사용하여 스크립트를 실행합니다.

  • CLUSTER_NAME을 Azure Data Explorer 클러스터의 고유한 이름으로 바꿉니다. 클러스터 이름은 소문자와 숫자만 포함할 수 있습니다. 클러스터 이름의 길이는 4~22자 사이여야 합니다.
  • CENTRAL_URL_PREFIX를 IoT Central 애플리케이션의 첫 번째 빠른 시작에서 선택한 URL 접두사로 바꿉니다.
  • 메시지가 표시되면 지침에 따라 계정에 로그인합니다. 스크립트는 REST API 호출을 인증하기 위해 전달자 토큰을 생성하기 때문에 로그인하는 데 필요합니다.
./createADX.sh CLUSTER_NAME CENTRAL_URL_PREFIX

Important

이 스크립트를 실행하는 데 20~30분이 소요될 수 있습니다.

스크립트에서 출력한 Azure Data Explorer URL을 기록해 둡니다. 이 값은 빠른 시작의 뒷부분에서 사용합니다.

데이터 내보내기 구성

IoT Central에서 데이터 내보내기 대상을 구성하려면 다음을 수행합니다.

  1. IoT Central 애플리케이션에서 데이터 내보내기 페이지로 이동합니다.
  2. 대상 탭을 선택한 다음, 대상 추가를 선택합니다.
  3. 대상 이름으로 Azure Data Explorer를 입력합니다. 대상 유형으로 Azure Data Explorer를 선택합니다.
  4. 클러스터 URL에서 이전에 적어 둔 Azure Data Explorer URL을 입력합니다.
  5. 데이터베이스 이름에서 phonedata를 입력합니다.
  6. 테이블 이름에서 acceleration을 입력합니다.
  7. 권한 부여에서 시스템 할당 관리 ID를 선택합니다.
  8. 저장을 선택합니다.

데이터 내보내기를 구성하려면 다음을 수행합니다.

  1. 데이터 내보내기 페이지에서 내보내기 탭을 선택한 다음, 내보내기 추가를 선택합니다.

  2. 내보내기 이름으로 전화 가속도계를 입력합니다.

  3. 내보낼 데이터 유형으로 원격 분석을 선택합니다.

  4. 다음 표의 정보를 사용하여 두 개의 필터를 추가합니다.

    이름 연산자
    디바이스 템플릿 같음 IoT 플러그 앤 플레이 모바일
    센서/가속/X Exists 해당 없음

    모든 조건이 true인 경우 데이터를 내보내는 옵션이 설정되어 있는지 확인합니다.

  5. 대상으로 Azure Data Explorer를 추가합니다.

  6. 데이터 변환을 대상에 추가합니다. 다음 쿼리를 데이터 변환 페이지2. 변환 쿼리 작성 필드에 추가합니다.

    import "iotc" as iotc;
    {
        Device: .device.id,
        EnqueuedTime: .enqueuedTime,
        X: .telemetry | iotc::find(.name == "accelerometer").value.x,
        Y: .telemetry | iotc::find(.name == "accelerometer").value.y,
        Z: .telemetry | iotc::find(.name == "accelerometer").value.z
    }
    

    Screenshot that shows the data transformation query for the export.

    변환이 작동하는 방식을 확인하고 쿼리를 실험하려면 다음 샘플 원격 분석 메시지를 1에 붙여넣 습니다. 입력 메시지를 추가합니다.

    {
      "messageProperties": {},
      "device": {
        "id": "8hltz8xa7n",
        "properties": {
          "reported": []
        },
        "approved": true,
        "types": [],
        "name": "8hltz8xa7n",
        "simulated": false,
        "provisioned": true,
        "modules": [],
        "templateId": "urn:modelDefinition:vlcd3zvzdm:y425jkkpqzeu",
        "templateName": "IoT Plug and Play mobile",
        "organizations": [],
        "cloudProperties": [],
        "blocked": false
      },
      "component": "sensors",
      "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "messageSource": "telemetry",
      "telemetry": [
        {
          "id": "dtmi:azureiot:PhoneSensors:__accelerometer;1",
          "name": "accelerometer",
          "value": {
            "x": 0.09960123896598816,
            "y": 0.09541380405426025,
            "z": 9.907781600952148
          }
        }
      ],
      "enqueuedTime": "2021-11-12T10:01:30.588Z",
      "enrichments": {}
    }
    
  7. 변환을 저장합니다. 그런 다음, 데이터 내보내기 정의를 저장합니다.

내보내기 상태가 정상으로 표시될 때까지 기다립니다.

Screenshot that shows a running data export with the healthy status.

내보낸 데이터 쿼리

내보낸 원격 분석을 쿼리하려면:

  1. 이전에 실행한 스크립트의 Azure Data Explorer URL 출력을 사용하여 Azure Data Explorer 환경으로 이동합니다.

  2. 클러스터 노드를 펼치고, phonedata 데이터베이스를 선택합니다. 쿼리 창의 범위가 Scope:yourclustername.eastus/phonedata로 변경됩니다.

  3. Azure Data Explorer에서 새 탭을 열고, 다음 Kusto 쿼리를 붙여넣은 다음, 실행을 선택하여 가속도계 원격 분석을 표시합니다.

['acceleration'] 
    | project EnqueuedTime, Device, X, Y, Z
    | render timechart 

충분한 데이터를 수집하려면 몇 분 정도 기다려야 할 수 있습니다. 원격 분석 값이 변경되는 것을 보려면 휴대폰을 다른 방향으로 유지해 보세요.

Screenshot of the query results for the accelerometer telemetry.

리소스 정리

더 이상 IoT Central 빠른 시작 또는 자습서를 완료할 계획이 없는 경우 IoT Central 애플리케이션을 삭제할 수 있습니다.

  1. IoT Central 애플리케이션에서 애플리케이션 > 관리로 이동합니다.
  2. 삭제를 클릭한 다음, 작업을 확인합니다.

구독에서 Azure Data Explorer 인스턴스를 제거하고 불필요하게 청구되지 않도록 하려면 Azure Portal에서 IoTCentralExportData-rg 리소스 그룹을 삭제하거나 Azure Cloud Shell에서 다음 명령을 실행합니다.

az group delete --name IoTCentralExportData-rg

다음 단계

이 빠른 시작에서는 IoT Central에서 다른 Azure 서비스로 데이터를 지속적으로 내보내는 방법을 배웠습니다.

이제 데이터를 내보내는 방법을 파악했으므로 제안하는 다음 단계는 다음과 같습니다.