적용 대상:✅Microsoft Fabric의 SQL 데이터베이스
이 자습서에서는 Fabric의 SQL 데이터베이스에서 SqlPackage를 사용하는 방법을 알아봅니다.
SqlPackage는 데이터베이스 이식성 및 데이터베이스 배포를 제공하는 CLI입니다.
- Azure 또는 Fabric에서 관리되는 데이터베이스의 이식성(가져오기/내보내기)을 통해 나중에 마이그레이션하려는 경우 데이터를 다른 플랫폼으로 이식할 수 있습니다. - 이동성에는 자체 포함된 데이터베이스 복사본(
.bacpac또는.dacpac파일)을 통해 SQL Server, Azure SQL Database, Azure SQL Managed Instance, 패브릭의 SQL Database 간의 이동이 포함됩니다.
SqlPackage를 사용하면 데이터베이스 개체에 대한 증분 변경 내용(테이블의 새 열, 기존 저장 프로시저 변경 등)을 쉽게 데이터베이스에 배포할 수 있습니다.
- SqlPackage는
.dacpac데이터베이스의 개체 정의가 포함된 파일을 추출하고 새 데이터베이스 또는 기존 데이터베이스에 해당 개체 상태를 적용하는 파일을 게시.dacpac할 수 있습니다. - 또한 게시 작업은 SQL 프로젝트와 통합되어 SQL 데이터베이스에 대한 오프라인 및 보다 동적 개발 주기를 가능하게 합니다.
필수 조건
- 기존의 Fabric 용량이 필요합니다. 그렇지 않은 경우 Fabric 평가판을 시작합니다.
- 새 작업 영역을 만들거나 기존 패브릭 작업 영역을 사용합니다.
- Fabric에서 기존 SQL 데이터베이스를 만들거나 사용합니다. 아직 없는 경우 Fabric에서 새 SQL 데이터베이스를 만듭니다.
- .NET 8 SDK를 설치합니다.
설정
SqlPackage는 Windows, macOS 및 Linux에서 dotnet 도구로 사용할 수 있습니다. 다음 명령을 사용하여 설치할 수 있습니다.
dotnet tool install --global Microsoft.SqlPackage
전역 dotnet 도구인 SqlPackage는 모든 폴더와 마찬가지로 sqlpackage 터미널에서 사용할 수 있습니다.
SqlPackage를 사용하여 데이터베이스 가져오기
A .bacpac 는 일부 마이그레이션 및 테스트 시나리오에 유용한 데이터베이스의 이식 가능한 복사본입니다.
SqlPackage가져오기.bacpac 를 사용하여 빈 SQL 데이터베이스로 가져올 수 있습니다.
참고 항목
A .bacpac 는 백업 또는 백업/복원 기능을 대체하는 것이 아닙니다. Fabric의 SQL 데이터베이스 백업에 대한 자세한 내용은 Microsoft Fabric의 SQL 데이터베이스에서 자동 백업 을 참조하고 Microsoft Fabric의 SQL 데이터베이스 백업에서 복원을 참조하세요.
Azure 또는 SQL Server 환경에서 사용하는
.bacpac경우 패브릭 T-SQL 노출 영역의 SQL 데이터베이스를 충족하도록 원본 데이터베이스를 변경해야 할 수 있습니다. SqlPackage 속성이 지원되지 않는 일부 개체를 건너뛸 수 있도록 하는 대체 방법에 대해서는 추출 및 게시 이동성을 참조하세요.패브릭 인터페이스를 통해 평소와 같이 패브릭 에서 새 SQL 데이터베이스를 만듭니다.
설정에서 연결 문자열 복사합니다.
sqlpackage 폴더의 터미널에서 가져오기 명령을 사용합니다. 소유자
<servername>및<database_name>을 입력합니다.sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"- SQL 데이터베이스 설정 대화 상자에서 연결 문자열 바꿉니다.
-
sourcefile값을.bacpac이름(DatabaseName)과location로컬 컴퓨터로 바꿉니다.
Microsoft Fabric의 Data Factory에서 복사 작업 으로 가져오기를 따릅니다. 시작하려면 빠른 시작: 복사 작업 만들기를 참조하세요.
SqlPackage를 사용하여 데이터베이스 내보내기
내보내 .bacpac 기는 이전 예제와 targetfile 같이 SQL 데이터베이스 설정 대화 상자에서 찾을 수 있는 .bacpac 역방향 작업입니다sourceconnectionstring. 소유자 <servername> 및 <database_name>을 입력합니다. 예시:
sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
내보내 기에 대한 자세한 내용은 SqlPackage 내보내기 참조
추출 및 게시
A .dacpac 는 원본 데이터베이스의 테이블, 저장 프로시저 및 기타 개체에 대한 정의를 포함하는 데이터베이스 스키마 모델 파일입니다. 이 파일은 SqlPackage를 사용하는 기존 데이터베이스 또는 SQL 데이터베이스 프로젝트에서 만들 수 있습니다.
SqlPackage는 새(빈) 데이터베이스에 배포 .dacpac 하거나 원하는 .dacpac 상태와 일치하도록 기존 데이터베이스를 증분 방식으로 업데이트할 수 있습니다.
-
추출 은 기존 데이터베이스에서 a
.dacpac또는 sql 파일을 만듭니다. -
게시 는 데이터베이스에
.dacpac배포합니다.
SqlPackage 게시 및 추출 구문은 import/export 명령과 유사합니다.
경고
SqlPackage를 사용하여 SQL 프로젝트 또는 .dacpac Fabric의 SQL 데이터베이스에 배포하는 것이 좋습니다. Visual Studio에서 .dacpac 배포하는 데 실패할 수 있습니다.
Azure SQL Database, SQL Server 또는 Fabric의 SQL 데이터베이스 이외의 플랫폼을 대상으로 하는 SQL 프로젝트에서 만든 .dacpac 배포하려면 속성 /p:AllowIncompatiblePlatform=true SqlPackage 게시 명령에 추가합니다.
이식성 데이터 추출 및 공개
SqlPackage 가져오기/내보내기 명령은 .bacpac 형식을 통한 데이터 이식성에 중점을 두지만, 추출 및 게시 명령은 .dacpac 형식을 사용하여 데이터 이식성을 구현할 수 있습니다. 추출 및 게시 속성을 사용하여 추출 및 게시 작업의 동작을 제어하고 플랫폼 간 변환에 더 많은 유연성을 제공할 수 있습니다.
추출.dacpac 하고 데이터를 포함하려면, /p:ExtractAllTableData=true 속성을 사용하세요. 추출 작업은 원본 데이터베이스의 스키마와 데이터를 모두 포함하는 값을 만듭니다 .dacpac . 이 속성 /p:ExtractReferencedServerScopedElements=false 은 패브릭의 SQL 데이터베이스에서 지원되지 않는 서버 범위 요소를 제외합니다. 다음 명령은 Fabric의 기존 SQL 데이터베이스에서 데이터를 포함한 .dacpac를 추출합니다.
sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true /p:ExtractReferencedServerScopedElements=false
데이터로 추출된 속성을 게시.dacpac 하려면 추가 속성이 필요하지 않습니다. 그러나 여러 속성을 사용하여 게시 작업의 동작을 제어할 수 있습니다.
-
/p:AllowIncompatiblePlatform=true에서는 다른 플랫폼(예: Azure SQL Database, SQL Server)에서 추출된.dacpac의 배포가 가능합니다. -
/p:ExcludeObjectTypes=Logins;Users는 Fabric에서 SQL 데이터베이스에 게시할 때 호환성 문제가 발생할 수 있는 개체 형식을 제외합니다. 제외할 수 있는 개체 형식의 전체 목록은 SqlPackage 게시를 참조하세요.
SqlPackage 가져오기 명령과 마찬가지로 Fabric에서 SQL 데이터베이스에 게시 .dacpac 하기 전에 Fabric에서 데이터베이스를 만들어야 합니다. 패브릭 포털 또는 다른 패브릭 인터페이스를 통해 데이터베이스를 만들 수 있습니다. 다음 명령은 Fabric의 빈 SQL 데이터베이스에 추출된 .dacpac 항목을 게시합니다.
sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users