Databricks Git 폴더와 Git 통합에 대한 제한 및 FAQ
Databricks Git 폴더 및 Git 통합에는 다음 섹션에서 지정한 제한이 있습니다. 일반 정보는 Databricks 제한을 참조하세요.
이동:
파일 및 리포지토리 제한
Azure Databricks는 리포지토리 크기에 제한을 적용하지 않습니다. 단,
- 작업 분기는 1GB(기가바이트)로 제한됩니다.
- 10MB보다 큰 파일은 Azure Databricks UI에서 볼 수 없습니다.
- 개별 작업 영역 파일에는 별도의 크기 제한이 적용됩니다. 추가 세부 정보는 제한 사항을 참조하세요.
Databricks는 리포지토리에서 다음을 권장합니다.
- 모든 작업 영역 자산 및 파일의 합계 수가 20,000개를 초과하지 않습니다.
Git 작업의 경우 메모리 사용이 2GB로 제한되고 디스크 쓰기는 4GB로 제한됩니다. 제한은 작업당이므로 현재 크기가 5GB인 Git 리포지토리를 복제하려고 하면 오류가 발생합니다. 그러나 한 작업에서 크기가 3GB인 Git 리포지토리를 복제한 다음 나중에 2GB를 추가하면 다음 끌어오기 작업이 성공합니다.
리포지토리가 이러한 제한을 초과하면 오류 메시지가 표시될 수 있습니다. 리포지토리를 복제할 때 시간 제한 오류가 표시될 수도 있지만 백그라운드에서 작업을 완료할 수 있습니다.
크기 제한보다 큰 리포지토리로 작업하려면 스파스 체크 아웃을 시도합니다.
클러스터가 종료된 후 유지하지 않으려는 임시 파일을 작성해야 하는 경우, 분기 크기 제한을 초과하지 않도록 $TEMPDIR
임시 파일을 작성하면 CWD가 작업 영역 파일 시스템에 있는 경우 CWD(현재 작업 디렉터리)에 쓰는 것보다 성능이 향상됩니다. 자세한 내용은 Azure Databricks에서 임시 파일을 어디에 작성해야 하나요?.
작업 영역당 최대 Git 폴더 수
작업 영역당 최대 Git 폴더 수는 2,000개입니다. 더 많이 필요한 경우 Databricks 지원에 문의하세요.
작업 영역의 Git 폴더에서 삭제된 파일 복구
Git 폴더의 작업 영역 작업은 파일 복구에 따라 다릅니다. 일부 작업은 휴지통 폴더를 통해 복구할 수 있지만 다른 작업은 복구할 수 없습니다. 원격 분기로 이전에 커밋되고 푸시된 파일은 원격 Git 리포지토리에 대한 Git 커밋 기록을 사용하여 복원할 수 있습니다. 이 표에서는 각 작업의 동작 및 복구 가능성을 간략하게 설명합니다.
작업 | 파일을 복구할 수 있나요? |
---|---|
작업 영역 브라우저를 사용하여 파일 삭제 | 예, 휴지통 폴더에서 |
Git 폴더 대화 상자를 사용하여 새 파일 삭제 | 예, 휴지통 폴더에서 |
Git 폴더 대화 상자를 사용하여 수정된 파일 삭제 | 아니요, 파일이 사라졌습니다. |
reset (하드) 커밋되지 않은 파일 수정 |
아니요, 파일 수정이 사라졌습니다. |
reset 커밋되지 않은 새로 만든 파일에 대한 (하드) |
아니요, 파일 수정이 사라졌습니다. |
Git 폴더 대화 상자를 사용하여 분기 전환 | 예, 원격 Git 리포지토리에서 |
Git 폴더 대화 상자의 기타 Git 작업(커밋 및 푸시 등) | 예, 원격 Git 리포지토리에서 |
PATCH Repos API에서 업데이트하는 /repos/id 작업 |
예, 원격 Git 리포지토리에서 |
monorepo 지원
Databricks는 monorepos를 통해 지원되는 Git 폴더를 만들지 않는 것이 좋습니다. 여기서 monorepo 여러 프로젝트에서 수천 개의 파일이 있는 대규모 단일 조직 Git 리포지토리입니다.
Git 폴더에서 지원되는 자산 유형
특정 Azure Databricks 자산 유형만 Git 폴더에서 지원됩니다. 지원되는 자산 형식은 직렬화, 버전 제어 및 지원 Git 리포지토리로 푸시할 수 있습니다.
현재 지원되는 자산 유형은 다음과 같습니다.
자산 유형 | 세부 정보 |
---|---|
파일 | 파일은 직렬화된 데이터이며 라이브러리에서 이진 파일, 코드, 이미지에 이르기까지 모든 것을 포함할 수 있습니다. 자세한 내용은 작업 영역 파일이란?을 참조 하세요. |
Notebook | Notebook은 특히 Databricks에서 지원하는 Notebook 파일 형식입니다. Notebook은 직렬화되지 않으므로 파일과 별도의 Azure Databricks 자산 형식으로 간주됩니다. Git 폴더는 파일 확장명(예: .ipynb ) 또는 파일 확장명 또는 파일 콘텐츠의 특수 표식(예: 원본 파일 시작 부분의 # Databricks notebook source 주석)과 결합된 파일 확장명별로 Notebook을 .py 결정합니다. |
폴더 | 폴더는 Git에서 파일의 논리적 그룹화에 대한 직렬화된 정보를 나타내는 Azure Databricks 관련 구조입니다. 예상대로 사용자는 Azure Databricks Git 폴더를 보거나 Azure Databricks CLI를 사용하여 액세스할 때 이를 "폴더"로 경험합니다. |
쿼리(공개 미리 보기) | Databricks SQL(DBSQL) 쿼리는 IPYNB 노트북(파일 확장자: .dbquery.ipynb )으로 커밋할 수 있습니다. DBSQL 쿼리를 위한 Git 지원을 사용하려면 새 SQL 편집기을 사용하도록 설정해야 합니다. 새 SQL 편집기 기능을 사용하지 않도록 설정하여 만든 쿼리는 Git 폴더에 배치할 수 있지만 원격 리포지토리에 커밋할 수는 없습니다. |
현재 Git 폴더에서 지원되지 않는 Azure Databricks 자산 유형은 다음과 같습니다.
- 경고
- 대시보드(레거시 대시보드 포함)
- 실험
- Genie 스페이스
Git에서 자산을 사용하는 경우 파일 이름 지정에 다음과 같은 제한 사항이 적용됩니다.
- 파일 확장명 차이가 있더라도 폴더에는 같은 Git 리포지토리에 있는 다른 전자 필기장, 파일 또는 폴더와 이름이 같은 전자 필기장을 포함할 수 없습니다. (원본 형식 Notebook의 경우 확장은
.py
python, Scala,.scala
.sql
SQL 및.r
R용입니다. IPYNB 형식 Notebook의 경우 확장은.ipynb
.) 예를 들어 원본 형식 Python Notebook 파일(test1.py
)이 직렬화test1
되고 충돌이 발생하기 때문에 동일한 Git 폴더에 이름이 지정된test1.py
test1
원본 형식 Notebook과 IPYNB Notebook을 사용할 수 없습니다. - 파일 이름에서는 문자
/
가 지원되지 않습니다. 예를 들어 Git 폴더에 이름이 지정된i/o.py
파일을 가질 수 없습니다.
이러한 패턴이 있는 이름의 파일에 대해 Git 작업을 수행하려고 하면 "Git 상태를 가져오는 동안 오류가 발생합니다" 메시지가 표시됩니다. 이 오류가 예기치 않게 발생하면 Git 리포지토리에 있는 자산의 파일 이름을 검토합니다. 이러한 충돌하는 패턴이 있는 이름이 있는 파일을 찾으면 이름을 바꾸고 작업을 다시 시도합니다.
참고 항목
지원되지 않는 기존 자산을 Git 폴더로 이동할 수 있지만 변경 내용을 원격 리포지토리에 커밋할 수는 없습니다.
전자 필기장 형식
Git 폴더의 Notebook 형식에 대한 자세한 내용은 Notebook 형식을 참조하세요.
질문과 대답: Git 폴더 구성
Azure Databricks 리포지토리 콘텐츠는 어디에 저장되어 있나요?
리포지토리의 내용은 컨트롤 플레인의 디스크에 일시적으로 복제됩니다. Azure Databricks Notebook 파일은 기본 작업 영역의 Notebook과 마찬가지로 컨트롤 플레인 데이터베이스에 저장됩니다. Notebook이 아닌 파일은 최대 30일 동안 디스크에 저장됩니다.
Git 폴더는 온-프레미스 또는 자체 호스트 Git 서버를 지원합니까?
또한 Databricks Git 폴더는 서버가 인터넷에 액세스할 수 있는 경우 GitHub Enterprise, Bitbucket 서버, Azure DevOps Server 및 GitLab 자체 관리 통합을 지원합니다. Git 폴더를 온-프레미스 Git 서버와 통합하는 세부 정보는 Git 폴더용 Git 프록시 서버를 읽어 보세요.
인터넷에 액세스할 수 없는 Bitbucket Server, GitHub Enterprise Server 또는 GitLab 자체 관리형 구독 인스턴스와 통합하려면 Azure Databricks 계정 팀에 문의하세요.
Git 폴더에서 지원되는 Databricks 자산 유형은 무엇인가요?
지원되는 자산 유형에 대한 자세한 내용은 Git 폴더에서 지원되는 자산 유형을 참조 하세요.
Git 폴더는 .gitignore
파일을 지원합니까?
예. 리포지토리에 파일을 추가하고 Git에서 추적하지 않도록 하려면 .gitignore
파일을 만들거나 원격 리포지토리에서 복제된 파일을 사용하고 확장명을 포함한 파일 이름을 추가합니다.
.gitignore
는 Git에서 아직 추적되지 않은 파일에 대해서만 작동합니다. Git에서 이미 추적한 파일을 .gitignore
파일에 추가하면 파일이 여전히 Git에서 추적됩니다.
사용자 폴더가 아닌 최상위 폴더를 만들 수 있나요?
예, 관리자는 단일 깊이로 최상위 폴더를 만들 수 있습니다. Git 폴더는 추가 폴더 수준을 지원하지 않습니다.
Git 폴더는 Git 하위 모듈을 지원하나요?
아니요. Git 하위 모듈이 포함된 리포지토리를 복제할 수 있지만 하위 모듈은 복제되지 않습니다.
ADF(Azure Data Factory)가 Git 폴더를 지원하나요?
예.
원본 관리
다른 분기를 끌어오거나 체크 아웃할 때 Notebook 대시보드가 사라지는 이유는 무엇인가요?
이는 현재 제한 사항입니다. Azure Databricks Notebook 원본 파일이 Notebook 대시보드 정보를 저장하지 않기 때문입니다.
Git 리포지토리에서 대시보드를 유지하려면 Notebook 형식을 .ipynb
(Jupyter Notebook 형식)으로 변경합니다. 기본적으로 .ipynb
는 대시보드 및 시각적 개체 정의 파일을 지원합니다. 그래프 데이터(데이터 요소)를 유지하려면 출력을 사용하여 Notebook을 커밋해야 합니다.
.ipynb
Notebook 출력 커밋에 대한 정보를 알아보려면 .ipynb
Notebook 출력 커밋 허용을 참조하세요.
Git 폴더는 분기 병합을 지원합니까?
예. Git 공급자를 통해 끌어오기 요청도 만들고 병합할 수도 있습니다.
Azure Databricks 리포지토리에서 분기를 삭제할 수 있나요?
아니요. 분기를 삭제하려면 Git 공급자에서 작업해야 합니다.
라이브러리가 클러스터에 설치되어 있고 이름이 동일한 라이브러리가 리포지토리 내의 폴더에 포함된 경우 어떤 라이브러리를 가져오나요?
리포지토리의 라이브러리를 가져옵니다. Python의 라이브러리 우선 순위에 대한 자세한 내용은 Python 라이브러리 우선 순위를 참조하세요.
외부 오케스트레이션 도구를 사용하지 않고 작업을 실행하기 전에 Git에서 최신 버전의 리포지토리를 끌어올 수 있나요?
아니요. 일반적으로 이를 Git 서버에서 사전 커밋으로 통합하여 분기(기본/프로덕션)에 대한 모든 푸시가 프로덕션 리포지토리를 업데이트하도록 할 수 있습니다.
리포지토리를 내보낼 수 있나요?
Notebook, 폴더 또는 전체 리포지토리를 내보낼 수 있습니다. Notebook이 아닌 파일은 내보낼 수 없습니다. 전체 리포지토리를 내보내는 경우 Notebook이 아닌 파일은 포함되지 않습니다. 내보내려면 workspace export
에서 명령을 사용하거나 작업 영역 API를 사용합니다.
보안, 인증 및 토큰
Microsoft Entra ID에 대한 CAP(조건부 액세스 정책) 문제
리포지토리를 복제하려고 하면 다음과 같은 경우 "액세스 거부" 오류 메시지가 표시될 수 있습니다.
- Azure Databricks는 Microsoft Entra ID 인증과 함께 Azure DevOps를 사용하도록 구성되어 있습니다.
- Azure DevOps에서 조건부 액세스 정책 및 Microsoft Entra ID 조건부 액세스 정책을 사용하도록 설정했습니다.
이 문제를 해결하려면 IP 주소 또는 Azure Databricks 사용자의 CAP(조건부 액세스 정책)에 제외를 추가합니다.
자세한 내용은 조건부 액세스 정책을 참조하세요.
Azure AD 토큰을 사용하여 목록 허용
Azure DevOps 인증에 AAD(Azure Active Directory)를 사용하는 경우 기본 허용 목록은 Git URL을 다음으로 제한합니다.
dev.azure.com
visualstudio.com
자세한 내용은 허용 목록으로 원격 리포지토리 사용 제한을 참조하세요.
Azure Databricks Git 폴더의 콘텐츠가 암호화되나요?
Azure Databricks Git 폴더의 콘텐츠는 Azure Databricks에 의해 기본 키를 사용하여 암호화됩니다. 고객 관리형 키를 사용한 암호화는 Git 자격 증명을 암호화하는 경우를 제외하고는 지원되지 않습니다.
GitHub 토큰은 Azure Databricks에 저장되는 방법 및 위치 누가 Azure Databricks에서 액세스할 수 있나요?
- 인증 토큰은 Azure Databricks 컨트롤 플레인에 저장되며 Azure Databricks 직원은 감사되는 임시 자격 증명을 통해서만 액세스 권한을 얻을 수 있습니다.
- Azure Databricks는 인증 토큰의 생성 및 삭제를 기록하지만 사용은 기록하지 않습니다. Azure Databricks에는 Azure Databricks 애플리케이션에서 토큰 사용을 감사하는 데 사용할 수 있는 Git 작업을 추적하는 로깅이 있습니다.
- GitHub 엔터프라이즈는 토큰 사용을 감사합니다. 다른 Git 서비스에도 Git 서버 감사가 있을 수 있습니다.
Git 폴더는 커밋의 GPG 서명을 지원하나요?
아니요.
Git 폴더는 SSH를 지원합니까?
아니요, 단지 HTTPS
만 지원합니다.
다른 테넌트에서 Azure Databricks를 Azure DevOps 리포지토리에 연결하는 오류
별도의 테넌트에서 DevOps에 연결하려고 하면 Unable to parse credentials from Azure Active Directory account
메시지가 표시될 수 있습니다. Azure DevOps 프로젝트가 Azure Databricks와 다른 Microsoft Entra ID 테넌트인 경우 Azure DevOps의 액세스 토큰을 사용해야 합니다.
DevOps 토큰을 사용하여 Azure DevOps에 연결을 참조하세요.
CI/CD 및 MLOps
수신 변경 내용이 Notebook 상태를 지움
Notebook 소스 코드를 변경하는 Git 작업은 셀 출력, 메모, 버전 기록, 위젯을 포함하는 Notebook 상태의 손실을 초래합니다. 예를 들어 git pull
은 Notebook의 소스 코드를 변경할 수 있습니다. 이 경우 Databricks Git 폴더는 변경 내용을 가져오기 위해 기존 Notebook을 덮어써야 합니다.
git commit
및 push
또는 새 분기 만들기는 Notebook 소스 코드에 영향을 미치지 않으므로 이러한 작업에서는 Notebook 상태가 유지됩니다.
Important
MLflow 실험은 DBR 14.x 이하 버전의 Git 폴더에서 작동하지 않습니다.
리포지토리에서 MLflow 실험을 만들 수 있나요?
MLflow 실험에는 작업 영역과 Notebook의 두 가지 유형이 있습니다. 두 가지 유형의 MLflow 실험에 대한 세부 정보는 MLflow 실험을 사용하여 학습 실행 구성을 참조하세요.
Git 폴더에서 유형 및 로그 실행 중 하나의 MLflow 실험을 위해 mlflow.set_experiment("/path/to/experiment")
를 호출 할 수 있지만 해당 실험 및 연결된 실행은 소스 제어로 확인되지 않습니다.
작업 영역 MLflow 실험
Databricks Git 폴더(Git 폴더)에서는 작업 영역 MLflow 실험을 만들 수 없습니다. 여러 사용자가 별도의 Git 폴더를 사용하여 동일한 ML 코드에서 공동 작업하는 경우 로그 MLflow는 정규 작업 영역 폴더에서 만든 MLflow 실험으로 실행됩니다.
Notebook MLflow 실험
Databricks Git 폴더에서 Notebook 실험을 만들 수 있습니다. Notebook을 소스 제어에 .ipynb
파일로 확인하면 자동으로 생성되고 연결된 MLflow 실험에 MLflow 실행을 기록할 수 있습니다. 추가 세부 정보는 Notebook 실험 만들기를 읽어보세요.
MLflow 실험에서 데이터 손실 방지
원격 리포지토리의 소스 코드와 함께 Databricks 작업을 사용하여 만든 Notebook MLflow 실험은 임시 스토리지 위치에 저장됩니다. 이러한 실험은 워크플로 실행 후 처음에 유지되지만 임시 스토리지에서 예약된 파일 제거 중에 나중에 삭제될 위험이 있습니다. Databricks에서는 작업 및 원격 Git 원본에서 작업 영역 MLflow 실험을 사용하는 것이 좋습니다.
Warning
Notebook이 포함되지 않은 분기로 전환할 때마다 연결된 MLflow 실험 데이터가 손실될 위험이 있습니다. 이전 분기에 30일 이내에 액세스하지 않으면 이 손실은 영구 상태가 됩니다.
30일이 만료되기 전에 누락된 실험 데이터를 복구하려면 Notebook 이름을 원래 이름으로 다시 바꾸고, Notebook을 열고, 오른쪽 창에서 '실험' 아이콘(mlflow.get_experiment_by_name()
API를 효과적으로 호출함)을 클릭하면 복구된 실험을 보고 실행할 수 있습니다. 30일 후에는 GDPR 준수 정책을 충족하기 위해 분리된 모든 MLflow 실험이 제거됩니다.
이러한 상황을 방지하기 위해 Databricks는 리포지토리에서 Notebook 이름을 완전히 바꾸는 것을 방지하거나 전자 필기장 이름을 바꾸는 경우 전자 필기장 이름을 바꾼 직후 오른쪽 창에서 '실험' 아이콘을 클릭하는 것이 좋습니다.
Git 작업 진행 중에 작업 영역에서 Notebook에서 작업이 실행되면 어떻게 되나요?
Git 작업이 진행되는 동안 언제든지 리포지토리의 일부 Notebook은 업데이트되었지만 다른 Notebook은 업데이트되지 않았을 수 있습니다. 이로 인해 예기치 않은 동작이 발생할 수 있습니다.
예를 들어 notebook A
가 notebook Z
명령을 사용하여 %run
를 호출한다고 가정합니다. Git 작업 중에 실행 중인 작업이 최신 버전의 notebook A
를 시작하지만 notebook Z
가 아직 업데이트 되지 않은 경우 Notebook A의 %run
명령은 이전 버전의 notebook Z
를 시작할 수 있습니다.
Git 작업 중에는 Notebook 상태를 예측할 수 없으며 작업이 다른 커밋에서 notebook A
및 notebook Z
를 실패하거나 실행할 수 있습니다.
이 상황을 방지하려면 Git 기반 작업(원본이 작업 영역 경로가 아닌 Git 공급자)을 대신 사용합니다. 자세한 내용은 작업과 함께 Git 사용을 참조하세요.
리소스
Databricks 작업 영역 파일에 대한 세부 정보는 작업 영역 파일이란?을 참조하세요.