Создание конвейера данных с помощью Фабрика данных Azure, DevOps и машинного обучения
Azure DevOps Services
Приступая к созданию конвейера данных с использованием приема данных, преобразования данных и обучения модели.
Узнайте, как получить данные из CSV-файла (разделенные запятыми значения) и сохранить данные в Хранилище BLOB-объектов Azure. Преобразуйте данные и сохраните его в промежуточной области. Затем обучите модель машинного обучения с помощью преобразованных данных. Запись модели в хранилище BLOB-объектов в виде файла выбора Python.
Необходимые компоненты
Для этого потребуются следующие компоненты.
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Активная организация Azure DevOps. Регистрация в Azure Pipelines
- Роль Администратор istrator для подключений к службам в проекте Azure DevOps. Узнайте, как добавить роль Администратор istrator.
- Данные из sample.csv.
- Доступ к решению конвейера данных в GitHub.
- DevOps для Azure Databricks.
Подготовка ресурсов Azure
Войдите на портал Azure.
В меню нажмите кнопку Cloud Shell . При появлении запроса выберите интерфейс Bash .
Примечание.
Для сохранения всех файлов, создаваемых в Azure Cloud Shell, потребуется ресурс служба хранилища Azure. При первом открытии Cloud Shell вам будет предложено создать группу ресурсов, учетную запись хранения и общий доступ Файлы Azure. Эта настройка автоматически используется для всех будущих сеансов Cloud Shell.
Выбор региона Azure
Регион — это один или несколько центров обработки данных Azure в географическом расположении. К примерам регионов относятся восточная часть США, западная часть США и Северная Европа. Каждому ресурсу Azure, включая экземпляр Служба приложений, назначается регион.
Чтобы упростить выполнение команд, начните с выбора региона по умолчанию. После указания региона по умолчанию последующие команды используют этот регион, если не указать другой регион.
В Cloud Shell выполните следующую
az account list-locations
команду, чтобы получить список регионов, доступных в подписке Azure.az account list-locations \ --query "[].{Name: name, DisplayName: displayName}" \ --output table
В столбце
Name
в выходных данных выберите регион, близкий к вам. Например, выберитеasiapacific
илиwestus2
.Запустите
az config
, чтобы задать регион по умолчанию. В следующем примере замените<REGION>
имя выбранного региона.az config set defaults.location=<REGION>
Следующий пример задает
westus2
регион по умолчанию.az config set defaults.location=westus2
Создание переменных Bash
В Cloud Shell создайте случайное число. Этот номер будет использоваться для создания глобальных уникальных имен для определенных служб на следующем шаге.
resourceSuffix=$RANDOM
Создайте глобально уникальные имена для учетной записи хранения и хранилища ключей. В следующих командах используются двойные кавычки, которые указывают Bash интерполировать переменные с помощью встроенного синтаксиса.
storageName="datacicd${resourceSuffix}" keyVault="keyvault${resourceSuffix}"
Создайте еще одну переменную Bash для хранения имен и региона группы ресурсов. В следующем примере замените
<REGION>
регион, выбранный для региона по умолчанию.rgName='data-pipeline-cicd-rg' region='<REGION>'
Создайте имена переменных для экземпляров Фабрика данных Azure и Azure Databricks.
datafactorydev='data-factory-cicd-dev' datafactorytest='data-factory-cicd-test' databricksname='databricks-cicd-ws'
Создание ресурсов Azure
Выполните следующую
az group create
команду, чтобы создать группу ресурсов с помощьюrgName
.az group create --name $rgName
Выполните следующую
az storage account create
команду, чтобы создать новую учетную запись хранения.az storage account create \ --name $storageName \ --resource-group $rgName \ --sku Standard_RAGRS \ --kind StorageV2
Выполните следующую
az storage container create
команду, чтобы создать два контейнераrawdata
иprepareddata
.az storage container create -n rawdata --account-name $storageName az storage container create -n prepareddata --account-name $storageName
Выполните следующую
az keyvault create
команду, чтобы создать новое хранилище ключей.az keyvault create \ --name $keyVault \ --resource-group $rgName
Создайте фабрику данных с помощью пользовательского интерфейса портала или Azure CLI:
- Имя:
data-factory-cicd-dev
- Версия:
V2
- группу ресурсов
data-pipeline-cicd-rg
; - Расположение: ближайшее расположение
- Снимите флажок для включения Git.
Добавьте расширение Фабрика данных Azure.
az extension add --name datafactory
Выполните следующую
az datafactory create
команду, чтобы создать новую фабрику данных.az datafactory create \ --name data-factory-cicd-dev \ --resource-group $rgName
Скопируйте идентификатор подписки. Фабрика данных будет использовать этот идентификатор позже.
- Имя:
Создайте вторую фабрику данных с помощью пользовательского интерфейса портала или Azure CLI. Вы будете использовать эту фабрику данных для тестирования.
- Имя:
data-factory-cicd-test
- Версия:
V2
- группу ресурсов
data-pipeline-cicd-rg
; - Расположение: ближайшее расположение
- Снимите флажок для включения GIT.
Выполните следующую
az datafactory create
команду, чтобы создать новую фабрику данных для тестирования.az datafactory create \ --name data-factory-cicd-test \ --resource-group $rgName
Скопируйте идентификатор подписки. Фабрика данных будет использовать этот идентификатор позже.
- Имя:
Добавьте новую службу Azure Databricks:
- группу ресурсов
data-pipeline-cicd-rg
; - Имя рабочей области:
databricks-cicd-ws
- Расположение: ближайшее расположение
Добавьте расширение Azure Databricks, если оно еще не установлено.
az extension add --name databricks
Выполните следующую
az databricks workspace create
команду, чтобы создать новую рабочую область.az databricks workspace create \ --resource-group $rgName \ --name databricks-cicd-ws \ --location eastus2 \ --sku trial
Скопируйте идентификатор подписки. Служба Databricks будет использовать этот идентификатор позже.
- группу ресурсов
Отправка данных в контейнер хранилища
- В портал Azure откройте учетную запись хранения в
data-pipeline-cicd-rg
группе ресурсов. - Перейдите к контейнерам службы>BLOB-объектов.
prepareddata
Откройте контейнер.- Отправьте файл sample.csv.
Настройка Key Vault
Вы будете использовать Azure Key Vault для хранения всех сведений о подключении для служб Azure.
Создание личного маркера доступа Databricks
- В портал Azure перейдите к Databricks и откройте рабочую область.
- В пользовательском интерфейсе Azure Databricks создайте и скопируйте личный маркер доступа.
Копирование ключа учетной записи и строка подключения для учетной записи хранения
- Войдите в свою учетную запись хранения.
- Откройте ключи access.
- Скопируйте первый ключ и строка подключения.
Сохранение значений в Key Vault
Создайте три секрета:
- databricks-token:
your-databricks-pat
- служба хранилища Key:
your-storage-key
- служба хранилищаПодключение String:
your-storage-connection
- databricks-token:
Выполните следующую
az keyvault secret set
команду, чтобы добавить секреты в хранилище ключей.az keyvault secret set --vault-name "$keyVault" --name "databricks-token" --value "your-databricks-pat" az keyvault secret set --vault-name "$keyVault" --name "StorageKey" --value "your-storage-key" az keyvault secret set --vault-name "$keyVault" --name "StorageConnectString" --value "your-storage-connection"
Импорт решения конвейера данных
- Войдите в организацию Azure DevOps и перейдите в проект.
- Перейдите в Репозиторий и импортируйте вилку версию репозитория GitHub. Дополнительные сведения см. в статье "Импорт репозитория Git" в проект.
Добавление подключения службы Azure Resource Manager
- Создайте подключение службы Azure Resource Manager.
- Выберите субъект-службу (автоматически).
- Выберите группу ресурсов data-pipeline-cicd-rg .
- Присвойте имя подключению
azure_rm_connection
к службе. - Выберите "Предоставить разрешение на доступ ко всем конвейерам". Чтобы выбрать этот параметр, вам потребуется роль Подключение ion service Администратор istrator.
Добавление переменных конвейера
Создайте новую группу переменных с именем
datapipeline-vg
.Добавьте расширение Azure DevOps, если оно еще не установлено.
az extension add --name azure-devops
Войдите в организацию Azure DevOps.
az devops login --org https://dev.azure.com/<yourorganizationname>
az pipelines variable-group create --name datapipeline-vg -p <yourazuredevopsprojectname> --variables \ "LOCATION=$region" \ "RESOURCE_GROUP=$rgName" \ "DATA_FACTORY_NAME=$datafactorydev" \ "DATA_FACTORY_DEV_NAME=$datafactorydev" \ "DATA_FACTORY_TEST_NAME=$datafactorytest" \ "ADF_PIPELINE_NAME=DataPipeline" \ "DATABRICKS_NAME=$databricksname" \ "AZURE_RM_CONNECTION=azure_rm_connection" \ "DATABRICKS_URL=<URL copied from Databricks in Azure portal>" \ "STORAGE_ACCOUNT_NAME=$storageName" \ "STORAGE_CONTAINER_NAME=rawdata"
Создайте вторую группу переменных с именем
keys-vg
. Эта группа извлекнет переменные данных из Key Vault.Выберите "Связать секреты" из хранилища ключей Azure в качестве переменных. Дополнительные сведения см. в статье "Связывание секретов из хранилища ключей Azure".
Авторизация подписки Azure.
Выберите все доступные секреты для добавления в виде переменных (
databricks-token
,,StorageConnectString
StorageKey
).
Настройка Azure Databricks и Фабрика данных Azure
Выполните действия, описанные в следующих разделах, чтобы настроить Azure Databricks и Фабрика данных Azure.
Создание теста область в Azure Databricks
- В портал Azure перейдите к свойствам хранилища>ключей.
- Скопируйте DNS-имя и идентификатор ресурса.
- В рабочей области Azure Databricks создайте секрет область с именем
testscope
.
Добавление нового кластера в Azure Databricks
- В рабочей области Azure Databricks перейдите в кластеры.
- Выберите Создать кластер.
- Имя и сохранение нового кластера.
- Выберите новое имя кластера.
- В строке URL-адреса скопируйте содержимое между
/clusters/
и/configuration
. Например, в строкеclusters/0306-152107-daft561/configuration
необходимо скопировать0306-152107-daft561
. - Сохраните эту строку для последующего использования.
Настройка репозитория кода в Фабрика данных Azure
- В Фабрика данных Azure перейдите в раздел "Автор и монитор". Дополнительные сведения см. в разделе "Создание фабрики данных".
- Выберите " Настройка репозитория кода" и подключите репозиторий.
- Тип репозитория: Azure DevOps Git
- Организация Azure DevOps: активная учетная запись
- Имя проекта: проект конвейера данных Azure DevOps
- Имя репозитория Git: используйте существующие.
- Выберите главную ветвь для совместной работы.
- Задайте в качестве корневой папки параметр /azure-data-pipeline/factorydata .
- Ветвь для импорта ресурса в: выберите " Использовать существующий и основной".
Связывание Фабрика данных Azure с хранилищем ключей
- В пользовательском интерфейсе портал Azure откройте хранилище ключей.
- Выберите Политики доступа.
- Выберите Добавить политику доступа.
- Для настройки из шаблона выберите "Управление ключами и секретами".
- В разделе Select principal найдите имя фабрики данных разработки и добавьте его.
- Нажмите кнопку "Добавить", чтобы добавить политики доступа.
- Повторите эти действия, чтобы добавить политику доступа для тестовой фабрики данных.
Обновление связанной службы хранилища ключей в Фабрика данных Azure
- Перейдите к разделу "Управление связанными службами>".
- Обновите хранилище ключей Azure, чтобы подключиться к подписке.
Обновление связанной службы хранилища в Фабрика данных Azure
- Перейдите к разделу "Управление связанными службами>".
- Обновите значение Хранилище BLOB-объектов Azure, чтобы подключиться к подписке.
Обновление связанной службы Azure Databricks в Фабрика данных Azure
- Перейдите к разделу "Управление связанными службами>".
- Обновите значение Azure Databricks, чтобы подключиться к подписке.
- В поле "Существующий идентификатор кластера" введите значение кластера, сохраненное ранее.
Тестирование и публикация фабрики данных
- В Фабрика данных Azure перейдите к разделу "Изменить".
- Открыть
DataPipeline
. - Выберите Переменные.
- Убедитесь, что
storage_account_name
учетная запись хранения ссылается на вашу учетную запись хранения в портал Azure. При необходимости обновите значение по умолчанию. Сохранение изменений. - Выберите " Проверить" , чтобы проверить
DataPipeline
. - Выберите "Опубликовать", чтобы опубликовать ресурсы фабрики данных в
adf_publish
ветви репозитория.
Запуск конвейера CI/CD
Выполните следующие действия, чтобы запустить конвейер непрерывной интеграции и непрерывной доставки (CI/CD):
- Перейдите на страницу конвейеров . Выберите действие создания конвейера сборки.
- Выберите Azure Repos Git в качестве расположения исходного кода.
- Когда появится список репозиториев, выберите свой репозиторий.
- При настройке конвейера выберите существующий YAML-файл Azure Pipelines. Выберите ФАЙЛ YAML: /azure-data-pipeline/data_pipeline_ci_cd.yml.
- Запуск конвейера. Если конвейер не был запущен раньше, может потребоваться предоставить разрешение на доступ к ресурсу во время выполнения.
Очистка ресурсов
Если вы не собираетесь продолжать использовать это приложение, удалите конвейер данных, выполнив следующие действия.
- Удалите группу
data-pipeline-cicd-rg
ресурсов. - Удалите проект Azure DevOps.
Следующие шаги
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по