Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Фабрика данных Azure (ADF) — это облачная служба интеграции данных, которую можно использовать для выполнения сочетания действий по данным. Используйте ADF для создания управляемых данными рабочих процессов для оркестрации и автоматизации перемещения и преобразования данных. Действие Azure Data Explorer Command в Azure Data Factory позволяет запускать управляющие команды Azure Data Explorer в рабочем процессе ADF. В этой статье показано, как создать конвейер с действием поиска и действием ForEach, содержащим действие команды для Azure Data Explorer.
Предварительные условия
- Подписка Azure. Создайте бесплатную учетную запись Azure.
- Кластер и база данных Azure Data Explorer. Создайте кластер и базу данных.
- Источник данных.
- Фабрика данных. Создайте фабрику данных.
Создание нового конвейера
Выберите инструмент карандаша Автор.
Создайте новый конвейер, выбрав + и выбрав "Конвейер " в раскрывающемся списке.
Создание действия поиска
Действие подстановки может получить набор данных из любого источника данных, поддерживаемого Azure Data Factory. Выходные данные подстановочной операции можно использовать в операции 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. Затем выберите свой Кластер. В раскрывающемся списке перечислены только кластеры, принадлежащие вам.
- Вместо этого выберите радиокнопку Ввод вручную и введите ваш Endpoint (URL-адрес кластера).
- Укажите Арендатор.
- Укажите Идентификатор основного компонента службы. Найдите это значение на портале Azure в разделе Регистрация приложений>Общие сведения>ID приложения (клиента). Пользователь должен иметь адекватные разрешения, необходимые для уровня доступа, требуемого командой.
- Нажмите кнопку Ключ учетной записи службы и введите Ключ учетной записи службы.
- Выберите свою базу данных в раскрывающемся списке. Также можно установить флажок Изменить и ввести имя своей базы данных.
- Выберите Проверить соединение, чтобы проверить созданное вами соединение связанной службы. Если вы можете подключиться к конфигурации, появится зелёная галочка Соединение успешно.
- Нажмите Готово, чтобы завершить создание связанной службы.
После настройки связанной службы в AzureDataExplorerTable>Connection добавьте имя Table. Выберите Предварительный просмотр данных, чтобы убедиться, что данные представлены надлежащим образом.
Набор данных готов, и вы можете продолжить редактирование конвейера.
Добавьте запрос в вашу активность поиска
В pipeline-4-docs>Settings добавьте запрос в текстовое поле Query, например:
ClusterQueries | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb") | summarize count() by DatabaseПри необходимости измените свойства Время ожидания запроса или Без сокращения и Только первая строка. В этом потоке сохраните время ожидания запроса по умолчанию и снимите флажки.
Создайте действие Для каждого
Используйте действие For-Each для итерации по коллекции и выполнения указанных действий в цикле.
Добавьте в конвейер действие For-Each. Эта активность обрабатывает данные, полученные из активности поиска.
В области "Действия " в разделе "Итерация" и "Условные условия" выберите действие ForEach . Перетащите его на холст.
Нарисуйте линию между выходными данными действия поиска и входными данными действия ForEach на холсте, чтобы соединить их.
Выберите действие ForEach на холсте. На вкладке Параметры сделайте следующее:
Установите флажок Последовательно для последовательной обработки результатов поиска или оставьте его снятым, чтобы создать параллельную обработку.
Задайте Число пакетов.
В разделе Элементы укажите следующую ссылку на выходное значение: @activity('Lookup1').output.value.
Создайте действие команды Azure Data Explorer внутри действия ForEach
Дважды щелкните действие ForEach на холсте, чтобы открыть его на новом холсте. Укажите действия в ForEach.
На панели Действия в разделе Azure Data Explorer выберите действие Команда 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, чтобы уменьшить результирующий размер или время.
Теперь конвейер готов. Чтобы вернуться к основному представлению конвейера, выберите имя конвейера.
Выберите параметр Отладка перед публикацией конвейера. Ход выполнения конвейера можно отслеживать на вкладке "Вывод ".
Выберите "Опубликовать все ", а затем добавьте триггер для запуска конвейера.
Выходные данные команды управления
В следующем разделе описывается структура выходных данных действия команды. Следующее действие в конвейере может использовать эти выходные данные.
Возвращаемое значение несинхронной команды управления
В неасинхронной команде управления структура возвращаемого значения похожа на структуру результата действия Lookup. В 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>"
}
]
}