#azure #azure-data-factory #azure-data-factory-2 #azure-databricks #arm-template
#azure #azure-data-factory #azure-data-factory-2 #azure-databricks #arm-шаблон
Вопрос:
Я пытаюсь внедрить DevOps в ADF, и это было успешно с конвейерами, имеющими действия, которые извлекают данные из местоположения ADLS и SQL.
Но теперь у меня есть конвейер, в котором одним из действий является запуск файла jar из расположения dbfs, как показано ниже.
Этот конвейер запустит файл jar, который находится в папке dbfs, и продолжит работу.
Параметры подключения для кластера такие, как показано ниже.
При развертывании шаблона ARM из dev ADF в экземпляр UAT, в котором есть экземпляр databricks UAT, мне не удалось переопределить какие-либо сведения о подключении к кластеру из файла arm_template_parameter.json.
-
Как настроить URL рабочей области и идентификатор кластера для среды UAT / PROD во время развертывания ARM? В файле arm_template_parameter.json нет записи для каких-либо сведений о кластере.
-
Как показано на первом рисунке, если есть действие, которое выбирает файл jar из DEV instance dbfs loaction с именем файла jar, сгенерированного системой, произойдет ли сбой при развертывании шаблона ARM для этого конвейера в других средах? Если да, то как развернуть тот же файл jar с тем же именем в расположении dbfs DEV / PROD databricks?
Любые предложения приветствуются!
Ответ №1:
Здесь вам нужно изменить существующий пользовательский шаблон параметризации в соответствии с вашими потребностями. Этот шаблон определяет, какие параметры шаблона ARM генерируются при публикации фабрики. Это можно сделать на вкладке шаблона параметризации в центре управления.
По умолчанию имя рабочей области и URL-адрес уже должны быть сгенерированы в шаблоне ARM. Чтобы использовать существующий идентификатор кластера как часть этого, вы добавляете existingClusterId (имя поля JSON в связанной службе) в шаблон в разделе Microsoft.DataFactory /factories/linkedServices.
Хотя мне не нравится делиться документацией на этом форуме, на самом деле у нас есть точный пример использования, продемонстрированный на https://learn.microsoft.com/azure/data-factory/continuous-integration-deployment#example-parameterizing-an-existing-azure-databricks-interactive-cluster-id
Комментарии:
1. Спасибо! Шаблон параметризации очень помог мне добавить недостающие теги для параметризации.
2. Но вторая часть вопроса касается файлов jar, которые загружаются в папку DBFS, и задача в конвейере ADF будет иметь тот же путь и имя файла. Как только ADF будет развернут в любой другой среде, как это имя файла сохраняется / как загрузить тот же jar в другую среду с тем же именем?
Ответ №2:
По моему опыту, на данный момент это не очень хорошо / интуитивно реализовано. Лучший способ, который я лично нашел для достижения этой цели, — параметризовать вашу связанную службу, а затем либо использовать ссылки на хранилище ключей, которое содержит правильное значение для данной среды, либо манипулировать файлом parameters.json (который теперь будет содержать параметры расписания) в конвейере DevOps с помощью задачи преобразования файла.
Ни то, ни другое не очень элегантно, и в идеале вы могли бы ссылаться на секреты хранилища ключей, используя некоторый синтаксис в выражениях параметров, но, увы, мы еще не достигли этого.