Используйте действие команды Azure Data Factory для выполнения команд управления Azure Data Explorer.

Фабрика данных Azure (ADF) — это облачная служба интеграции данных, которую можно использовать для выполнения сочетания действий по данным. Используйте ADF для создания управляемых данными рабочих процессов для оркестрации и автоматизации перемещения и преобразования данных. Действие Azure Data Explorer Command в Azure Data Factory позволяет запускать управляющие команды Azure Data Explorer в рабочем процессе ADF. В этой статье показано, как создать конвейер с действием поиска и действием ForEach, содержащим действие команды для Azure Data Explorer.

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

Создание нового конвейера

  1. Выберите инструмент карандаша Автор.

  2. Создайте новый конвейер, выбрав + и выбрав "Конвейер " в раскрывающемся списке.

    Создайте новый конвейер.

Создание действия поиска

Действие подстановки может получить набор данных из любого источника данных, поддерживаемого Azure Data Factory. Выходные данные подстановочной операции можно использовать в операции forEach или другой операции.

  1. На панели Действия на вкладке Общие, выберите действие Поиск. Перетащите его на основной холст справа.

    Выберите действие поиска.

  2. На холсте теперь находится действие поиска, которое вы создали. Используйте вкладки под холстом для изменения соответствующих параметров. На вкладке Общие переименуйте действие.

    Измените действие поиска.

    Совет

    Выберите пустую область холста для просмотра свойств конвейера. Используйте вкладку Общие для переименования конвейера. Пайплайн называется pipeline-4-docs.

Создание набора данных Azure Data Explorer в операции поиска

  1. В разделе Параметры выберите предварительно созданный Исходный набор данных Azure Data Explorer или выберите + Создать, чтобы создать новый набор данных.

    Добавьте набор данных в параметры поиска.

  2. Выберите набор данных Azure Data Explorer (Kusto) в окне Создать набор данных. Нажмите кнопку Продолжить, чтобы добавить новый набор данных.

    Выберите новый набор данных.

  3. Новые параметры набора данных Azure Data Explorer отображаются в разделе Параметры. Чтобы обновить параметры, нажмите кнопку Изменить.

    Параметры поиска при использовании набора данных Azure Data Explorer.

  4. На основном холсте откроется новая вкладка AzureDataExplorerTable.

    • Выберите Общие и измените имя набора данных.
    • Выберите Соединение, чтобы изменить свойства набора данных.
    • Выберите связанную службу в раскрывающемся списке или нажмите кнопку +Создать , чтобы создать связанную службу.

    Измените свойства набора данных Azure Data Explorer.

  5. При создании новой связанной службы открывается страница Новая связанная служба (Azure Data Explorer).

     Новая связанная служба Azure Data Explorer.

    • Выберите Имя для связанной службы Azure Data Explorer. При необходимости добавьте Описание.
    • В разделе Подключение через среду выполнения интеграции при необходимости измените текущие параметры.
    • В методе выбора учетной записи выберите кластер с помощью одного из двух методов:
      • Используйте переключатель Из подписки Azure и выберите свою учетную запись Подписка Azure. Затем выберите свой Кластер. В раскрывающемся списке перечислены только кластеры, принадлежащие вам.
      • Вместо этого выберите радиокнопку Ввод вручную и введите ваш Endpoint (URL-адрес кластера).
    • Укажите Арендатор.
    • Укажите Идентификатор основного компонента службы. Найдите это значение на портале Azure в разделе Регистрация приложений>Общие сведения>ID приложения (клиента). Пользователь должен иметь адекватные разрешения, необходимые для уровня доступа, требуемого командой.
    • Нажмите кнопку Ключ учетной записи службы и введите Ключ учетной записи службы.
    • Выберите свою базу данных в раскрывающемся списке. Также можно установить флажок Изменить и ввести имя своей базы данных.
    • Выберите Проверить соединение, чтобы проверить созданное вами соединение связанной службы. Если вы можете подключиться к конфигурации, появится зелёная галочка Соединение успешно.
    • Нажмите Готово, чтобы завершить создание связанной службы.
  6. После настройки связанной службы в AzureDataExplorerTable>Connection добавьте имя Table. Выберите Предварительный просмотр данных, чтобы убедиться, что данные представлены надлежащим образом.

    Набор данных готов, и вы можете продолжить редактирование конвейера.

Добавьте запрос в вашу активность поиска

  1. В pipeline-4-docs>Settings добавьте запрос в текстовое поле Query, например:

    ClusterQueries
    | where Database !in ("KustoMonitoringPersistentDatabase", "$systemdb")
    | summarize count() by Database
    
  2. При необходимости измените свойства Время ожидания запроса или Без сокращения и Только первая строка. В этом потоке сохраните время ожидания запроса по умолчанию и снимите флажки.

    Окончательная настройка действия поиска.

Создайте действие Для каждого

Используйте действие For-Each для итерации по коллекции и выполнения указанных действий в цикле.

  1. Добавьте в конвейер действие For-Each. Эта активность обрабатывает данные, полученные из активности поиска.

    • В области "Действия " в разделе "Итерация" и "Условные условия" выберите действие ForEach . Перетащите его на холст.

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

      Действие ForEach.

  2. Выберите действие ForEach на холсте. На вкладке Параметры сделайте следующее:

    • Установите флажок Последовательно для последовательной обработки результатов поиска или оставьте его снятым, чтобы создать параллельную обработку.

    • Задайте Число пакетов.

    • В разделе Элементы укажите следующую ссылку на выходное значение: @activity('Lookup1').output.value.

      Настройка действия ForEach.

Создайте действие команды Azure Data Explorer внутри действия ForEach

  1. Дважды щелкните действие ForEach на холсте, чтобы открыть его на новом холсте. Укажите действия в ForEach.

  2. На панели Действия в разделе Azure Data Explorer выберите действие Команда Azure Data Explorer и перетащите его на холст.

    Действие команды Azure Data Explorer.

  3. На вкладке "Подключение" выберите ту же связанную службу, которую вы ранее создали.

    Вкладка подключения активности команд в Azure Data Explorer.

  4. На вкладке Команда введите следующую команду.

    .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, чтобы уменьшить результирующий размер или время.
  5. Теперь конвейер готов. Чтобы вернуться к основному представлению конвейера, выберите имя конвейера.

    Конвейер команды Azure Data Explorer.

  6. Выберите параметр Отладка перед публикацией конвейера. Ход выполнения конвейера можно отслеживать на вкладке "Вывод ".

    Выходные данные командного действия Azure Data Explorer.

  7. Выберите "Опубликовать все ", а затем добавьте триггер для запуска конвейера.

Выходные данные команды управления

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

Возвращаемое значение несинхронной команды управления

В неасинхронной команде управления структура возвращаемого значения похожа на структуру результата действия 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>" 
        } 
    ] 
}