Ограничения и справочная информация по папкам Git в Azure Databricks

На этой странице рассматриваются ограничения размера, поддерживаемые функции, рекомендации по безопасности и поведение CI/CD для папок Databricks Git. Общие ограничения ресурсов Databricks см. в разделе "Ограничения ресурсов". Сведения о поддерживаемых типах ресурсов в папках Git см. в статье "Поддерживаемые типы ресурсов" в папках Git.

Ограничения файлов и репозитория

Azure Databricks не применяет ограничение размера репозитория. Однако применяются следующие ограничения:

  • Рабочие ветви ограничены 1 ГБ.
  • Вы не можете просматривать файлы размером более 10 МБ в пользовательском интерфейсе Azure Databricks.
  • Каждая операция Git поддерживает до 2 ГБ памяти и 4 ГБ операций записи диска.
  • Отдельные файлы рабочей области имеют отдельные ограничения размера. См. Ограничения.

Databricks рекомендует сохранить общее количество ресурсов и файлов рабочей области до 20 000.

Так как ограничения применяются для каждой операции, клонирование репозитория размером 5 ГБ завершается ошибкой, но клонирование репозитория размером 3 ГБ и последующее добавление 2 ГБ завершается успешно. Если репозиторий превышает эти ограничения, может возникнуть ошибка или время ожидания во время клонирования, хотя операция может завершиться в фоновом режиме.

Чтобы работать с более крупными репозиториями, попробуйте выполнить разреженную проверку или команды интерфейса командной строки Git. Чтобы записать временные файлы, которые не сохраняются после завершения работы кластера, используйте $TEMPDIR. Это позволяет избежать превышения ограничений размера ветви и обеспечивает лучшую производительность, чем запись в рабочий каталог (CWD) в файловой системе рабочей области. См. статью Куда следует записывать временные файлы на Azure Databricks?.

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

Уменьшение размера репозитория

Если ваш репозиторий превышает ограничения по размеру из-за больших файлов, добавление их в .gitignore не уменьшит размер репозитория. Файлы, уже зафиксированные в Git, остаются в журнале репозитория даже после добавления в .gitignore.

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

  • Используйте средства Git, например git filter-repo или BFG Repo-Cleaner, чтобы удалить большие файлы из истории коммитов. Это переписывает историю и требует принудительной отправки (force push) в удаленный репозиторий.
  • Клонирование только определенных каталогов. См. Настройка режима разрежённой выборки.
  • Переместите несвязанный код в отдельные репозитории.

Дополнительные сведения см. в разделе Удаление конфиденциальных данных из репозитория в документации GitHub.

Поддержка Monorepo

Databricks не рекомендует создавать папки Git, поддерживаемые monorepos — большими репозиториями Git с тысячами файлов во многих проектах. Клонирование монорепозитория может превысить ограничения на память и дисковое пространство Git, что замедляет операции с Git. Если ваш репозиторий содержит несколько проектов, рассмотрите возможность его разделения или использования разреженной проверки, чтобы ограничить клонирование каталогов. См. Настройка режима разрежённой выборки.

Конфигурации

Не все стандартные функции Git работают в папках Git, а содержимое хранится не так, как в локальном клоне. В следующих разделах объясняется, как работает хранилище, какие серверы поддерживаются, а также как работают такие функции, как .gitignore и подмодулы.

Хранилище содержимого репозитория

Azure Databricks временно клонирует содержимое репозитория на диск в плоскости управления. База данных плоскости управления хранит файлы записных книжек так же, как и в основной рабочей области. Файлы, не относящиеся к записной книжке, хранятся на диске до 30 дней.

Локальные и самостоятельно размещенные серверы Git

Папки Databricks Git поддерживают GitHub Enterprise, Bitbucket Server, Azure DevOps Server и GitLab с собственным управлением, если сервер доступен в сети Интернет. Дополнительные сведения см. в статье "Прокси-сервер Git" для папок Git для локальной интеграции.

Чтобы интегрироваться с Bitbucket Server, GitHub Enterprise Server или самостоятельно управляемым экземпляром GitLab, который недоступен в Интернете, обратитесь к команде по работе с клиентами Azure Databricks.

Поддерживаемые типы ресурсов

Дополнительные сведения о поддерживаемых типах активов см. в разделе "Поддерживаемые типы ресурсов" в папках Git.

Поддержка файла .gitignore

Папки Git поддерживают .gitignore файлы. Чтобы предотвратить отслеживание файла Git, добавьте имя файла (включая расширение) в .gitignore файл. Создайте один файл или используйте уже существующий, клонированный из удаленного репозитория.

.gitignore работает только для неотслеживаемых файлов. Добавление уже зафиксированного файла в .gitignore не удаляет его из истории Git и не уменьшает размер репозитория. Чтобы удалить зафиксированные файлы, см. статью "Уменьшить размер репозитория".

Поддержка подмодулы Git

Стандартные папки Git не поддерживают подмодулы Git, но папки Git с доступом Git CLI могут использовать их. См. статью "Использование команд командной строки Git ( бета-версия)".

поддержка Фабрика данных Azure

Фабрика данных Azure (ADF) поддерживает папки Git.

Управление источником

Несколько операций работают по-разному в папках Git, чем в стандартном рабочем процессе Git, особенно вокруг записных книжек и удаления ветвей.

Панели управления ноубуками и изменения ветки

Azure Databricks записные книжки исходного формата не хранят сведения о панели мониторинга.

Чтобы сохранить дашборды, смените формат записной книжки на формат .ipynb (Jupyter), который поддерживает определения дашбордов и визуализаций по умолчанию. Чтобы сохранить данные визуализации, зафиксируйте записную книжку с выходными данными.

См. Управление фиксациями выходных данных в записной книжке IPYNB.

Поддержка объединения ветвей

Папки Git поддерживают объединение ветвей. Вы также можете создать pull request и объединить через вашего Git-провайдера.

Удаление ветвей

Чтобы удалить ветвь, необходимо работать в поставщике Git.

приоритет зависимостей Python

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

Безопасность, проверка подлинности и маркеры

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

Проблема с политикой условного доступа (CAP) для Microsoft Entra ID

При клонирование репозитория может возникнуть ошибка "отказано в доступе", если:

  • Рабочая область Azure Databricks использует Azure DevOps с аутентификацией Microsoft Entra ID.
  • Вы включили политику условного доступа в Azure DevOps и политику условного доступа Microsoft Entra ID.

Чтобы устранить эту проблему, добавьте исключение в политику условного доступа (CAP) для Azure Databricks IP-адресов или пользователей.

Дополнительные сведения см. в разделе "Политики условного доступа".

Allowlist с токенами Microsoft Entra ID

Если вы используете Microsoft Entra ID для проверки подлинности с помощью Azure DevOps, список разрешений по умолчанию ограничивает URL-адреса Git следующим образом:

  • dev.azure.com
  • visualstudio.com

Дополнительные сведения см. в списках разрешений URL-адресов Git.

Шифрование папок Git

Azure Databricks шифрует содержимое папки Git с помощью ключа по умолчанию. Управляемые клиентом ключи поддерживаются только для шифрования учетных данных Git.

Хранение и доступ к токенам GitHub

  • В контрольной плоскости Azure Databricks хранятся токены аутентификации. Сотрудники могут обращаться только к ним с помощью проверенных временных учетных данных.
  • Azure Databricks ведет журнал создания и удаления токенов, но не ведет журнал об использовании. Ведение журнала операций Git позволяет выполнять аудит использования токена приложением Azure Databricks.
  • GitHub Enterprise проводит аудит использования токенов. Другие службы Git также могут предлагать аудит сервера.

Подписывание фиксации GPG

Папки Git не поддерживают GPG-подписывание коммитов.

Поддержка SSH

Папки Git поддерживают только ПРОТОКОЛ HTTPS, а не SSH.

ошибки межарендного Azure DevOps

При подключении к DevOps в отдельной аренде может появиться Unable to parse credentials from Azure Active Directory account. Если проект Azure DevOps находится в другом тенанте Microsoft Entra ID, чем Azure Databricks, используйте токен доступа Azure DevOps. См. личный маркер доступа.

CI/CD и MLOps

Если вы запускаете задания с файлами из папки Git, помните, что операции Git могут повлиять на состояние записных книжек и эксперименты MLflow таким образом, который может быть неочевидным.

Входящие изменения очищают состояние записной книжки

Операции Git, изменяющие исходный код записной книжки, приводят к потере состояния записной книжки, включая выходные данные ячеек, комментарии, журнал версий и мини-приложения. Например, git pull может изменить исходный код ноутбука, требуя от папок Git перезаписать существующий ноутбук. Такие операции, как git commit, pushили создание новой ветви, не влияют на исходный код и сохраняют состояние записной книжки.

Внимание

Эксперименты MLflow не работают в папках Git с Databricks Runtime 14.x или более ранней версией.

Эксперименты MLflow в папках Git

Существует два типа экспериментов MLflow: рабочая область и записная книжка. См. статью «Организация учебных запусков с использованием экспериментов MLflow».

  • Эксперименты рабочей области: Невозможно создать эксперименты MLflow рабочей области в папках Git. Записывайте запуски MLflow в эксперимент, созданный в обычной папке рабочей области. Для совместной работы с несколькими пользователями используйте общую папку рабочей области.

  • Эксперименты записной книжки. Вы можете создавать эксперименты записных книжек в папке Databricks Git. Если вы сохраняете блокнот в систему управления версиями как .ipynb файл, MLflow создает запись в автоматический эксперимент. Управление версиями не включает в себя эксперимент или его запуски. См. раздел Создание эксперимента записной книжки.

Предотвращение потери данных в экспериментах MLflow

Эксперименты MLflow в записной книжке, созданные с помощью заданий Lakeflow с исходным кодом в удаленном репозитории, хранятся во временном хранилище. Эти эксперименты изначально сохраняются после выполнения рабочего процесса, но подвергаются риску удаления во время запланированной очистки. Databricks рекомендует использовать эксперименты MLflow в рабочей области, с заданиями и удаленными источниками Git.

Предупреждение

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

Чтобы восстановить отсутствующие данные эксперимента до истечения 30-дневного срока действия, восстановите исходное имя записной книжки, откройте записную книжку и щелкните значок " в правой области. Это активирует mlflow.get_experiment_by_name() и восстанавливает эксперимент и продолжает выполнение. Через 30 дней Azure Databricks очищает потерянные эксперименты MLflow для соответствия GDPR.

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

Выполнение заданий во время операций Git

Во время операции Git некоторые записные книжки могут обновляться, в то время как другие еще нет, что приводит к непредсказуемому поведению.

Например, если notebook A вызывает notebook Z с использованием %run, и задание начинается во время операции Git, это задание может запустить последнюю версию notebook A с более старым notebook Z. Задание может завершиться ошибкой или запустить записные книжки из разных коммитов.

Чтобы избежать этого, настройте задачи для использования вашего Git-поставщика в качестве источника вместо пути рабочей области. См. статью "Использование Git с заданиями Lakeflow".

Дальнейшие действия