Azure Synapse Analytics용 SqlPackage

이 문서에서는 Azure Synapse Analytics에 대한 SqlPackage 지원에 대해 설명합니다. 여기에는 다음 항목에 대한 정보가 포함됩니다.

  • Parquet 파일의 데이터에 액세스하기 위해 Azure Blob Storage와 통합
  • 서버리스 SQL 풀 지원

전용 및 서버리스 SQL 풀은 모두 SqlPackage 또는 .bacpac 파일에서 가져오기/내보내기 작업을 지원하지 않습니다. SqlPackage는 파일을 사용하여 Azure Synapse Analytics .dacpac 를 지원하며 Azure Blog Storage에서 parquet 형식 파일로 데이터를 읽고 쓸 수 있습니다. 전용 SQL 풀에서 데이터를 가져오거나 내보내려면 아래에 설명된 대로 데이터와 함께 게시 또는 추출 작업을 사용해야 합니다.

추출(데이터 내보내기)

Azure Synapse Analytics 데이터베이스의 데이터를 Azure Blob Storage로 내보내기 위해 SqlPackage 추출 작업이 다음 속성과 함께 사용됩니다.

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageKey

Blob Storage 컨테이너에 액세스하는 데이터베이스에 대한 액세스 권한은 스토리지 계정 키를 통해 부여됩니다. 데이터베이스 스키마(.dacpac 파일)는 SqlPackage를 실행하는 로컬 클라이언트에 기록되며 데이터는 parquet 형식으로 Azure Blob Storage에 기록됩니다.

컨테이너 내에서 스토리지 루트 경로를 설정하는 추가 매개 변수는 선택 사항입니다.

  • /p:AzureStorageRootPath

이 속성이 없으면 경로는 기본적으로 servername/databasename/timestamp/로 설정됩니다. 데이터는 두 부분으로 구성된 테이블 이름으로 명명된 개별 폴더에 저장됩니다.

다음 예제에서는 yourserver.sql.azuresynapse.net이라는 서버에서 databasename이라는 데이터베이스를 현재 디렉터리에 있는 로컬 databaseschema.dacpac 파일로 추출합니다. 데이터는 storageaccountkey라는 스토리지 계정 키를 사용하여 storageaccount라는 스토리지 계정의 containername라는 컨테이너에 기록됩니다. 데이터는 컨테이너의 기본 경로 servername/databasename/timestamp/에 기록됩니다.

SqlPackage /Action:Extract /SourceServerName:yourserver.sql.azuresynapse.net /SourceDatabaseName:databasename /SourceUser:sqladmin /SourcePassword:{your_password} /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey

사용 가능한 인증 유형의 더 많은 예제는 SqlPackage 추출을 참조하세요.

게시(데이터 가져오기)

Azure Blob Storage의 parquet 파일에 있는 데이터를 Azure Synapse Analytics 데이터베이스로 가져오기 위해 SqlPackage 게시 작업이 다음 속성과 함께 사용됩니다.

  • /p:AzureStorageBlobEndpoint
  • /p:AzureStorageContainer
  • /p:AzureStorageRootPath
  • /p:AzureStorageKey 또는 /p:AzureSharedAccessSignatureToken

게시에 대한 액세스 권한은 스토리지 계정 키 또는 SAS(공유 액세스 서명) 토큰을 통해 부여할 수 있습니다. 데이터베이스 스키마(.dacpac 파일)는 SqlPackage를 실행하는 로컬 클라이언트에서 읽어오며 데이터는 parquet 형식으로 Azure Blob Storage에서 읽어옵니다.

다음 예제에서는 현재 디렉터리에 있는 로컬 databaseschema.dacpac 파일에서 databasename이라는 데이터베이스를 yourserver.sql.azuresynapse.net이라는 서버에 게시합니다. 데이터는 storageaccountkey라는 스토리지 계정 키를 사용하여 storageaccount라는 스토리지 계정의 containername라는 컨테이너에서 읽어옵니다. 데이터는 컨테이너의 경로 yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/ 아래에 있는 테이블별 개별 폴더에서 읽습니다.

SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver.sql.azuresynapse.net /TargetDatabaseName:databasename /TargetUser:sqladmin /TargetPassword:{your_password} /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername  /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver.sql.azuresynapse.net/databasename/6-12-2022_8-09-56_AM/"

사용 가능한 인증 유형의 더 많은 예제는 SqlPackage 게시를 참조하세요.

서버리스 SQL 풀 지원

Synapse 서버리스 SQL 풀은 추출 및 게시 작업 모두에 대해 지원됩니다. 서버리스 SQL 풀의 T-SQL 노출 영역은 디자인외부 테이블, 외부 뷰, 저장 프로시저, 함수, 통계 및 자격 증명으로 제한됩니다. 서버리스 SQL 풀에 대한 지원에는 다음 기능이 포함되어 있습니다.

다음 단계