CI/CD с папками Databricks Git

Используйте папки Databricks Git в потоках CI/CD, чтобы хранить работу под управлением системы контроля версий и интегрировать её с рабочими процессами инженерии данных. Для более подробного обзора CI/CD с Azure Databricks см. статью CI/CD в Azure Databricks.

Потоки использования

Автоматизация папок Git сосредоточена на начальной конфигурации папок и в REST API Azure Databricks Repos для автоматизации операций Git из заданий Azure Databricks. Прежде чем создавать автоматизацию сборки, выполните следующие действия.

  • Просмотрите удаленные репозитории Git, которые вы будете использовать.
  • Выберите правильные репозитории и ветви для каждого этапа (разработка, интеграция, предварительное развертывание, производство).

Существует три основных потока:

  • Поток администратора. Администратор рабочей области Azure Databricks создает папки верхнего уровня для размещения рабочих папок Git. Администратор клонирует репозиторий и соответствующую ветвь при создании каждой папки и может называть их в соответствии с назначением (например, "Продакшен", "Тест" или "Стаджинг"). См. статью "Создание рабочей папки Git".
  • Процесс взаимодействия пользователя: пользователь создает папку Git в /Workspace/Users/<email>/ из удаленного репозитория, работает на своей ветке и отправляет коммиты в удаленный репозиторий. См. статью "Совместная работа с помощью папок Git".
  • Поток слияния: после отправки из папки Git пользователи открывают запросы на вытягивание (PR). При слиянии PR автоматизация может извлекать изменения в производственные папки Git с помощью API Azure Databricks Repos.

Совместная работа с помощью папок Git

Совместная работа с другими пользователями путем извлечения и отправки изменений из пользовательского интерфейса Azure Databricks. Распространенный шаблон — использовать функциональную ветку или ветку разработки для объединения работы.

Для совместной работы с ветвью функций:

  1. Скопируйте существующий репозиторий Git в рабочую область Databricks.
  2. В пользовательском интерфейсе папок Git создайте ветвь компонента из основной ветви. При необходимости можно использовать несколько функциональных веток.
  3. Изменение записных книжек Azure Databricks и других файлов в репозитории.
  4. Зафиксируйте и отправьте изменения в удаленный репозиторий.
  5. Другие участники могут клонировать репозиторий в собственную папку пользователя. Они работают с ветвью, изменяют записные книжки и файлы в папке Git, а затем фиксируют и передают в удаленный.
  6. Когда все готово, создайте pr на поставщике Git, просмотрите свою команду и объедините ее в ветвь развертывания.

Замечание

Databricks рекомендует каждому из разработчиков работать в своей собственной ветке. Сведения о разрешении конфликтов слиянием см. в разделе "Разрешение конфликтов слиянием".

Выбор подхода CI/CD

Databricks рекомендует декларативные пакеты автоматизации для упаковки и развертывания рабочих процессов CI/CD. Если вы предпочитаете развертывать только код в рабочей области, вместо этого можно использовать рабочую папку Git. Более широкий обзор CI/CD см. в разделе CI/CD в Azure Databricks.

Подсказка

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

Создание рабочей папки Git

Производственные папки Git отличаются от папок Git на уровне пользователя под /Workspace/Users/. Папки уровня пользователя — это локальные копии, где пользователи разрабатывают и отправляют изменения. Рабочие папки Git создаются администраторами за пределами пользовательских папок, хранят ветви развертывания и являются источником автоматизированных рабочих процессов. Их следует обновлять только с помощью автоматизации, если PR объединяются в ветви развертывания. Ограничение доступа только для рабочих папок Git для большинства пользователей. Разрешить изменять их только администраторам и субъектам-службам Azure Databricks.

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

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

  1. Выберите репозиторий Git и ветвь для развертывания.

  2. Создайте или используйте учетную запись службы и настройте учетные данные Git, чтобы получить доступ к этому репозиторию.

  3. Создайте папку Azure Databricks Git для репозитория и ветви в вложенной папке под Workspace (например, для каждого проекта, команды или этапа).

  4. Выберите папку , а затем общий доступ (или щелкните правой кнопкой мыши общий доступ (разрешения) в дереве рабочей области.

  5. Назначьте уровни разрешений:

    • Может запускаться для пользователей проекта, которым требуется запускать рабочие процессы.
    • Может выполняться для любого субъекта-службы Azure Databricks, выполняющего автоматизацию в этой папке.
    • При необходимости можно открыть для просмотра всем пользователям рабочей области, чтобы поддерживать обнаружение и общий доступ.

    Модальное диалоговое окно «Общий доступ к папке Git».

  6. Нажмите кнопку "Добавить".

  7. Сохраните рабочую папку Git в синхронизации с удаленной ветвью, используя один из следующих вариантов:

    • Внешний CI/CD: Используйте такие средства, как GitHub Actions, чтобы извлечь последние коммиты при слиянии PR в ветвь развертывания. Пример см. в разделе "Запуск рабочего процесса CI/CD", который обновляет папку Git.
    • Запланированное задание: если внешний CI/CD недоступен, запустите запланированное задание, которое обновляет папку Git. Используйте простую записную книжку, которая выполняется по расписанию:
    from databricks.sdk import WorkspaceClient
    w = WorkspaceClient()
    w.repos.update(w.workspace.get_status(path="<git-folder-workspace-full-path>").object_id, branch="<branch-name>")
    

Дополнительные сведения об автоматизации с помощью API Repos см. в документации по REST API Databricks для Repos.