다음을 통해 공유


Visual Studio Code에서 웨어하우스 프로젝트 개발

적용 대상: Microsoft Fabric의✅ Warehouse

Visual Studio Code에서 Fabric Data Warehouse에 대한 데이터베이스 프로젝트를 설정하는 방법을 알아봅니다. 새 프로젝트를 만들고, 스키마 개체를 정의하고, 프로젝트를 빌드 및 유효성을 검사하고, 웨어하우스에 게시합니다.

필수 조건

시작하기 전에 다음을 확인합니다.

새 데이터베이스 프로젝트 만들기

데이터베이스 프로젝트를 처음부터 만들거나 기존 웨어하우스에서 만들 수 있습니다.

옵션 1: Visual Studio Code의 명령 팔레트에서 새 데이터베이스 프로젝트 만들기

  1. Visual Studio Code를 엽니다.

  2. 명령 팔레트(Ctrl+Shift+P또는 Cmd+Shift+P Mac)를 엽니다.

  3. 데이터베이스 프로젝트 검색: 새로 만들기

  4. 데이터베이스 프로젝트 형식SQL Server 데이터베이스로 선택합니다.

  5. 프로젝트 이름을 선택하고 로컬 폴더 위치를 선택합니다.

  6. 대상 플랫폼으로 Microsoft Fabric에서 Synapse Data Warehouse 를 선택합니다.

  7. 메시지가 표시되면 SDK 스타일 프로젝트에 대해 예(권장) 를 선택합니다.

    중요합니다

    패브릭 데이터 웨어하우스에는 SDK 스타일 프로젝트만 지원됩니다.

  8. 를 선택하여 폴더의 기본 빌드 구성으로 SQL 프로젝트 빌드를 설정하시겠습니까?

  9. 이 폴더에 있는 파일의 작성자를 신뢰하려면 [예 ]를 선택합니다.

옵션 2: 데이터베이스 프로젝트 확장에서 새 데이터베이스 프로젝트 만들기

  1. Visual Studio Code의 작업 표시줄에서 데이터베이스 프로젝트 확장 아이콘을 선택합니다.

  2. 데이터베이스 프로젝트 창에서 새로 만들기를 선택합니다.

    데이터베이스 프로젝트 확장 창과 새로 만들기 단추를 보여 주는 Visual Studio Code의 스크린샷

  3. 데이터베이스 프로젝트 형식SQL Server 데이터베이스로 선택합니다.

  4. 프로젝트 이름을 선택하고 로컬 폴더 위치를 선택합니다.

  5. 대상 플랫폼으로 Microsoft Fabric에서 Synapse Data Warehouse 를 선택합니다.

  6. 메시지가 표시되면 SDK 스타일 프로젝트에 대해 예(권장) 를 선택합니다. 패브릭 데이터 웨어하우스에는 SDK 스타일 프로젝트만 지원됩니다.

  7. 를 선택하여 폴더의 기본 빌드 구성으로 SQL 프로젝트 빌드를 설정하시겠습니까?

  8. 이 폴더에 있는 파일의 작성자를 신뢰하려면 [예 ]를 선택합니다.

옵션 3: 기존 웨어하우스에서 데이터베이스 프로젝트 만들기

  1. 먼저 Visual Studio Code에서 웨어하우스에 대한 새 연결 프로필을 만듭니다.

    1. 작업 표시줄에서 Visual Studio Code에서 SQL Server 확장을 선택합니다.
    2. 프로필 이름을 제공합니다. 매개 변수를 선택합니다.
    3. 서버 이름을 제공합니다. 패브릭 포털의 웨어하우스 설정 에서 SQL 엔드포인트 문자열을 검색합니다. (SQL 분석 엔드포인트와 다릅니다.) 다음과 같습니다 <server unique ID>.datawarehouse.fabric.microsoft.com. 서버 이름입니다.
    4. 인증 유형의 경우 MFA 지원을 통해 Microsoft Entra ID - Universal을 사용합니다. Microsoft Entra ID를 사용하여 인증합니다.
    5. 다른 정보를 기본값 또는 원하는 대로 제공하고 연결을 선택합니다.
  2. Visual Studio Code의 작업 표시줄에서 데이터베이스 프로젝트 확장 아이콘을 선택합니다.

  3. ... 창에서 옵션 단추를 선택하고 데이터베이스에서 프로젝트 만들기 옵션을 선택합니다.

    데이터베이스에서 프로젝트 만들기 옵션을 보여 주는 Visual Studio Code의 스크린샷

  4. 기존 연결 프로필에서 웨어하우스를 선택합니다.

  5. 프로젝트 이름을 제공하고 워크스테이션에서 프로젝트 폴더를 선택합니다.

  6. 폴더 구조의 경우 스키마/개체 유형 (권장)을 선택합니다.

  7. 프로젝트에 포함 권한의 경우 아니요(기본값)를 선택합니다.

  8. SDK 스타일 프로젝트의 경우 예를 선택합니다(권장).

  9. 를 선택하여 폴더의 기본 빌드 구성으로 SQL 프로젝트 빌드를 설정하시겠습니까?

  10. Visual Studio Code는 웨어하우스 프로젝트에서 프로젝트 파일을 추출합니다.

    프로젝트 파일 추출 진행률 알림을 보여 주는 Visual Studio Code의 스크린샷

  11. 추출에 성공하면 다음 알림이 표시됩니다. "프로젝트 파일 추출: 성공했습니다. 완료되었습니다".

  12. 이 폴더에 있는 파일의 작성자를 신뢰하려면 [예 ]를 선택합니다.

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

웨어하우스에 대한 새 데이터베이스 프로젝트가 SQL Database 프로젝트 메뉴에 표시됩니다.

AdventureWorksDW2022에 대한 새 데이터베이스 프로젝트를 보여 주는 Visual Studio Code의 스크린샷

프로젝트 구조는 다음과 같습니다.

 | Project Name
 ├── Database References
 ├── SQLCMD Variables
 ├── .vscode/
 └── schema/
     ├── Functions
     ├── Tables
     └── Views

데이터베이스 프로젝트 구성

  1. 프로젝트를 마우스 오른쪽 단추로 클릭하고 .sqlproj 파일 편집을 선택합니다.

    Visual Studio Code 및 데이터베이스 프로젝트의 상황에 맞는 메뉴 스크린샷 sqlproj 파일 편집 옵션이 강조 표시됩니다.

  2. 최신 버전의 Microsoft.Build.Sql SDK가 파일에 있는지 확인합니다. 예를 들어 파일에서 .sqlproj 버전을 Microsoft.Build.Sql .로 변경합니다 2.0.0.

       <Sdk Name="Microsoft.Build.Sql" Version="2.0.0" />
    
  3. 최신 버전의 Microsoft.SqlServer.Dacpacs.FabricDw를 확인하고 XML 노드 내에 참조를 Project/ItemGroup 추가합니다. 다음은 그 예입니다.

       <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.2" />
    

    업데이트 후에는 웨어하우스의 데이터베이스 프로젝트가 다음과 같이 표시됩니다.

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.0.0" />
       <PropertyGroup>
         <Name>DatabaseProject715wh</Name>
         <ProjectGuid>{2E278BCC-F118-4DDB-9255-94697F2930B4}</ProjectGuid>
         <DSP>Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider</DSP>
         <ModelCollation>1033, CI</ModelCollation>
       </PropertyGroup>
       <ItemGroup>
         <None Include=".vscode\tasks.json" />
         <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.2" />
       </ItemGroup>
       <Target Name="BeforeBuild">
         <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
       </Target>
     </Project>
    
  4. .sqlproj 파일을 저장합니다. 데이터베이스 프로젝트를 다시 로드하라는 프롬프트에서 예를 선택합니다.

중요합니다

Fabric Data Warehouse 팀은 새 버전의 NuGet 패키지를 자주 릴리스합니다. 파일의 기본 버전 값 .sqlproj 은 시간이 지남에 따라 변경될 수 있으므로 Microsoft.SqlServer.Dacpacs.FabricDw용 NuGet에서 사용할 수 있는 최신 버전에 맞게 로컬 프로젝트에서 업데이트해야 합니다.

데이터베이스 개체 추가 또는 업데이트

웨어하우스 프로젝트 내에서 테이블, 뷰, 저장 프로시저 및 함수와 같은 데이터베이스 개체를 정의하거나 수정할 수 있습니다.

예를 들어 dbo스키마의 폴더 아래에서 웨어하우스에 있는 개체의 T-SQL 정의를 추가 또는 삭제하거나 변경합니다. 기존 개체를 수정하려면 해당 .sql 파일을 열고 필요에 따라 정의를 업데이트합니다.

프로젝트를 빌드할 때 모든 새 개체와 업데이트된 개체의 유효성이 검사되고, 이러한 개체는 생성된 dacpac 파일에 {project folder location}/bin/debug/{project name}.dacpac 포함됩니다.

여기서 변경한 내용은 데이터베이스 프로젝트에만 적용되며 프로젝트를 빌드 하고 게시 할 때까지 Microsoft Fabric에 반영되지 않습니다.

프로젝트 빌드 및 유효성 검사

  1. 아직 열지 않은 경우 데이터베이스 프로젝트를 엽니다.

  2. 프로젝트를 마우스 오른쪽 단추로 클릭하고 빌드 를 선택하여 데이터베이스 프로젝트를 빌드합니다.

    데이터베이스 프로젝트를 빌드하는 옵션을 보여 주는 Visual Studio Code의 스크린샷

  3. 빌드가 성공해야 합니다. 빌드 이벤트의 출력에 제공된 메시지에 따라 오류를 수정합니다.

비고

현재 Visual Studio Code 기본 터미널은 데이터베이스 프로젝트 확장의 빌드 프로세스가 성공하려면 PowerShell 이어야 합니다. 명령 팔레트에서 터미널: 기본 프로필을 선택한 다음, PowerShell을 선택합니다.

패브릭 데이터 웨어하우스에 게시

프로젝트를 빌드한 후 대상 웨어하우스에 게시합니다. 게시는 데이터베이스 프로젝트와 실제 웨어하우스 간의 차이를 해결하는 스크립트를 만들고 스크립트를 실행하여 웨어하우스가 프로젝트와 일치하도록 합니다. .dacpac 파일에서 웨어하우스 스키마의 컴파일된 모델을 대상 웨어하우스에 배포할 수 있습니다.

  1. 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택합니다.

  2. 기존 SQL 서버에 게시를 선택합니다.

  3. 처음으로 게시할 게시 프로필을 로드하려면 프로필사용 안 함을 선택합니다.

    • 웨어하우스를 게시 프로필에 게시하기 위한 옵션을 저장할 수 있습니다. 완료되면 게시 프로필 파일에 방금 사용한 게시 옵션을 저장할 수 있는 옵션이 Visual Studio Code 알림에 제공됩니다.
    • 나중에 웨어하우스에 프로젝트를 게시할 때 게시 프로필을 다시 사용할 수 있습니다. 다른 웨어하우스 또는 개발/테스트/수용/프로덕션 개발 환경의 다양한 환경에 대해 서로 다른 프로필 옵션이 있을 수 있습니다.
  4. 목록에서 Fabric Data Warehouse 연결 프로필을 선택합니다.

  5. 대상 웨어하우스의 이름을 선택합니다.

  6. 작업 선택 옵션에서 스크립트를 생성하여 게시하기 전에 스크립트를 검토하거나 프로젝트를 웨어하우스에 게시할 수 있습니다.

    • 변경 내용을 처음 배포하려면 스크립트를 신중하게 생성 하고 결과 T-SQL을 검토하여 대상 웨어하우스에 적용해야 합니다. 대상 웨어하우스는 변경되지 않습니다.
    • 게시를 선택하면 변경 내용이 대상 웨어하우스에 기록됩니다.

    dacpac 배포: 진행 중 알림을 보여 주는 Visual Studio Code의 스크린샷.

  7. 알림에서 프로필(.publish.xml)에 설정을 저장하시겠습니까?에서 [예 ]를 선택하고 다음에 게시해야 할 때 게시 프로필 선택 항목을 저장합니다.

웨어하우스 프로젝트에 대한 중요한 배포 설정

Fabric Data Warehouse에 데이터베이스 프로젝트를 배포할 때 몇 가지 설정이 스키마 변경을 제어하고 데이터 안전에 영향을 미칠 수 있습니다. 주의해서 사용하십시오.

  • BlockOnPossibleDataLoss

    • 수행하는 내용: 데이터가 손실될 위험이 있는 경우(예: 데이터가 포함된 열 또는 테이블 삭제) 배포를 방지합니다.
    • 추천: 항상 프로덕션 환경에서 True 중요한 데이터를 보호하도록 설정합니다.
    • 주의: 데이터를 손실할 수 있더라도 배포를 허용하도록 False 설정합니다. 제어된 환경(예: 개발/테스트)에서만 사용합니다.
  • DropObjectsNotInSource

    • 수행하는 내용: 프로젝트 원본에 없는 대상 데이터베이스의 개체를 삭제합니다.
    • 추천: 개발/테스트 환경에서 남은 개체를 정리하는 데 사용합니다.
    • 주의: 프로덕션 환경에서 사용하면 DropObjectsNotInSource중요한 개체와 데이터를 삭제할 수 있습니다. 사용하도록 설정하기 전에 다시 확인합니다.
  • Pre-Deployment Scripts

    • 수행하는 내용: 스키마 배포 전에 사용자 지정 SQL 스크립트를 실행합니다.
    • 일반적인 용도:
      • 테이블을 삭제하기 전에 데이터 보관 또는 백업
      • 제약 조건 또는 트리거를 일시적으로 사용하지 않도록 설정
      • 레거시 개체 정리
    • 주의: 스크립트가 idempotent 이고 배포와 충돌하는 스키마 변경 내용을 도입하지 않도록 합니다.

팁 (조언)

배포 프로세스가 idempotent인 경우 문제를 일으키지 않고 여러 번 실행할 수 있으며 상태를 미리 결정하지 않고도 여러 데이터베이스에 배포할 수 있습니다.

  • Post-Deployment Scripts

    • 수행하는 내용: 스키마 배포 사용자 지정 SQL 스크립트를 실행합니다.
    • 일반적인 용도:
      • 시드 조회 또는 참조 데이터
      • 제약 조건 또는 트리거 다시 사용
      • 로그 배포 기록
    • 주의: 프로덕션에서 큰 테이블에 대한 작업 부하를 방지합니다. 필요한 경우 스크립트를 여러 번 안전하게 실행할 수 있는지 확인합니다.

중요합니다

게시하기 전에 항상 배포 스크립트 및 설정을 검토합니다. 의도하지 않은 데이터 손실을 방지하기 위해 먼저 개발/테스트 환경에서 테스트합니다.

게시 확인

시스템 카탈로그 개체를 실행하여 변경되었거나 확인한 웨어하우스 및 스크립트 개체에 연결합니다.