Azure Databricks Git 폴더 제한 및 참조

이 페이지에서는 Databricks Git 폴더에 대한 크기 제한, 지원되는 기능, 보안 고려 사항 및 CI/CD 동작에 대해 설명합니다. 일반 Databricks 리소스 제한은 리소스 제한을 참조하세요. Git 폴더에서 지원되는 자산 유형에 대해 알아보려면 Git 폴더에서 지원되는 자산 유형을 참조하세요.

파일 및 리포지토리 제한

Azure Databricks 리포지토리 크기에 제한을 적용하지 않습니다. 그러나 다음 제한이 적용됩니다.

  • 작업 분기는 1 GB로 제한됩니다.
  • Azure Databricks UI에서는 10MB보다 큰 파일을 볼 수 없습니다.
  • 각 Git 작업은 최대 2GB의 메모리와 4GB의 디스크 쓰기를 지원합니다.
  • 개별 작업 영역 파일에는 별도의 크기 제한이 있습니다. 제한 사항을 참조하세요.

Databricks는 총 작업 영역 자산 및 파일 수를 20,000 미만으로 유지하는 것이 좋습니다.

작업당 제한이 적용되므로 5GB 리포지토리 복제는 실패하지만 3GB 리포지토리를 복제하고 나중에 2GB를 추가하는 데 성공합니다. 리포지토리가 이러한 제한을 초과하는 경우 복제하는 동안 오류 또는 시간 초과가 발생할 수 있지만 백그라운드에서 작업이 여전히 완료될 수 있습니다.

더 큰 리포지토리를 사용하려면 스파스 체크 아웃 또는 Git CLI 명령을 사용해 보세요. 클러스터 종료 후 유지되지 않는 임시 파일을 작성하려면 .를 사용합니다 $TEMPDIR. 이렇게 하면 분기 크기 제한을 초과하지 않으며 작업 영역 파일 시스템의 CWD(작업 디렉터리)에 쓰는 것보다 더 나은 성능을 제공합니다. Azure Databricks? 임시 파일을 작성해야 하는 경우를 참조하세요.

로컬 분기는 원격 분기가 삭제된 후 최대 30일 동안 연결된 Git 폴더에 남아 있을 수 있습니다. 로컬 분기를 완전히 제거하려면 리포지토리를 삭제합니다.

리포지토리 크기 줄이기

큰 파일로 인해 리포지토리가 크기 제한을 초과한 경우, 해당 파일들을 .gitignore에 추가해도 리포지토리 크기가 줄어들지 않습니다. Git에 이미 커밋된 파일은 에 추가된 경우에도 리포지토리 기록에 남아 있습니다 .gitignore.

리포지토리 크기를 줄이려면:

  • Git 도구(예: git filter-repo BFG Repo-Cleaner)를 사용하여 커밋 기록에서 큰 파일을 제거합니다. 이렇게 하면 기록이 다시 작성되고 원격 리포지토리에 강제 푸시가 필요합니다.
  • 특정 디렉터리만 복제합니다. 스파스 체크 아웃 모드 구성을 참조하세요.
  • 관련 없는 코드를 별도의 리포지토리로 이동합니다.

자세한 내용은 GitHub 설명서의 리포지토리에서 중요한 데이터 이동을 참조하세요.

Monorepo 지원

Databricks는 여러 프로젝트에서 수천 개의 파일이 있는 대규모 단일 조직 Git 리포지토리인 monorepos로 지원되는 Git 폴더를 만들지 않도록 권장합니다. 모노레포를 복제하면 Git 폴더 메모리 및 디스크 제한을 초과하고 Git 작업이 느려질 수 있습니다. 리포지토리에 여러 프로젝트가 포함된 경우 분할하거나 스파스 체크 아웃을 사용하여 복제되는 디렉터리를 제한하는 것이 좋습니다. 스파스 체크 아웃 모드 구성을 참조하세요.

구성

모든 표준 Git 기능이 Git 폴더에서 작동하는 것은 아니며 콘텐츠는 로컬 복제본과 다르게 저장됩니다. 다음 항목에서는 스토리지 작동 방식, 지원되는 서버 및 기능과 하위 .gitignore 모듈의 작동 방식에 대해 설명합니다.

리포지토리 콘텐츠 스토리지

Azure Databricks 리포지토리 콘텐츠를 컨트롤 플레인의 디스크에 일시적으로 복제합니다. 컨트롤 플레인 데이터베이스는 주 작업 영역에 있는 것과 같은 Notebook 파일을 저장합니다. Notebook이 아닌 파일은 최대 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 CLI 액세스 권한이 있는 Git 폴더는 이를 사용할 수 있습니다. Git CLI 명령 사용(베타)을 참조하세요.

Azure Data Factory 지원

ADF(Azure Data Factory)는 Git 폴더를 지원합니다.

원본 관리

Git 폴더에서는 몇 가지 작업이 표준 Git 워크플로와 다르게 작동합니다. 특히 노트북과 브랜치 삭제와 관련된 작업이 그렇습니다.

노트북 대시보드 및 브랜치 변경사항

Azure Databricks 원본 형식 노트북은 대시보드 정보를 저장하지 않습니다.

대시보드를 유지하려면 기본적으로 대시보드 및 시각화 정의를 지원하는 Notebook 형식 .ipynb 을 (Jupyter 형식)으로 변경합니다. 시각화 데이터를 보존하려면 출력을 포함하여 노트북을 커밋합니다.

IPYNB Notebook 출력 커밋 관리를 참조하세요.

분기 병합 지원

Git 폴더는 분기 병합을 지원합니다. Git 공급자를 통해 끌어오기 요청도 만들고 병합할 수도 있습니다.

브랜치 삭제

브랜치를 삭제하려면 Git 공급자에서 작업해야 합니다.

Python 종속성 우선 순위

Git 폴더의 Python 라이브러리가 다른 곳에 저장된 라이브러리보다 우선합니다. 예를 들어 Databricks 컴퓨팅에 라이브러리가 설치되고 이름이 같은 라이브러리가 Git 폴더에 있는 경우 Git 폴더 라이브러리를 가져옵니다. Python 라이브러리 우선 순위 참조하세요.

보안, 인증 및 토큰

Azure Databricks Git 자격 증명을 로컬 환경이 아닌 컨트롤 플레인에 저장합니다. 다음 항목에서는 Git 폴더 콘텐츠를 암호화하는 방법, 토큰을 저장 및 감사하는 방법, 인증 문제가 발생할 경우 수행할 작업을 다룹니다.

Microsoft Entra ID에 대한 CAP(조건부 액세스 정책)를 사용하여 처리합니다.

다음과 같은 경우 리포지토리를 복제할 때 "액세스 거부" 오류가 발생할 수 있습니다.

  • Azure Databricks 작업 영역에서는 Microsoft Entra ID 인증에 Azure DevOps 사용합니다.
  • Azure DevOps 조건부 액세스 정책과 Microsoft Entra ID 조건부 액세스 정책을 사용하도록 설정했습니다.

이 문제를 해결하려면 AZURE DATABRICKS IP 주소 또는 사용자의 CAP(조건부 액세스 정책)에 제외를 추가합니다.

자세한 내용은 조건부 액세스 정책을 참조하세요.

Microsoft Entra ID 토큰을 사용하는 허용 목록

Azure DevOps 인증에 Microsoft Entra ID 사용하는 경우 기본 허용 목록은 Git URL을 다음으로 제한합니다.

  • dev.azure.com
  • visualstudio.com

자세한 내용은 Git URL 허용 목록을 참조하세요.

Git 폴더 암호화

Azure Databricks 기본 키를 사용하여 Git 폴더 콘텐츠를 암호화합니다. 고객 관리형 키는 Git 자격 증명 암호화에만 지원됩니다.

GitHub 토큰 스토리지 및 액세스

  • Azure Databricks 컨트롤 플레인은 인증 토큰을 저장합니다. 직원은 감사된 임시 자격 증명을 통해서만 액세스할 수 있습니다.
  • Azure Databricks 토큰 생성 및 삭제를 기록하지만 사용법은 기록하지 않습니다. Git 작업 로깅을 사용하면 Azure Databricks 애플리케이션의 토큰 사용량을 감사할 수 있습니다.
  • GitHub 엔터프라이즈는 토큰 사용량을 감사합니다. 다른 Git 서비스는 서버 감사를 제공할 수도 있습니다.

GPG 커밋 서명

Git 폴더는 커밋의 GPG 서명을 지원하지 않습니다.

SSH 지원

Git 폴더는 SSH가 아닌 HTTPS만 지원합니다.

Azure DevOps 교차 테넌트 오류

별도의 테넌트에서 DevOps에 연결할 때 Unable to parse credentials from Azure Active Directory account 표시될 수 있습니다. Azure DevOps 프로젝트가 Azure Databricks와 다른 Microsoft Entra ID 테넌시에 있는 경우, Azure DevOps 액세스 토큰을 사용합니다. 개인용 액세스 토큰을 참조하세요.

CI/CD 및 MLOps

Git 폴더의 파일에 대해 작업을 실행하는 경우 Git 작업이 명확하지 않을 수 있는 방식으로 Notebook 상태 및 MLflow 실험에 어떤 영향을 줄 수 있는지 알고 있어야 합니다.

수신 변경 사항이 노트 상태를 초기화합니다.

Git 작업으로 Notebook 소스 코드가 변경되면, 셀 출력, 주석, 버전 기록, 위젯을 포함한 Notebook 상태가 손실됩니다. 예를 들어 git pull이 Notebook 소스 코드를 변경하면 Git 폴더가 기존의 Notebook을 덮어쓰게 됩니다. 또는 새 분기 만들기와 같은 git commitpush작업은 소스 코드에 영향을 주지 않으며 Notebook 상태를 유지합니다.

중요합니다

Databricks Runtime 14.x 이하의 Git 폴더에서는 MLflow 실험이 작동하지 않습니다.

Git 폴더의 MLflow 실험

MLflow 실험에는 작업 영역Notebook의 두 가지 유형이 있습니다. MLflow 실험을 사용하여 학습 실행 구성을 참조하세요.

  • 작업 영역 실험: Git 폴더에서 작업 영역 MLflow 실험을 만들 수 없습니다. MLflow 실행을 일반 작업 공간 폴더에서 만든 실험에 기록합니다. 다중 사용자 공동 작업의 경우 공유 작업 영역 폴더를 사용합니다.

  • Notebook 실험: Databricks Git 폴더에서 Notebook 실험을 만들 수 있습니다. 노트북을 소스 제어에 .ipynb 파일로 등록하면, MLflow는 자동으로 생성된 실험에 로그를 기록합니다. 소스 제어는 실험 또는 해당 실행을 체크 인하지 않습니다. Notebook 실험 만들기를 참조하세요.

MLflow 실험에서 데이터 손실 방지

원격 리포지토리의 소스 코드를 사용하여 Lakeflow Jobs를 통해 생성된 Notebook MLflow 실험은 임시 스토리지에 저장됩니다. 이러한 실험은 워크플로 실행 후 초기에 유지되지만 예약된 정리 중에는 삭제될 위험이 있습니다. Databricks에서는 작업 및 원격 Git 소스와 함께 작업 공간의 MLflow 실험을 사용하는 것을 권장합니다.

경고

노트북을 포함하지 않는 분기로 변경하면 관련된 MLflow 실험 데이터가 손실될 위험이 있습니다. 30일 이내에 이전 지점을 방문하지 않으면 이 손실이 영구적이 됩니다.

30일 만료 전에 누락된 실험 데이터를 복구하려면 원래 전자 필기장 이름을 복원하고 전자 필기장을 열고 오른쪽 창에서 실험 아이콘 을 클릭합니다. 이렇게 하면 mlflow.get_experiment_by_name()가 트리거되어 실험을 복구하고 실행합니다. 30일 후, Azure Databricks는 GDPR 준수를 위해 고아가 된 MLflow 실험을 삭제합니다.

데이터 손실을 방지하려면 리포지토리에서 Notebook의 이름을 바꾸지 마세요. 전자 필기장 이름을 바꾸면 오른쪽 창에서 실험 아이콘을 즉시 클릭합니다.

Git 작업 중 작업 실행

Git 작업 중에 일부 Notebook은 업데이트될 수 있지만 다른 Notebook은 아직 업데이트되지 않아 예측할 수 없는 동작이 발생할 수 있습니다.

예를 들어, notebook Anotebook Z%run로 호출하고 있을 때 Git 작업 중에 작업이 시작되면, 해당 작업은 최신 notebook A와 함께 이전 notebook Z을 실행할 수 있습니다. 작업이 실패하거나 다른 커밋의 Notebook을 실행할 수 있습니다.

이를 방지하려면 작업 영역 경로 대신 Git 공급자를 원본으로 사용하도록 작업 작업을 구성합니다. Lakeflow 작업에서 Git 사용을 참조하세요.

다음 단계