Краткое руководство: экспорт данных из приложения IoT Central

В этом кратком руководстве описана настройка приложения IoT Central для экспорта данных Azure Data Обозреватель. Azure Data Explorer позволяет хранить, запрашивать и обрабатывать данные телеметрии с устройств, таких как смартфон с приложением IoT Plug and Play.

В этом кратком руководстве вы:

  • Используйте функцию экспорта данных в IoT Central для телеметрии из приложения смартфона в базу данных Azure Data Обозреватель.
  • Использование Azure Data Explorer для выполнения запросов к данным телеметрии.

Выполнение этого краткого руководства повлечет за собой небольшую стоимость в учетной записи Azure для экземпляра Обозреватель данных Azure. Первые два устройства в приложении IoT Central бесплатны.

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Установка служб Azure

Для экспорта данных из приложения IoT Central вам потребуется кластер и база данных Azure Data Explorer. В этом кратком руководстве вы запускаете скрипт bash в Azure Cloud Shell для создания и настройки.

Этот скрипт выполняет перечисленные ниже действия.

  • Запрашивает вход в подписку Azure, чтобы он смог создать маркер носителя для проверки подлинности вызовов REST API.
  • Создает кластер и базу данных azure Data Обозреватель.
  • Создает управляемое удостоверение для приложения IoT Central.
  • Настраивает управляемое удостоверение с разрешением на доступ к базе данных Azure Обозреватель.
  • Добавляет таблицу в базу данных для хранения входящих данных телеметрии из 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 Обозреватель. Имя кластера может содержать только строчные буквы и цифры. Длина имени кластера должна составлять от 4 до 22 символов.
  • Замените CENTRAL_URL_PREFIX префикс URL-адреса, выбранный в первом кратком руководстве для приложения IoT Central.
  • При появлении запроса следуйте инструкциям для входа в учетную запись. Для входа в скрипт необходимо выполнить вход, так как он создает маркер носителя для проверки подлинности вызова REST API.
./createADX.sh CLUSTER_NAME CENTRAL_URL_PREFIX

Внимание

Этот скрипт может занять от 20 до 30 минут.

Запишите выходные данные azure data Обозреватель URL-адрес скриптом. Это значение понадобится позже в рамках этого краткого руководства.

Настройка экспорта данных

Чтобы настроить место назначения экспорта данных из IoT Central, сделайте следующее:

  1. Перейдите на страницу Экспорт данных в приложении IoT Central.
  2. Откройте вкладку Назначения и выберите Добавить назначение.
  3. В качестве имени места назначения введите Azure Data Explorer. В качестве типа места назначения выберите Azure Data Explorer.
  4. В поле URL-адрес кластера введите URL-адрес Azure Data Explorer, который вы записали ранее.
  5. В поле Имя базы данных введите phonedata.
  6. В окне Имя таблицы введите acceleration.
  7. В авторизации выберите управляемое удостоверение, назначаемое системой.
  8. Выберите Сохранить.

Чтобы настроить экспорт данных, сделайте следующее:

  1. На странице Экспорт данных откройте вкладку Операции экспорта и выберите Добавить экспорт.

  2. В качестве имени экспорта введите Phone accelerometer.

  3. В качестве типа данных для экспорта выберите Данные телеметрии.

  4. Добавьте два фильтра, используя сведения из следующей таблицы:

    Имя. Оператор Значение
    Шаблон устройства Равно IoT Plug and Play mobile
    Sensors/Acceleration/X Exists Н/П

    Убедитесь, что, если все условия имеют значение true, выбран параметр экспорта данных.

  5. Добавьте в качестве места назначения Azure Data Explorer.

  6. Добавьте преобразование данных к назначению. Добавьте в поле 2. Build transformation query (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": "40a97c91-50cc-44f0-9f63-71386613facc",
      "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. Сохраните преобразование. Затем сохраните определение экспорта данных.

Подождите, пока для экспорта отобразится состояние Healthy (Работоспособное):

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

Запросы к экспортированным данным

Чтобы запросить экспортированные данные телеметрии, выполните следующие действия.

  1. Используйте выходные данные URL-адреса данных Azure Обозреватель скриптом, который вы выполнили ранее, чтобы перейти в среду Обозреватель данных Azure.

  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 Обозреватель из подписки и избежать необходимости выставления счетов, удалите группу ресурсов IoTCentralExportData-rg из портал Azure или выполните следующую команду в Azure Cloud Shell:

az group delete --name IoTCentralExportData-rg

Следующий шаг

В этом кратком руководстве вы узнали, как настроить непрерывный экспорт данных из IoT Central в другую службу Azure.

Теперь, когда вы знаете, как экспортировать данные, рекомендуется выполнить такой следующий шаг: