Использование действия команды Фабрика данных Azure для выполнения команд управления Azure Data Explorer
Фабрика данных Azure (ADF) — это облачная служба интеграции данных, которая позволяет выполнять множество действий с данными. Используйте ADF для создания управляемых данными рабочих процессов для оркестрации и автоматизации перемещения и преобразования данных. Действие команды Azure Data Explorer в Фабрика данных Azure позволяет запускать команды управления Azure Data Explorer в рабочем процессе ADF. В этой статье описано, как создать конвейер с действием поиска и действием ForEach, содержащим действие команды Azure Data Explorer.
Необходимые компоненты
- Подписка Azure. Создайте бесплатную учетную запись Azure.
- Кластер и база данных Azure Data Explorer. Создайте кластер и базу данных.
- Источник данных.
- Фабрика данных. Создайте фабрику данных.
Создание нового конвейера
Выберите инструмент карандаша Автор.
Создайте новый конвейер, выбрав + и пункт Конвейер в раскрывающемся списке.
Создание действия поиска
С помощью действия поиска можно получить набор данных из любых источников данных, поддерживаемых Фабрикой данных Azure. Результат действия поиска можно использовать в ForEach или другом действии.
На панели Действия на вкладке Общие, выберите действие Поиск. Перетащите его на основной холст справа.
Теперь холст содержит созданное вами действие поиска. Используйте вкладки под холстом, чтобы изменить соответствующие параметры. На вкладке Общие переименуйте действие.
Совет
Щелкните пустую область холста, чтобы просмотреть свойства конвейера. Используйте вкладку Общие для переименования конвейера. Наш конвейер называется pipeline-4-docs.
Создание набора данных Azure Data Explorer в действии поиска
В разделе Параметры выберите предварительно созданный Исходный набор данных Azure Data Explorer или выберите + Создать, чтобы создать новый набор данных.
Выберите набор данных Azure Data Explorer (Kusto) в окне Создать набор данных. Нажмите кнопку Продолжить, чтобы добавить новый набор данных.
Новые параметры набора данных Azure Data Explorer отображаются в разделе Параметры. Чтобы обновить параметры, нажмите кнопку Изменить.
На основном холсте откроется новая вкладка AzureDataExplorerTable.
- Выберите Общие и измените имя набора данных.
- Выберите Соединение, чтобы изменить свойства набора данных.
- В раскрывающемся списке выберите Связанная служба или нажмите + Создать, чтобы создать новую связанную службу.
При создании новой связанной службы открывается страница Новая связанная служба (Azure Data Explorer).
- Выберите Имя для связанной службы Azure Data Explorer. При необходимости добавьте Описание.
- В разделе Подключение через среду выполнения интеграции при необходимости измените текущие параметры.
- В методе выбора учетной записи выберите кластер с помощью одного из двух методов:
- Используйте переключатель Из подписки Azure и выберите свою учетную запись Подписка Azure. Затем выберите свой Кластер. Обратите внимание, что в раскрывающемся списке будут перечислены только кластеры, принадлежащие пользователю.
- Вместо этого используйте переключатель Ввод вручную и укажите URL-адрес кластера в поле Конечная точка.
- Укажите Клиент.
- Укажите Идентификатор субъекта-службы. Это значение можно найти в портал Azure в разделе "Регистрация>приложений" (идентификатор приложения обзора>приложений). Субъект должен иметь соответствующие разрешения в соответствии с уровнем разрешений, необходимым для используемой команды.
- Нажмите кнопку Ключ субъекта-службы и введите Ключ субъекта-службы.
- Выберите свою базу данных в раскрывающемся списке. Также можно установить флажок Изменить и ввести имя своей базы данных.
- Выберите Проверить соединение, чтобы проверить созданное вами соединение связанной службы. Если подключиться к программе настройке, появится зеленая галочка Соединение выполнено успешно.
- Нажмите Готово, чтобы завершить создание связанной службы.
После настройки связанной службы в разделе Соединение>AzureDataExplorerTable добавьте имя Таблица. Выберите Предварительный просмотр данных, чтобы убедиться, что данные представлены надлежащим образом.
Теперь набор данных готов, и вы можете продолжить редактирование конвейера.
Добавление запроса в действие поиска
В разделе Параметры>pipeline-4-docs добавьте запрос в текстовом поле Запрос, например следующим образом.
ClusterQueries | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb") | summarize count() by Database
При необходимости измените свойства Время ожидания запроса или Без сокращения и Только первая строка. В этом потоке мы сохраняем значение по умолчанию Время ожидания запроса и снимаем флажки.
Создание действия For-Each
Действие For-Each используется для выполнения итерации коллекции и выполняет указанные действия в цикле.
Теперь добавьте действие For-Each в конвейер. Это действие будет обрабатывать данные, полученные с использованием действия поиска.
На панели Действия в разделе Итерация и условия выберите действие ForEach и перетащите его на холст.
Нарисуйте линию между выходными данными действия поиска и входными данными действия ForEach на холсте, чтобы соединить их.
Выберите действие ForEach на холсте. На вкладке Параметры выполните следующее.
Установите флажок Последовательно для последовательной обработки результатов поиска или оставьте снимите его, чтобы создать параллельную обработку.
Задайте Количество пакетов.
В разделе Элементы укажите следующую ссылку на выходное значение: @activity('Lookup1').output.value.
Создание действия команды Azure Data Explorer в рамках действия ForEach
Дважды щелкните действие ForEach на холсте, чтобы открыть его на новом холсте и задать действия в рамках ForEach.
На панели Действия в разделе Azure Data Explorer выберите действие Команда Azure Data Explorer и перетащите его на холст.
На вкладке Соединение выберите ту же связанную службу, созданную ранее.
На вкладке Команда введите следующую команду.
.export async compressed into csv h"http://<storageName>.blob.core.windows.net/data/ClusterQueries;<storageKey>" with ( sizeLimit=100000, namePrefix=export ) <| ClusterQueries | where Database == "@{item().Database}"
Команда указывает Azure Data Explorer экспортировать результаты заданного запроса в хранилище больших двоичных объектов в сжатом формате. Операция выполняется асинхронно (с использованием модификатора async). Запрос обращается к столбцу базы данных каждой строки результата действия поиска. Время ожидания команды можно оставить без изменений.
Примечание.
Действие команды имеет следующие ограничения.
- Ограничение размера: размер ответа 1 МБ.
- Ограничение по времени: 20 минут (по умолчанию), 1 час (максимум).
- При необходимости можно добавить запрос к результату, используя AdminThenQuery, чтобы сократить результирующий размер/время.
Теперь конвейер готов. Можно вернуться к основному представлению конвейера, щелкнув имя конвейера.
Выберите параметр Отладка перед публикацией конвейера. Ход выполнения конвейера можно отслеживать на вкладке Выходные данные.
Можно использовать параметр Опубликовать все, а затем Добавить триггер для запуска конвейера.
Выходные данные команды управления
Структура выходных данных действия команды подробно описана ниже. Эти выходные данные могут использоваться при выполнении следующего действия в конвейере.
Возвращаемое значение несинхронной команды управления
В команде управления, отличной от асинхронного управления, структура возвращаемого значения похожа на структуру результата действия подстановки. Поле count
указывает количество возвращенных записей. Поле фиксированного массива value
содержит список записей.
{
"count": "2",
"value": [
{
"ExtentId": "1b9977fe-e6cf-4cda-84f3-4a7c61f28ecd",
"ExtentSize": 1214.0,
"CompressedSize": 520.0
},
{
"ExtentId": "b897f5a3-62b0-441d-95ca-bf7a88952974",
"ExtentSize": 1114.0,
"CompressedSize": 504.0
}
]
}
Возвращаемое значение асинхронной команды управления
В асинхронной команде управления действие опрашивает таблицу операций в фоновом режиме, пока асинхронная операция не завершится или не завершится. Таким образом, возвращаемое значение будет содержать результат .show operations OperationId
для данного свойства OperationId . Проверьте значения свойств Состояние и Статус, чтобы убедиться в успешном завершении операции.
{
"count": "1",
"value": [
{
"OperationId": "910deeae-dd79-44a4-a3a2-087a90d4bb42",
"Operation": "TableSetOrAppend",
"NodeId": "",
"StartedOn": "2019-06-23T10:12:44.0371419Z",
"LastUpdatedOn": "2019-06-23T10:12:46.7871468Z",
"Duration": "00:00:02.7500049",
"State": "Completed",
"Status": "",
"RootActivityId": "f7c5aaaf-197b-4593-8ba0-e864c94c3c6f",
"ShouldRetry": false,
"Database": "MyDatabase",
"Principal": "<some principal id>",
"User": "<some User id>"
}
]
}