소스 제어(미리 보기)

적용 대상:✅ Microsoft Fabric의 Warehouse

이 문서에서는 Microsoft Fabric 웨어하우스에서 Git 통합 및 배포 파이프라인이 작동하는 방식을 설명합니다. 리포지토리에 대한 연결을 설정하고, 웨어하우스를 관리하고, 다양한 환경에 배포하는 방법을 알아봅니다. Fabric Warehouse의 소스 제어는 현재 미리 보기 기능입니다.

다양한 시나리오에 대해 Git 통합배포 파이프라인을 모두 사용할 수 있습니다.

  • Git 및 SQL 데이터베이스 프로젝트를 사용하여 개별 데이터베이스 개체에서 증분 변경, 팀 공동 작업 및 커밋 기록을 관리합니다.
  • 배포 파이프라인을 사용하여 코드 변경 내용을 다양한 사전 프로덕션 및 프로덕션 환경으로 전환합니다.

Git 통합

Microsoft Fabric Git 통합을 통해 개발자는 개발 프로세스, 도구 및 모범 사례를 Fabric 플랫폼에 직접 통합할 수 있습니다. Fabric 개발 중인 개발자는 다음을 수행할 수 있습니다.

  • 작업 백업 및 버전 관리
  • 필요에 따라 이전 스테이지로 되돌리기
  • Git 분기를 사용하여 다른 사용자와 공동 작업하거나 단독으로 작업
  • 친숙한 소스 제어 도구의 기능을 적용하여 Fabric 항목 관리

Git 통합 프로세스에 대한 자세한 내용은 다음을 참조하세요.

소스 제어에 연결 설정

작업 영역 설정 페이지에서 변경 내용을 커밋하고 동기화하도록 리포지토리에 대한 연결을 쉽게 설정할 수 있습니다.

  1. 연결을 설정하려면 Git 통합 시작을 참조하세요. 지침에 따라 Git 공급자로 Azure DevOps 또는 GitHub을 사용하여 Git 리포지토리에 연결하십시오.
  2. 연결되면 웨어하우스를 포함한 항목이 소스 제어 패널에 표시됩니다. Fabric 포털에서 소스 제어 설정의 창고 스크린샷.
  3. 웨어하우스 인스턴스를 Git 리포지토리에 성공적으로 연결하면 리포지토리에 웨어하우스 폴더 구조가 표시됩니다. 이제 Pull 요청 만들기와 같은 향후 작업을 실행할 수 있습니다.

Git의 웨어하우스에 대한 데이터베이스 프로젝트

다음 이미지는 리포지토리에 있는 각 웨어하우스 항목의 파일 구조 예제입니다.

Fabric 포털에서 가져온 샘플 데이터베이스 스키마의 스크린샷입니다.

웨어하우스 항목을 Git 리포지토리에 커밋하면 웨어하우스가 SQL 데이터베이스 프로젝트로 소스 코드 형식으로 변환됩니다. SQL 프로젝트는 테이블, 저장 프로시저 또는 함수와 같은 단일 데이터베이스의 스키마를 구성하는 SQL 개체의 로컬 표현입니다. 데이터베이스 개체의 폴더 구조는 스키마/개체 유형별로 구성됩니다. 웨어하우스의 각 개체는 DDL(데이터 정의 언어) 정의를 포함하는 .sql 파일로 표시됩니다. 웨어하우스 테이블 데이터 및 SQL 보안 기능은 SQL 데이터베이스 프로젝트에 포함되지 않습니다.

공유 쿼리도 리포지토리에 커밋되고 저장되는 이름을 상속합니다.

배포 파이프라인

배포 파이프라인을 사용하여 개발, 테스트, 프로덕션 등 다양한 환경에 웨어하우스 코드를 배포할 수도 있습니다. 배포 파이프라인은 데이터베이스 프로젝트를 노출하지 않습니다.

배포 파이프라인을 사용하여 웨어하우스 배포를 완료하려면 다음 단계를 사용합니다.

  1. 새 배포 파이프라인을 만들거나 기존 배포 파이프라인을 엽니다. 자세한 내용은 배포 파이프라인 시작을 참조하세요.
  2. 배포 목표에 따라 작업 영역을 여러 단계에 할당합니다.
  3. 다음 예제와 같이 여러 단계 간에 웨어하우스를 포함한 항목을 선택, 보기 및 비교합니다.  개발, 테스트 및 프로덕션 단계의 Fabric 포털에서 스크린샷.
  4. 배포를 선택하여 개발, 테스트프로덕션 단계에서 웨어하우스를 배포합니다.

Fabric 배포 파이프라인 프로세스에 대한 자세한 내용은 배포 파이프라인 소개를 참조하세요.

소스 제어의 제한 사항

  • 스크립트 기반 접근 방식을 사용하여 SQL 보안 기능을 내보내거나 마이그레이션해야 합니다. SQL 데이터베이스 프로젝트에서 배포 후 스크립트를 사용하는 것이 좋습니다. Visual Studio Code 사용할 수 있는 SQL 데이터베이스 프로젝트 확장 사용하여 프로젝트를 열어 이 스크립트를 구성할 수 있습니다.

Git 통합의 제한 사항

  • 현재 데이터베이스 프로젝트에 제약 조건 또는 열을 추가하는 데 사용하는 ALTER TABLE 경우 배포 프로세스는 테이블을 삭제하고 다시 생성하므로 데이터가 손실됩니다. 테이블 정의 및 데이터를 유지하려면 다음 해결 방법을 고려합니다.
    • 웨어하우스에 테이블의 새 복사본을 생성하려면 CREATE TABLEINSERT를 사용하거나, CREATE TABLE AS SELECT 또는 Clone table을 사용하십시오.
    • 를 사용하여 ALTER TABLE원하는 대로 새 제약 조건 또는 열로 새 테이블 정의를 수정합니다.
    • 이전 테이블을 삭제합니다.
    • sp_rename 사용하여 새 테이블의 이름을 이전 테이블의 이름으로 바꿉니다.
    • 정확히 동일한 방식으로 SQL 데이터베이스 프로젝트의 이전 테이블 정의를 수정합니다. 이제 소스 제어에 있는 웨어하우스와 라이브 웨어하우스의 SQL 데이터베이스 프로젝트가 일치해야 합니다.
  • 현재 웨어하우스에 대한 출력 대상이 있는 Dataflow Gen2를 만들지 마세요. 명명된 DataflowsStagingWarehouse 새 항목이 리포지토리에 표시되고 Git에서 커밋 및 업데이트가 차단됩니다.
  • Fabric Git 통합은 SQL 분석 엔드포인트 항목을 지원하지 않습니다.
  • SQL 분석 엔드포인트와 웨어하우스 간의 항목 간 종속성, 항목 시퀀싱 및 동기화 격차는 개발 및 연속 통합 중에 "새 작업 영역 또는 기존 작업 영역으로 분기"와 "다른 분기로 전환" 워크플로에 영향을 줍니다.

배포 파이프라인에 대한 제한 사항

  • 현재 데이터베이스 프로젝트에 제약 조건 또는 열을 추가하는 데 사용하는 ALTER TABLE 경우 배포 프로세스는 테이블을 삭제하고 다시 생성하므로 데이터가 손실됩니다.
  • 현재 웨어하우스에 대한 출력 대상이 있는 Dataflow Gen2를 만들지 마세요. 새 항목이 DataflowsStagingWarehouse 배포 파이프라인에 나타나고 배포를 차단합니다.
  • Fabric 배포 파이프라인은 SQL 분석 엔드포인트 항목을 지원하지 않습니다.
  • SQL 분석 엔드포인트와 웨어하우스 간의 항목 간 종속성, 항목 시퀀싱 및 동기화 간격은 배포 파이프라인 워크플로에 Fabric 영향을 줍니다.

지원되지 않는 시나리오

다른 작업 영역의 웨어하우스에 서로 다른 데이터 정렬이 있는 경우 다음 CI/CD 워크플로는 공식적으로 지원되지 않습니다. 이러한 작업은 오류 없이 성공할 수 있지만 메타데이터 오류가 발생할 수 있습니다.

이러한 모든 시나리오에서 데이터 정렬 불일치가 발생하는 경우 Fabric 도구 상자 GitHub 리포지토리에서 Python 스크립트 scripts/dw-collation-error-update-tmsl/pbi_interactive.py 사용하여 웨어하우스 데이터 정렬과 일치하도록 데이터 세트(TMSL) 데이터 정렬을 업데이트합니다.

시나리오 설명 위험
배포 파이프라인 원본과 다른 데이터 정렬을 사용하여 대상 웨어하우스를 만든 파이프라인 단계(예: Dev → Test → Prod)를 통해 웨어하우스 콘텐츠를 승격하는 것은 지원되지 않습니다. 배포는 성공할 수 있지만 데이터 세트 데이터 정렬은 대상 웨어하우스 데이터 정렬과 일치하도록 업데이트되지 않습니다.
새 작업 영역 또는 기존 작업 영역으로 분기 Git 통합을 사용하여 기존 작업 영역에서 웨어하우스에 다른 데이터 정렬이 있는 새 작업 영역 또는 기존 작업 영역으로 분기할 수 없습니다. 웨어하우스 콘텐츠는 동기화되지만 데이터 정렬 메타데이터는 조정되지 않습니다.
작업 영역에서 분기 변경 Git 연결 작업 영역에서 다른 데이터 정렬의 웨어하우스와 연결된 분기로 전환하는 것은 지원되지 않습니다. 동기화된 콘텐츠는 현재 웨어하우스와 일치하지 않는 데이터 정렬 가정을 전달할 수 있습니다.
작업 영역 간의 변경 사항을 브랜치를 통해 병합하기 웨어하우스에 서로 다른 정렬 방식이 있는 워크스페이스에서 Git 브랜치 병합은 지원되지 않습니다. 병합은 Git 수준에서 성공할 수 있지만 결과 데이터 세트 데이터 정렬은 대상 웨어하우스의 데이터 정렬을 반영하지 않습니다.