Создание подключения журнала данных для Azure Digital Twins

Журнал данных — это функция Azure Digital Twins для автоматического анализа обновлений графов в Обозреватель данных Azure. Эти данные можно запрашивать с помощью подключаемого модуля запросов Azure Digital Twins для azure Data Обозреватель для получения аналитических сведений о вашей среде с течением времени.

В этой статье показано, как настроить подключение к рабочему журналу данных между Azure Digital Twins и Обозреватель данных Azure. Он использует Azure CLI и портал Azure для настройки и подключения необходимых ресурсов журнала данных, в том числе:

Он также содержит пример графа двойников, который можно использовать для просмотра исправлений графа в Обозреватель данных Azure.

Совет

Хотя в этой статье используется портал Azure, вы также можете работать с журналом данных с помощью версии 2022-05-31 rest API.

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

Подготовка среды к работе с Azure CLI

  • Используйте среду 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 Cloud Shell в среде PowerShell вместо среды Bash, если вы предпочитаете. Команды на этой странице записываются для среды Bash, поэтому для выполнения некоторых небольших настроек в PowerShell могут потребоваться некоторые небольшие корректировки.

Настройка сеанса CLI

Чтобы начать работу с Azure Digital Twins в ИНТЕРФЕЙСЕ командной строки, первое, что необходимо сделать, — войти в систему и задать контекст ИНТЕРФЕЙСА командной строки в подписке для этого сеанса. Выполните следующие команды в окне КОМАНДНОй строки:

az login
az account set --subscription "<your-Azure-subscription-ID>"

Совет

В команде выше вы также можете использовать имя подписки вместо идентификатора.

Если вы впервые используете эту подписку с Azure Digital Twins, выполните эту команду, чтобы зарегистрироваться в пространстве имен Azure Digital Twins. (Если вы не уверены, то можете запустить команду снова, даже если вы уже запускали ее.)

az provider register --namespace 'Microsoft.DigitalTwins'

Затем вы добавите расширение Интернета вещей Microsoft Azure для Azure CLI, чтобы включить команды для взаимодействия с Azure Digital Twins и другими службами Интернета вещей. Выполните следующую команду, чтобы убедиться, что используется последняя версия расширения:

az extension add --upgrade --name azure-iot

Теперь вы готовы к работе с Azure Digital Twins в Azure CLI.

Это можно проверить в любой момент, выполнив команду az dt --help, чтобы вывести список доступных команд Azure Digital Twins верхнего уровня.

Настройка локальных переменных для сеанса CLI

В этой статье содержатся команды CLI, которые можно использовать для создания ресурсов журнала данных. Чтобы упростить копирование и выполнение этих команд позже, можно настроить локальные переменные в сеансе CLI, а затем ссылаться на эти переменные позже в командах CLI при создании ресурсов. Обновите заполнители (идентифицируемые <...> с скобками) в приведенных ниже командах и выполните эти команды, чтобы создать переменные. Обязательно следуйте правилам именования, описанным в комментариях. Эти значения будут использоваться позже при создании новых ресурсов.

Примечание.

Эти команды записываются для среды Bash. Их можно настроить для PowerShell, если вы предпочитаете использовать среду интерфейса командной строки PowerShell.

## General Setup
location="<your-resource-region>"
resourcegroup="<your-resource-group-name>"

## Azure Digital Twins Setup
# Instance name can contain letters, numbers, and hyphens. It must start and end with a letter or number, and be between 4 and 62 characters long.
dtname="<name-for-your-digital-twins-instance>"
# Connection name can contain letters, numbers, and hyphens. It must contain at least one letter, and be between 3 and 50 characters long.
connectionname="<name-for-your-data-history-connection>"

## Event Hub Setup
# Namespace can contain letters, numbers, and hyphens. It must start with a letter, end with a letter or number, and be between 6 and 50 characters long.
eventhubnamespace="<name-for-your-event-hub-namespace>"
# Event hub name can contain only letters, numbers, periods, hyphens and underscores. It must start and end with a letter or number.
eventhub="<name-for-your-event-hub>"

## Azure Data Explorer Setup
# Cluster name can contain only lowercase alphanumeric characters. It must start with a letter, and be between 4 and 22 characters long.
clustername="<name-for-your-cluster>"  
# Database name can contain only alphanumeric, spaces, dash and dot characters, and be up to 260 characters in length.
databasename="<name-for-your-database>"

# Enter a name for the table where relationship create and delete events will be stored.
relationshiplifecycletablename="<name-for-your-relationship-lifecycle-events-table>"
# Enter a name for the table where twin create and delete events will be stored.
twinlifecycletablename="<name-for-your-twin-lifecycle-events-table>"
# Optionally, enter a custom name for the table where twin property updates will be stored. If not provided, the table will be named AdtPropertyEvents.
twinpropertytablename="<name-for-your-twin-property-events-table>"

Создание экземпляра Azure Digital Twins с управляемым удостоверением

Если у вас уже есть экземпляр Azure Digital Twins, убедитесь, что вы включили управляемое удостоверение , назначаемое системой.

Если у вас нет экземпляра Azure Digital Twins, следуйте инструкциям в статье "Создание экземпляра с управляемым удостоверением" для создания экземпляра Azure Digital Twins с управляемым удостоверением , назначаемым системой.

Затем убедитесь, что у вас есть роль владельца данных Azure Digital Twins в экземпляре. Инструкции см. в разделе "Настройка разрешений доступа пользователей".

Если вы хотите добавить имя экземпляра в локальные переменные CLI, чтобы он автоматически подключался к последующим командам, скопированным из этой статьи, сохраните его в переменной dtname следующим образом:

dtname="<name-of-your-instance>"

Создание пространства имен Центров событий и концентратора событий

Следующим шагом является создание пространства имен Центров событий и концентратора событий. Этот концентратор получит уведомления о жизненном цикле графа и обновлении свойств из экземпляра Azure Digital Twins, а затем перенаправит сообщения в целевой кластер данных Azure Обозреватель.

В рамках настройки подключения к журналу данных позже вы предоставьте экземпляру Azure Digital Twins роль владельца данных Центры событий Azure в ресурсе концентратора событий.

Дополнительные сведения о центрах событий и их возможностях см. в документации по Центрам событий.

Примечание.

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

Чтобы создать необходимые ресурсы, используйте следующие команды CLI. Команды используют несколько локальных переменных ($location, $resourcegroup, $eventhubnamespaceи $eventhub) созданных ранее при настройке локальных переменных для сеанса CLI.

Создайте пространство имен Центров событий:

az eventhubs namespace create --name $eventhubnamespace --resource-group $resourcegroup --location $location

Создайте концентратор событий в пространстве имен:

az eventhubs eventhub create --name $eventhub --resource-group $resourcegroup --namespace-name $eventhubnamespace

Создание кластера и базы данных Kusto (Azure Data Обозреватель)

Затем создайте кластер Kusto (Azure Data Обозреватель) и базу данных для получения данных из Azure Digital Twins.

В рамках настройки подключения к журналу данных позже вы предоставите экземпляр Azure Digital Twins роль участника по крайней мере для базы данных (ее также можно область в кластере), а также роль Администратор в базе данных.

Важно!

Убедитесь, что кластер имеет доступ к общедоступной сети. Если в кластере данных Azure Обозреватель отключен доступ к общедоступной сети, Azure Digital Twins не сможет настроить таблицы и другие необходимые артефакты, а настройка журнала данных завершится ошибкой.

Чтобы создать необходимые ресурсы, используйте следующие команды CLI. Команды используют несколько локальных переменных ($location, $resourcegroup, $clusternameи $databasename) созданных ранее при настройке локальных переменных для сеанса CLI.

Начните с добавления расширения Kusto в сеанс CLI, если у вас еще нет.

az extension add --name kusto

Затем создайте кластер Kusto. Для выполнения следующей команды требуется 5–10 минут и будет создан кластер E2a версии 4 на уровне разработчика. Этот тип кластера имеет один узел для подсистемы и кластера управления данными и применяется для сценариев разработки и тестирования. Дополнительные сведения о уровнях в azure Data Обозреватель и о том, как выбрать правильные параметры рабочей рабочей нагрузки, см. в статье "Выбор правильного номера SKU вычислений для кластера Обозреватель данных Azure" и цен на данные Azure Обозреватель.

az kusto cluster create --cluster-name $clustername --sku name="Dev(No SLA)_Standard_E2a_v4" tier="Basic" --resource-group $resourcegroup --location $location --type SystemAssigned

Создайте базу данных в новом кластере Kusto (используя имя кластера выше и в том же расположении). Эта база данных будет использоваться для хранения контекстных данных Azure Digital Twins. Следующая команда создает базу данных с периодом обратимого удаления 365 дней и периодом горячего кэша 31 дней. Дополнительные сведения о параметрах, доступных для этой команды, см. в статье az kusto database create.

az kusto database create --cluster-name $clustername --database-name $databasename --resource-group $resourcegroup --read-write-database soft-delete-period=P365D hot-cache-period=P31D location=$location

Настройка подключения журнала данных

Теперь, когда вы создали необходимые ресурсы, используйте команду в этом разделе, чтобы создать подключение журнала данных между экземпляром Azure Digital Twins, концентратором событий и кластером Azure Data Обозреватель.

Эта команда также создаст три таблицы в базе данных Azure Data Обозреватель для хранения обновлений свойств двойника, событий жизненного цикла двойника и событий жизненного цикла связи соответственно. Дополнительные сведения об этих типах данных и их соответствующих таблицах Обозреватель данных Azure см. в разделе "Типы данных и схемы".

Используйте команду в этом разделе, чтобы создать подключение журнала данных и таблицы в Обозреватель данных Azure. Команда всегда создает таблицу для событий свойства двойника, а также включает параметры для создания таблиц для событий жизненного цикла отношений и жизненного цикла двойников.

Примечание.

По умолчанию эта команда предполагает, что все ресурсы находятся в той же группе ресурсов, что и экземпляр Azure Digital Twins. Ресурсы, которые находятся в разных группах ресурсов, можно указать с помощью параметров для этой команды.

В приведенной ниже команде используются локальные переменные, созданные ранее при настройке локальных переменных для сеанса CLI, а также несколько параметров, включая...

  • Имена таблиц жизненного цикла отношений и жизненных циклов двойников в Azure Data Обозреватель (эти параметры необязательны, если вы не хотите инициализировать эти типы событий, но требуется, если вы хотите инициализировать эти типы событий).
  • Необязательный параметр, указывающий имя таблицы событий свойства двойника (если это значение не указано, эта таблица будет называться AdtPropertyEvents по умолчанию). Если вы не хотите указать другое имя, удалите --adx-property-events-table параметр из команды перед его выполнением.
  • Необязательный параметр --adx-record-removals для включения историзации для удаления свойств двойника (события, которые полностью удаляют свойства)
az dt data-history connection create adx --dt-name $dtname --cn $connectionname --adx-cluster-name $clustername --adx-database-name $databasename --eventhub $eventhub --eventhub-namespace $eventhubnamespace --adx-property-events-table $twinpropertytablename --adx-twin-events-table $twinlifecycletablename --adx-relationship-events-table $relationshiplifecycletablename --adx-record-removals true

При выполнении приведенной выше команды вы сможете назначить необходимые разрешения, необходимые для настройки подключения журнала данных от вашего имени (если вы уже назначили необходимые разрешения, можно пропустить эти запросы). Эти разрешения предоставляются управляемому удостоверению экземпляра Azure Digital Twins. Минимальные обязательные роли:

  • Центры событий Azure владелец данных в концентраторе событий
  • Участник область по крайней мере в указанную базу данных (ее также можно область в кластер).
  • Назначение субъекта базы данных с Администратор роли (для создания таблиц и управления) область в указанную базу данных

Для обычной операции плоскости данных эти роли можно сократить до одной Центры событий Azure роли отправителя данных, если это необходимо.

После настройки подключения к журналу данных можно также удалить роли, предоставленные экземпляру Azure Digital Twins для доступа к центрам событий и ресурсам Azure Data Обозреватель. Чтобы использовать журнал данных, единственная роль, которую требуется выполнить, — это Центры событий Azure отправителю данных (или более поздней роли, которая включает эти разрешения, например Центры событий Azure владельца данных) в ресурсе Центров событий.

Примечание.

После настройки подключения параметры по умолчанию в кластере данных Azure Обозреватель приведут к задержке приема примерно 10 минут или меньше. Эту задержку можно уменьшить, включив прием потоковой передачи (менее 10 секунд задержки) или политику пакетного приема. Дополнительные сведения о задержке приема данных Azure Обозреватель см. в разделе "Сквозная задержка приема".

Ограничение сетевого доступа к ресурсам журнала данных

Если вы хотите ограничить сетевой доступ к ресурсам, участвующим в журнале данных (экземпляр Azure Digital Twins, концентратор событий или кластер Azure Data Обозреватель), необходимо задать эти ограничения после настройки подключения к журналу данных. Это включает отключение локального доступа для ваших ресурсов, а также другие меры по сокращению сетевого доступа.

Чтобы убедиться, что ресурсы журнала данных могут взаимодействовать друг с другом, необходимо также изменить подключение к данным для базы данных Azure Обозреватель, чтобы использовать управляемое удостоверение, назначаемое системой.

Выполните приведенные ниже действия, чтобы убедиться, что подключение к журналу данных настроено правильно, когда ресурсы нуждаются в сниженном сетевом доступе.

  1. Убедитесь, что локальная авторизация включена в ресурсах журнала данных (экземпляр Azure Digital Twins, концентратор событий и кластер Azure Data Обозреватель)
  2. Создание подключения к журналу данных
  3. Обновите подключение к данным для базы данных Azure Обозреватель, чтобы использовать управляемое удостоверение, назначаемое системой. В портал Azure это можно сделать, перейдя к кластеру Обозреватель данных Azure и используя базы данных в меню для перехода к базе данных журнала данных. В меню базы данных выберите подключения к данным. В записи таблицы для подключения к журналу данных вы увидите параметр "Назначить управляемое удостоверение", где можно выбрать назначенную системой систему. Screenshot of the option to assign a managed identity to a data connection in the Azure portal.
  4. Теперь вы можете отключить локальную авторизацию или задать другие ограничения сети для нужных ресурсов, изменив параметры доступа в экземпляре Azure Digital Twins, концентраторе событий или кластере Azure Data Обозреватель.

Устранение неполадок при настройке подключения

Ниже приведены некоторые распространенные ошибки, которые могут возникнуть при настройке подключения к журналу данных и их устранении.

  • Если у вас отключен доступ к общедоступной сети для кластера azure Data Обозреватель, возникла ошибка, из-за которой служба не смогла создать подключение к журналу данных, с сообщением "Ресурс не мог ACT из-за внутренней ошибки сервера". Настройка журнала данных завершится ошибкой, если кластер azure Data Обозреватель отключен доступ к общедоступной сети, так как Azure Digital Twins не сможет настроить таблицы и другие необходимые артефакты.
  • (Пользователи CLI) Если возникла ошибка "Не удалось создать подключение экземпляра Azure Digital Twins. Не удалось создать таблицу и правило сопоставления в базе данных. Проверьте разрешения для Обозреватель базы данных Azure и выполните az login обновление учетных данных", устранив ошибку, добавив себя в качестве AllDatabases Администратор в разделе "Разрешения" в кластере Обозреватель данных Azure.
  • (Пользователи Cloud Shell) Если вы используете Cloud Shell и столкнулись с ошибкой "Не удалось подключиться к MSI. Убедитесь, что MSI настроен правильно", попробуйте выполнить команду с локальной установкой Azure CLI.

Проверка с помощью примера графа двойников

Теперь, когда настроено подключение к журналу данных, вы можете протестировать его с данными из цифровых двойников.

Если у вас уже есть двойники в экземпляре Azure Digital Twins, которые активно получают обновления графа (включая обновления свойств двойников или обновления, изменяя структуру графа, создавая или удаляя элементы), можно пропустить этот раздел и визуализировать результаты с помощью собственных ресурсов.

В противном случае перейдите к этому разделу, чтобы настроить пример графа, который будет проходить события жизненного цикла двойников и отношений и создавать обновления свойств двойника.

Пример графа для этого сценария можно настроить с помощью симулятора данных Azure Digital Twins. Симулятор данных Azure Digital Twins создает двойники и связи в экземпляре Azure Digital Twins и постоянно отправляет обновления свойств двойникам.

Создание примера графа

Симулятор данных Azure Digital Twins можно использовать для подготовки примера графа двойников и отправки обновлений свойств. Граф двойников, созданный здесь, моделирует процессы пастеризации для молочной компании.

Начните с открытия симулятора данных Azure Digital Twins в браузере. Задайте следующие поля:

  • URL-адрес экземпляра: введите имя узла экземпляра Azure Digital Twins. Имя узла можно найти на странице портала для экземпляра и имеет такой <Azure-Digital-Twins-instance-name>.api.<region-code>.digitaltwins.azure.netформат.
  • Тип моделирования: выберите молочный объект в раскрывающемся меню.

Выберите "Создать среду".

Screenshot of the Azure Digital Twins Data simulator.

В вашей среде отображаются сообщения подтверждения на экране в виде моделей, двойников и связей. Это также создаст события создания двойников и связей, которые будут инициализированы в Azure Data Обозреватель в качестве событий жизненного цикла двойников и связей соответственно.

Когда имитация будет готова, кнопка "Запуск имитации " будет включена. Прокрутите вниз и выберите "Запустить имитацию" , чтобы отправить имитированные данные в экземпляр Azure Digital Twins. Чтобы непрерывно обновлять двойники в экземпляре Azure Digital Twins, сохраните это окно браузера на переднем плане на рабочем столе и выполните другие действия браузера в отдельном окне. Это приведет к непрерывному созданию событий обновления свойств двойника, которые будут инициализированы в Обозреватель данных Azure.

Просмотр историзированных обновлений в Обозреватель данных Azure

В этом разделе показано, как просмотреть все три типа историзированных обновлений, созданных симулятором и хранящихся в таблицах Обозреватель данных Azure.

Запустите портал Azure и перейдите к кластеру Azure Data Обозреватель, созданному ранее. Выберите область "Базы данных" в меню слева, чтобы открыть представление базы данных. Найдите базу данных, созданную для этой статьи, и выберите проверка box рядом с ней, а затем нажмите кнопку "Запрос".

Screenshot of the Azure portal showing a database in an Azure Data Explorer cluster.

Затем разверните кластер и базу данных в левой области, чтобы просмотреть имя таблиц журнала данных. Должно быть три: один для событий жизненного цикла связи, один для событий жизненного цикла двойника и один для событий обновления свойств двойника. Эти имена таблиц будут использоваться для выполнения запросов к таблицам для проверки и просмотра и анализа данных.

Screenshot of the Azure portal showing the query view for the database. The name of the data history table is highlighted.

Проверка записей таблицы

Чтобы убедиться, что события в базу данных инициализированы, начните с копирования следующей команды. Он имеет заполнитель для имени таблицы событий жизненного цикла отношений, и он изменит прием таблицы на пакетный режим, чтобы он прием данных из динамического моделирования каждые 10 секунд.

.alter table <relationship-lifecycle-events-table-name> policy ingestionbatching @'{"MaximumBatchingTimeSpan":"00:00:10", "MaximumNumberOfItems": 500, "MaximumRawDataSizeMB": 1024}'

Вставьте команду в окно запроса, заменив заполнитель именем таблицы событий отношений. Нажмите кнопку "Выполнить", чтобы выполнить команду.

Screenshot of the Azure portal showing the query view for the database. The Run button is highlighted.

Повторите команду еще два раза, используя имя таблицы событий жизненного цикла двойника, а затем таблицу обновления свойств для обновления режима приема других таблиц.

Затем добавьте следующие команды в окно запроса и запустите их. Каждая команда содержит заполнитель для имени одной из таблиц, и команды будут выводить количество элементов в таблицах.

Примечание.

Для появления первого пакета приема данных может потребоваться до 5 минут.

<relationship-lifecycle-events-table-name>
| count

<twin-lifecycle-events-table-name>
| count

<twin-property-updates-table-name>
| count

Вы должны увидеть в результатах, что количество элементов в каждой таблице больше 0, указывая на то, что жизненный цикл отношений, жизненный цикл двойника и события обновления свойств выполняются в соответствующие таблицы.

Изучение таблицы обновлений свойств двойника

В этом разделе вы узнаете больше об обновлении данных свойства двойника, которые содержатся в таблице.

Сначала выполните следующую команду, чтобы просмотреть 100 записей в таблице:

<twin-property-updates-table-name>
| limit 100

Затем запустите запрос на основе данных двойников, чтобы просмотреть контекстные данные временных рядов.

Используйте приведенный ниже запрос, чтобы заметить поток всех двойников соляной машины в образце фабрики молочных продуктов Осло. Этот запрос Kusto использует подключаемый модуль Azure Digital Twins для выбора интересующих двойников, присоединяет эти двойники к временным рядам журнала данных в Azure Data Обозреватель, а затем выводит результаты. Обязательно замените <ADT-instance-host-name> заполнитель именем узла экземпляра, а <table-name> заполнитель именем таблицы событий свойств двойника.

let ADTendpoint = "https://<ADT-instance-host-name>";
let ADTquery = ```SELECT SALT_MACHINE.$dtId as tid
FROM DIGITALTWINS FACTORY 
JOIN SALT_MACHINE RELATED FACTORY.contains 
WHERE FACTORY.$dtId = 'OsloFactory'
AND IS_OF_MODEL(SALT_MACHINE , 'dtmi:assetGen:SaltMachine;1')```;
evaluate azure_digital_twins_query_request(ADTendpoint, ADTquery)
| extend Id = tostring(tid)
| join kind=inner (<table-name>) on Id
| extend val_double = todouble(Value)
| where Key == "OutFlow"
| render timechart with (ycolumns = val_double)

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

Screenshot of the Azure portal showing the query view for the database.

Устранение неполадок подключения

Если данные не отображаются в Azure Data Обозреватель, поток данных анализа не работает должным образом. Эту проблему можно изучить, просмотрев пространство имен Центров событий в портал Azure, в котором отображаются диаграммы, показывающие поток сообщений в пространство имен и из него. Это позволит проверить поток входящих сообщений из Azure Digital Twins и исходящих сообщений в Azure Data Обозреватель, чтобы определить, какая часть потока не работает.

Screenshot of the Azure portal showing an Event Hubs namespace for the simulated environment.

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

Чтобы продолжить изучение молочного сценария, вы можете просмотреть дополнительные примеры запросов на GitHub , которые показывают, как можно отслеживать производительность молочных операций на основе типа машины, фабрики, технического специалиста и различных сочетаний этих параметров.

Чтобы создать панели мониторинга Grafana, которые визуализируют производительность молочной операции, прочитайте статью "Создание панелей мониторинга с помощью Azure Digital Twins", "Данные Azure" Обозреватель и Grafana.

Дополнительные сведения об использовании подключаемого модуля запросов Azure Digital Twins для Обозреватель данных Azure см. в статье "Запросы с помощью подключаемого модуля Обозреватель данных Azure" и этой записи блога. Дополнительные сведения о подключаемом модуле см. здесь: запросы с помощью подключаемого модуля azure Data Обозреватель.