Создание подключения к данным концентратора событий для обозревателя данных Azure с помощью Python

Обозреватель данных Azure — это быстрая и высокомасштабируемая служба для изучения данных журналов и телеметрии. Azure Data Explorer позволяет принимать (загружать) данные из Центров событий, Центра Интернета вещей и больших двоичных объектов, записанных в контейнеры больших двоичных объектов.

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

Предварительные требования

Установка пакета Python

Чтобы установить пакет Python для Azure Data Explorer (Kusto), откройте окно командной строки с Python в пути. Выполните следующую команду:

pip install azure-common
pip install azure-mgmt-kusto

Аутентификация

Для выполнения приведенного ниже примера вам потребуется приложение Azure Active Directory (Azure AD) и субъект-служба с доступом к ресурсам. Чтобы создать бесплатное приложение Azure AD и добавить назначение ролей на уровне подписки, см. сведения о создании приложения Azure AD. Вам также потребуется идентификатор каталога (клиента), идентификатор приложения и секрет клиента.

Добавление подключения к данным концентратора событий

В следующем примере показано, как программно добавить подключение к данным концентратора событий. См. раздел Подключение к концентратору событий для добавления подключения к данным концентратора событий с помощью портала Azure.

from azure.mgmt.kusto import KustoManagementClient
from azure.mgmt.kusto.models import EventHubDataConnection
from azure.common.credentials import ServicePrincipalCredentials

#Directory (tenant) ID
tenant_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
#Application ID
client_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
#Client Secret
client_secret = "xxxxxxxxxxxxxx"
subscription_id = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"
credentials = ServicePrincipalCredentials(
        client_id=client_id,
        secret=client_secret,
        tenant=tenant_id
    )
kusto_management_client = KustoManagementClient(credentials, subscription_id)

resource_group_name = "testrg"
#The cluster and database that are created as part of the Prerequisites
cluster_name = "mykustocluster"
database_name = "mykustodatabase"
data_connection_name = "myeventhubconnect"
#The event hub that is created as part of the Prerequisites
event_hub_resource_id = "/subscriptions/xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx/resourceGroups/xxxxxx/providers/Microsoft.EventHub/namespaces/xxxxxx/eventhubs/xxxxxx";
consumer_group = "$Default"
location = "Central US"
#The table and column mapping that are created as part of the Prerequisites
table_name = "StormEvents"
mapping_rule_name = "StormEvents_CSV_Mapping"
data_format = "csv"
#Returns an instance of LROPoller, check https://docs.microsoft.com/python/api/msrest/msrest.polling.lropoller?view=azure-python
poller = kusto_management_client.data_connections.create_or_update(resource_group_name=resource_group_name, cluster_name=cluster_name, database_name=database_name, data_connection_name=data_connection_name,
                                        parameters=EventHubDataConnection(event_hub_resource_id=event_hub_resource_id, consumer_group=consumer_group, location=location,
                                                                            table_name=table_name, mapping_rule_name=mapping_rule_name, data_format=data_format))
Параметр Рекомендуемое значение Описание поля
tenant_id xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента. Также известен как идентификатор каталога.
subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор подписки, используемой для создания ресурсов.
client_id xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента приложения, которое имеет доступ к ресурсам в клиенте.
client_secret xxxxxxxxxxxxxx Секрет клиента приложения, которое имеет доступ к ресурсам в клиенте.
resource_group_name testrg Имя группы ресурсов, содержащей ваш кластер.
cluster_name mykustocluster Имя вашего кластера.
database_name mykustodatabase Имя целевой базы данных в вашем кластере.
data_connection_name myeventhubconnect Необходимое имя вашего подключения для передачи данных.
имя_таблицы StormEvents Имя целевой таблицы в целевой базе данных.
mapping_rule_name StormEvents_CSV_Mapping Имя сопоставления столбцов, связанного с целевой таблицей.
data_format csv Формат данных сообщения.
event_hub_resource_id Идентификатор ресурса Идентификатор ресурса вашего концентратора событий, в котором хранятся данные для приема.
consumer_group $Default Группа потребителей вашего Концентратора событий.
location Центральная часть США Расположение ресурса подключения к данным.

Очистка ресурсов

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

kusto_management_client.data_connections.delete(resource_group_name=resource_group_name, cluster_name=kusto_cluster_name, database_name=kusto_database_name, data_connection_name=kusto_data_connection_name)