Создание конвейера данных с помощью Фабрика данных Azure, DevOps и машинного обучения

Azure DevOps Services

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

Узнайте, как получить данные из CSV-файла (разделенные запятыми значения) и сохранить данные в Хранилище BLOB-объектов Azure. Преобразуйте данные и сохраните его в промежуточной области. Затем обучите модель машинного обучения с помощью преобразованных данных. Запись модели в хранилище BLOB-объектов в виде файла выбора Python.

Необходимые компоненты

Для этого потребуются следующие компоненты.

Подготовка ресурсов Azure

  1. Войдите на портал Azure.

  2. В меню нажмите кнопку Cloud Shell . При появлении запроса выберите интерфейс Bash .

    Screenshot showing where to select Cloud Shell from the menu.

    Примечание.

    Для сохранения всех файлов, создаваемых в Azure Cloud Shell, потребуется ресурс служба хранилища Azure. При первом открытии Cloud Shell вам будет предложено создать группу ресурсов, учетную запись хранения и общий доступ Файлы Azure. Эта настройка автоматически используется для всех будущих сеансов Cloud Shell.

Выбор региона Azure

Регион — это один или несколько центров обработки данных Azure в географическом расположении. К примерам регионов относятся восточная часть США, западная часть США и Северная Европа. Каждому ресурсу Azure, включая экземпляр Служба приложений, назначается регион.

Чтобы упростить выполнение команд, начните с выбора региона по умолчанию. После указания региона по умолчанию последующие команды используют этот регион, если не указать другой регион.

  1. В Cloud Shell выполните следующую az account list-locations команду, чтобы получить список регионов, доступных в подписке Azure.

    az account list-locations \
      --query "[].{Name: name, DisplayName: displayName}" \
      --output table
    
  2. В столбце Name в выходных данных выберите регион, близкий к вам. Например, выберите asiapacific или westus2.

  3. Запустите az config , чтобы задать регион по умолчанию. В следующем примере замените <REGION> имя выбранного региона.

    az config set defaults.location=<REGION>
    

    Следующий пример задает westus2 регион по умолчанию.

    az config set defaults.location=westus2
    

Создание переменных Bash

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

    resourceSuffix=$RANDOM
    
  2. Создайте глобально уникальные имена для учетной записи хранения и хранилища ключей. В следующих командах используются двойные кавычки, которые указывают Bash интерполировать переменные с помощью встроенного синтаксиса.

    storageName="datacicd${resourceSuffix}"
    keyVault="keyvault${resourceSuffix}"
    
  3. Создайте еще одну переменную Bash для хранения имен и региона группы ресурсов. В следующем примере замените <REGION> регион, выбранный для региона по умолчанию.

    rgName='data-pipeline-cicd-rg'
    region='<REGION>'
    
  4. Создайте имена переменных для экземпляров Фабрика данных Azure и Azure Databricks.

    datafactorydev='data-factory-cicd-dev'
    datafactorytest='data-factory-cicd-test'
    databricksname='databricks-cicd-ws'
    

Создание ресурсов Azure

  1. Выполните следующую az group create команду, чтобы создать группу ресурсов с помощью rgName.

    az group create --name $rgName
    
  2. Выполните следующую az storage account create команду, чтобы создать новую учетную запись хранения.

    az storage account create \
        --name $storageName \
        --resource-group $rgName \
        --sku Standard_RAGRS \
        --kind StorageV2
    
  3. Выполните следующую az storage container create команду, чтобы создать два контейнера rawdata и prepareddata.

    az storage container create -n rawdata --account-name $storageName 
    az storage container create -n prepareddata --account-name $storageName 
    
  4. Выполните следующую az keyvault create команду, чтобы создать новое хранилище ключей.

    az keyvault create \
        --name $keyVault \
        --resource-group $rgName
    
  5. Создайте фабрику данных с помощью пользовательского интерфейса портала или Azure CLI:

    • Имя: data-factory-cicd-dev
    • Версия: V2
    • группу ресурсов data-pipeline-cicd-rg;
    • Расположение: ближайшее расположение
    • Снимите флажок для включения Git.
    1. Добавьте расширение Фабрика данных Azure.

      az extension add --name datafactory
      
    2. Выполните следующую az datafactory create команду, чтобы создать новую фабрику данных.

       az datafactory create \
           --name data-factory-cicd-dev \
           --resource-group $rgName
      
    3. Скопируйте идентификатор подписки. Фабрика данных будет использовать этот идентификатор позже.

  6. Создайте вторую фабрику данных с помощью пользовательского интерфейса портала или Azure CLI. Вы будете использовать эту фабрику данных для тестирования.

    • Имя: data-factory-cicd-test
    • Версия: V2
    • группу ресурсов data-pipeline-cicd-rg;
    • Расположение: ближайшее расположение
    • Снимите флажок для включения GIT.
    1. Выполните следующую az datafactory create команду, чтобы создать новую фабрику данных для тестирования.

       az datafactory create \
           --name data-factory-cicd-test \
           --resource-group $rgName
      
    2. Скопируйте идентификатор подписки. Фабрика данных будет использовать этот идентификатор позже.

  7. Добавьте новую службу Azure Databricks:

    • группу ресурсов data-pipeline-cicd-rg;
    • Имя рабочей области: databricks-cicd-ws
    • Расположение: ближайшее расположение
    1. Добавьте расширение Azure Databricks, если оно еще не установлено.

       az extension add --name databricks
      
    2. Выполните следующую az databricks workspace create команду, чтобы создать новую рабочую область.

      az databricks workspace create \
          --resource-group $rgName \
          --name databricks-cicd-ws  \
          --location eastus2  \
          --sku trial
      
    3. Скопируйте идентификатор подписки. Служба Databricks будет использовать этот идентификатор позже.

Отправка данных в контейнер хранилища

  1. В портал Azure откройте учетную запись хранения в data-pipeline-cicd-rg группе ресурсов.
  2. Перейдите к контейнерам службы>BLOB-объектов.
  3. prepareddata Откройте контейнер.
  4. Отправьте файл sample.csv.

Настройка Key Vault

Вы будете использовать Azure Key Vault для хранения всех сведений о подключении для служб Azure.

Создание личного маркера доступа Databricks

  1. В портал Azure перейдите к Databricks и откройте рабочую область.
  2. В пользовательском интерфейсе Azure Databricks создайте и скопируйте личный маркер доступа.

Копирование ключа учетной записи и строка подключения для учетной записи хранения

  1. Войдите в свою учетную запись хранения.
  2. Откройте ключи access.
  3. Скопируйте первый ключ и строка подключения.

Сохранение значений в Key Vault

  1. Создайте три секрета:

    • databricks-token: your-databricks-pat
    • служба хранилища Key:your-storage-key
    • служба хранилищаПодключение String:your-storage-connection
  2. Выполните следующую 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"
    

Импорт решения конвейера данных

  1. Войдите в организацию Azure DevOps и перейдите в проект.
  2. Перейдите в Репозиторий и импортируйте вилку версию репозитория GitHub. Дополнительные сведения см. в статье "Импорт репозитория Git" в проект.

Добавление подключения службы Azure Resource Manager

  1. Создайте подключение службы Azure Resource Manager.
  2. Выберите субъект-службу (автоматически).
  3. Выберите группу ресурсов data-pipeline-cicd-rg .
  4. Присвойте имя подключению azure_rm_connectionк службе.
  5. Выберите "Предоставить разрешение на доступ ко всем конвейерам". Чтобы выбрать этот параметр, вам потребуется роль Подключение ion service Администратор istrator.

Добавление переменных конвейера

  1. Создайте новую группу переменных с именем datapipeline-vg.

  2. Добавьте расширение Azure DevOps, если оно еще не установлено.

    az extension add --name azure-devops 
    
  3. Войдите в организацию 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"
    
  4. Создайте вторую группу переменных с именем keys-vg. Эта группа извлекнет переменные данных из Key Vault.

  5. Выберите "Связать секреты" из хранилища ключей Azure в качестве переменных. Дополнительные сведения см. в статье "Связывание секретов из хранилища ключей Azure".

  6. Авторизация подписки Azure.

  7. Выберите все доступные секреты для добавления в виде переменных (databricks-token,,StorageConnectStringStorageKey).

Настройка Azure Databricks и Фабрика данных Azure

Выполните действия, описанные в следующих разделах, чтобы настроить Azure Databricks и Фабрика данных Azure.

Создание теста область в Azure Databricks

  1. В портал Azure перейдите к свойствам хранилища>ключей.
  2. Скопируйте DNS-имя и идентификатор ресурса.
  3. В рабочей области Azure Databricks создайте секрет область с именемtestscope.

Добавление нового кластера в Azure Databricks

  1. В рабочей области Azure Databricks перейдите в кластеры.
  2. Выберите Создать кластер.
  3. Имя и сохранение нового кластера.
  4. Выберите новое имя кластера.
  5. В строке URL-адреса скопируйте содержимое между /clusters/ и /configuration. Например, в строке clusters/0306-152107-daft561/configurationнеобходимо скопировать 0306-152107-daft561.
  6. Сохраните эту строку для последующего использования.

Настройка репозитория кода в Фабрика данных Azure

  1. В Фабрика данных Azure перейдите в раздел "Автор и монитор". Дополнительные сведения см. в разделе "Создание фабрики данных".
  2. Выберите " Настройка репозитория кода" и подключите репозиторий.
    • Тип репозитория: Azure DevOps Git
    • Организация Azure DevOps: активная учетная запись
    • Имя проекта: проект конвейера данных Azure DevOps
    • Имя репозитория Git: используйте существующие.
      • Выберите главную ветвь для совместной работы.
      • Задайте в качестве корневой папки параметр /azure-data-pipeline/factorydata .
    • Ветвь для импорта ресурса в: выберите " Использовать существующий и основной".
  1. В пользовательском интерфейсе портал Azure откройте хранилище ключей.
  2. Выберите Политики доступа.
  3. Выберите Добавить политику доступа.
  4. Для настройки из шаблона выберите "Управление ключами и секретами".
  5. В разделе Select principal найдите имя фабрики данных разработки и добавьте его.
  6. Нажмите кнопку "Добавить", чтобы добавить политики доступа.
  7. Повторите эти действия, чтобы добавить политику доступа для тестовой фабрики данных.

Обновление связанной службы хранилища ключей в Фабрика данных Azure

  1. Перейдите к разделу "Управление связанными службами>".
  2. Обновите хранилище ключей Azure, чтобы подключиться к подписке.

Обновление связанной службы хранилища в Фабрика данных Azure

  1. Перейдите к разделу "Управление связанными службами>".
  2. Обновите значение Хранилище BLOB-объектов Azure, чтобы подключиться к подписке.

Обновление связанной службы Azure Databricks в Фабрика данных Azure

  1. Перейдите к разделу "Управление связанными службами>".
  2. Обновите значение Azure Databricks, чтобы подключиться к подписке.
  3. В поле "Существующий идентификатор кластера" введите значение кластера, сохраненное ранее.

Тестирование и публикация фабрики данных

  1. В Фабрика данных Azure перейдите к разделу "Изменить".
  2. Открыть DataPipeline.
  3. Выберите Переменные.
  4. Убедитесь, что storage_account_name учетная запись хранения ссылается на вашу учетную запись хранения в портал Azure. При необходимости обновите значение по умолчанию. Сохранение изменений.
  5. Выберите " Проверить" , чтобы проверить DataPipeline.
  6. Выберите "Опубликовать", чтобы опубликовать ресурсы фабрики данных в adf_publish ветви репозитория.

Запуск конвейера CI/CD

Выполните следующие действия, чтобы запустить конвейер непрерывной интеграции и непрерывной доставки (CI/CD):

  1. Перейдите на страницу конвейеров . Выберите действие создания конвейера сборки.
  2. Выберите Azure Repos Git в качестве расположения исходного кода.
  3. Когда появится список репозиториев, выберите свой репозиторий.
  4. При настройке конвейера выберите существующий YAML-файл Azure Pipelines. Выберите ФАЙЛ YAML: /azure-data-pipeline/data_pipeline_ci_cd.yml.
  5. Запуск конвейера. Если конвейер не был запущен раньше, может потребоваться предоставить разрешение на доступ к ресурсу во время выполнения.

Очистка ресурсов

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

  1. Удалите группу data-pipeline-cicd-rg ресурсов.
  2. Удалите проект Azure DevOps.

Следующие шаги