Microsoft Fabric의 SQL 데이터베이스 원본 제어 통합
적용 대상:✅Microsoft Fabric의 SQL 데이터베이스
이 자습서에서는 Fabric git 통합 소스 제어를 사용하여 Fabric에서 SQL Database를 사용하는 방법을 알아봅니다.
Microsoft Fabric의 SQL 데이터베이스에는 소스 제어 통합 또는 "git 통합"이 있어 SQL 사용자가 시간이 지남에 따라 데이터베이스 개체의 정의를 추적할 수 있습니다. 이 통합을 통해 팀은 다음을 수행할 수 있습니다.
- 구성된 소스 제어 리포지토리(예: Azure DevOps)의 코드로 라이브 데이터베이스를 자동으로 변환하는 소스 제어에 데이터베이스를 커밋합니다.
- 데이터베이스에 차등 변경 내용을 적용하기 전에 소스 제어 리포지토리의 코드 유효성을 검사하는 소스 제어 콘텐츠에서 데이터베이스 개체를 업데이트합니다.
git에 익숙하지 않은 경우 몇 가지 권장 리소스는 다음과 같습니다.
이 문서에서는 패브릭의 SQL 데이터베이스를 사용하여 개발 프로세스를 관리하기 위해 개별적으로 또는 함께 사용할 수 있는 일련의 유용한 시나리오를 제공합니다.
필수 조건
- 기존의 Fabric 용량이 필요합니다. 그렇지 않은 경우 Fabric 평가판을 시작합니다.
- 패브릭 테넌트 설정에서 SQL 데이터베이스를 사용하도록 설정해야 합니다.
- Git 통합 테넌트 설정을 사용하도록 설정해야 합니다.
- 새 작업 영역을 만들거나 기존 패브릭 작업 영역을 사용합니다.
- Fabric에서 기존 SQL 데이터베이스를 만들거나 사용합니다. 아직 없는 경우 Fabric에서 새 SQL 데이터베이스를 만듭니다.
- 선택 사항: VS Code용 Visual Studio Code, mssql 확장 및 SQL 프로젝트 확장을 설치합니다.
설정
이 리포지토리 연결은 리포지토리의 단일 분기가 해당 작업 영역과 연결되도록 작업 영역 수준에서 적용됩니다. 리포지토리에는 여러 분기가 있을 수 있지만 작업 영역 설정에서 선택한 분기의 코드만 작업 영역에 직접적인 영향을 줍니다.
작업 영역을 소스 제어 리포지토리에 연결하는 단계는 Git 통합 시작을 참조하세요. 작업 영역을 Azure DevOps 또는 GitHub 원격 리포지토리 연결할 수 있습니다.
원본 제어에 패브릭 SQL 데이터베이스 추가
이 시나리오에서는 데이터베이스 개체를 소스 제어에 커밋합니다. 테스트 데이터베이스에서 직접 개체를 만들고 애플리케이션 코드와 마찬가지로 소스 제어에서 해당 데이터베이스를 추적하는 애플리케이션을 개발할 수 있습니다. 결과적으로 데이터베이스 개체 정의 기록에 액세스할 수 있으며 분기 및 병합과 같은 Git 개념을 사용하여 개발 프로세스를 추가로 사용자 지정할 수 있습니다.
- 패브릭 SQL 편집기, SQL Server Management Studio, Visual Studio Code를 사용한 mssql 확장 또는 기타 외부 도구에서 SQL 데이터베이스에 연결합니다.
- 데이터베이스에 새 테이블, 저장 프로시저 또는 기타 개체를 만듭니다.
- 데이터베이스에
...
대한 메뉴를 선택하고 Git 동기화 상태 새로 고침을 선택합니다. - 소스 제어 단추를 선택하여 소스 제어판을 엽니다.
- 원하는 데이터베이스 옆의 확인란을 선택합니다. 커밋을 선택합니다. Fabric 서비스는 데이터베이스에서 개체 정의를 읽고 원격 리포지토리 씁니다.
- 이제 코드 리포지토리 원본 뷰에서 데이터베이스 개체의 기록을 볼 수 있습니다.
기존 개체 편집을 포함하여 데이터베이스를 계속 편집할 때 이전 단계에 따라 이러한 변경 내용을 소스 제어에 커밋할 수 있습니다.
소스 제어에서 Fabric SQL 데이터베이스 업데이트
이 시나리오에서는 VS Code의 SQL 프로젝트 확장에서 데이터베이스 개체를 코드로 만든 다음 소스 제어 통합에서 Fabric SQL 데이터베이스를 업데이트하기 전에 파일을 소스 제어에 커밋합니다. 이 시나리오는 VS Code에서 작업하거나 SQL 프로젝트를 사용하는 기존 애플리케이션이 있거나 고급 CI/CD 파이프라인 요구 사항이 있는 개발자를 대상으로 합니다.
- VS Code의 최신 릴리스와 VS Code용 mssql 및 SQL 프로젝트 확장을 설치했는지 확인합니다.
- VS Code의 통합 git 소스 제어를 사용합니다.
- 작업 영역에서 새 SQL 데이터베이스 를 만들고 개체를 추가하지 않고 소스 제어에 커밋합니다. 이 단계에서는 빈 SQL 프로젝트 및 SQL 데이터베이스 항목 메타데이터를 리포지토리에 추가합니다.
- 로컬 컴퓨터에 소스 제어 리포지토리를 복제합니다.
- Azure DevOps를 사용하는 경우 소스 제어 프로젝트의 상황에 맞는 메뉴를 선택합니다
...
. 복제를 선택하여 Azure DevOps 리포지토리를 로컬 머신에 복사합니다. Azure DevOps를 처음으로 사용하는 경우 Azure DevOps에 대한 git 가이드를 사용하여 코드를 참조하세요. - GitHub를 사용하는 경우 리포지토리에서 코드 단추를 선택하고 URL을 복사하여 리포지토리를 로컬 컴퓨터에 복제합니다. GitHub를 새로 사용하는 경우 리포지토리 복제 가이드를 참조하세요.
- Azure DevOps를 사용하는 경우 소스 제어 프로젝트의 상황에 맞는 메뉴를 선택합니다
- Visual Studio Code에서 복제된 폴더를 엽니다. 작업 영역과 연결된 분기가 기본값이 아닐 수 있습니다. 분기를 전환한 후 VS Code에 이름이 지정된
<yourdatabase>.SQLDatabase
폴더가 표시됩니다. - 데이터베이스의
.sql
폴더 구조 내에서 데이터베이스에 만들려는 하나 이상의 테이블에 대한 파일을 만듭니다. 파일에는 테이블에 대한 문이 포함되어CREATE TABLE
야 합니다. 예를 들어 다음 콘텐츠를 사용하여 폴더dbo/Tables
에 이름이 지정된MyTable.sql
파일을 만듭니다.CREATE TABLE dbo.MyTable ( Id INT PRIMARY KEY, ExampleColumn NVARCHAR(50) );
- 구문이 유효한지 확인하기 위해 SQL 프로젝트를 사용하여 데이터베이스 모델의 유효성을 검사할 수 있습니다. 파일을 추가한 후 VS Code 의 데이터베이스 프로젝트 보기를 사용하여 프로젝트를 빌드 합니다.
- 빌드 에 성공하면 VS Code 또는 기본 로컬 git 인터페이스의 소스 제어 뷰를 사용하여 파일을 소스 제어에 커밋 합니다.
- 커밋을 원격 리포지토리 푸시/동기화합니다. 새 파일이 Azure DevOps 또는 GitHub에 표시되었는지 확인합니다.
- 패브릭 웹 인터페이스로 돌아가서 작업 영역에서 소스 제어판을 엽니다. "git에서 보류 중인 변경 내용이 있습니다"라는 경고가 이미 있을 수 있습니다. 업데이트(모두 업데이트) 단추를 선택하여 SQL 프로젝트의 코드를 데이터베이스에 적용합니다.
- 업데이트 후 데이터베이스가 "커밋되지 않음"으로 즉시 표시될 수 있습니다. 이는 Git 통합 기능이 항목 정의에 대해 생성된 모든 파일 콘텐츠를 직접 비교하기 때문이며 일부 의도하지 않은 차이점이 발생할 수 있기 때문입니다. 한 가지 예는 열의 인라인 특성입니다. 이러한 경우 패브릭 웹 인터페이스의 소스 제어로 다시 커밋하여 커밋 작업의 일부로 생성된 정의와 동기화해야 합니다.
- 업데이트가 완료되면 선택한 도구를 사용하여 데이터베이스에 연결합니다. 데이터베이스에 표시되는 SQL 프로젝트에 추가한 개체입니다.
참고 항목
로컬 SQL 프로젝트를 변경할 때 구문 오류가 발생하거나 Fabric에서 지원되지 않는 기능을 사용하는 경우 데이터베이스 업데이트가 실패합니다. 계속하려면 먼저 소스 제어의 변경 사항을 수동으로 되돌려야 합니다.
분기 작업 영역 만들기
이 시나리오에서는 패브릭이 소스 제어 정의에 따라 리소스의 중복 집합을 만들게 하여 Fabric에서 새 개발 환경을 설정합니다. 중복 데이터베이스에는 원본 제어에 체크 인한 데이터베이스 개체가 포함됩니다. 이 시나리오는 Fabric에서 애플리케이션 개발 수명 주기를 계속하고 Fabric의 소스 제어 통합을 활용하는 개발자를 대상으로 합니다.
- 패브릭 SQL 데이터베이스를 소스 제어의 코드로 변환하는 시나리오를 완료합니다.
- SQL 프로젝트와 Fabric 개체 메타데이터를 모두 사용하는 소스 제어 리포지토리에 분기가 있어야 합니다.
- 패브릭 작업 영역에서 소스 제어판을 엽니다. 소스 제어 메뉴의 분기 탭에서 새 작업 영역으로 분기를 선택합니다.
- 만들 분기 및 작업 영역의 이름을 지정합니다. 분기는 소스 제어 리포지토리에 만들어지고 분기할 작업 영역과 연결된 분기의 커밋된 내용으로 채워집니다. 작업 영역은 패브릭에서 만들어집니다.
- 패브릭에서 새로 만든 작업 영역으로 이동합니다. 데이터베이스 만들기가 완료되면 새로 만든 데이터베이스에 이제 코드 리포지토리에 지정된 개체가 포함됩니다. 패브릭 쿼리 편집기를 열고 개체 탐색기에서 탐색하는 경우 데이터베이스에 새 테이블 및 기타 개체가 있습니다.
한 분기에서 다른 분기로 변경 내용 병합
이 시나리오에서는 배포에 사용할 수 있기 전에 원본 제어 리포지토리를 사용하여 데이터베이스 변경 내용을 검토합니다. 이 시나리오는 팀 환경에서 작업하고 원본 제어를 사용하여 데이터베이스 변경 내용을 관리하는 개발자를 대상으로 합니다.
이전 시나리오에서 설명한 대로 동일한 리포지토리에 연결된 분기가 있는 두 개의 작업 영역을 만듭니다.
- 보조 분기의 데이터베이스를 사용하여 데이터베이스 개체를 변경합니다.
- 예를 들어 기존 저장 프로시저를 수정하거나 새 테이블을 만듭니다.
- 패브릭의 소스 제어판에서 커밋 단추를 사용하여 소스 제어에 대한 이러한 변경 내용을 체크 인합니다.
- Azure DevOps 또는 GitHub에서 보조 분기에서 주 분기로 끌어오기 요청을 만듭니다.
- 끌어오기 요청에서 주 작업 영역과 보조 작업 영역 간의 데이터베이스 코드 변경 내용을 볼 수 있습니다.
- 끌어오기 요청을 완료하면 소스 제어가 업데이트되지만 기본 작업 영역의 Fabric에 있는 데이터베이스는 변경되지 않습니다. 주 데이터베이스를 변경하려면 패브릭의 소스 제어판에 있는 업데이트 단추를 사용하여 원본 제어에서 기본 작업 영역을 업데이트 합니다.