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

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

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

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

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

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

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

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

С помощью действия поиска можно получить набор данных из любых источников данных, поддерживаемых Фабрикой данных Azure. Результат действия поиска можно использовать в 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. Затем выберите свой Кластер. Обратите внимание, что в раскрывающемся списке будут перечислены только кластеры, принадлежащие пользователю.
      • Вместо этого используйте переключатель Ввод вручную и укажите URL-адрес кластера в поле Конечная точка.
    • Укажите Клиент.
    • Укажите Идентификатор субъекта-службы. Это значение можно найти в портал Azure в разделе Регистрация> приложенийОбзор>идентификатора приложения (клиента). Субъект должен иметь соответствующие разрешения в соответствии с уровнем разрешений, требуемым для используемой команды.
    • Нажмите кнопку Ключ субъекта-службы и введите Ключ субъекта-службы.
    • Выберите свою базу данных в раскрывающемся списке. Также можно установить флажок Изменить и ввести имя своей базы данных.
    • Выберите Проверить соединение, чтобы проверить созданное вами соединение связанной службы. Если подключиться к программе настройке, появится зеленая галочка Соединение выполнено успешно.
    • Нажмите Готово, чтобы завершить создание связанной службы.
  6. После настройки связанной службы в разделе Соединение>AzureDataExplorerTable добавьте имя Таблица. Выберите Предварительный просмотр данных, чтобы убедиться, что данные представлены надлежащим образом.

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

Добавление запроса в действие поиска

  1. В разделе Параметры>pipeline-4-docs добавьте запрос в текстовом поле Запрос, например следующим образом.

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

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

Создание действия For-Each

Действие 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. Можно использовать параметр Опубликовать все, а затем Добавить триггер для запуска конвейера.

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

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

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

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