이 문서에서는 Azure Synapse Analytics에 대한 SqlPackage 지원에 대해 설명합니다. 여기에는 다음 항목에 대한 정보가 포함됩니다.
- Parquet 파일의 데이터에 액세스하기 위해 Azure Blob Storage와 통합
- 서버리스 SQL 풀 지원
전용 및 서버리스 SQL 풀은 모두 SqlPackage 또는 .bacpac
파일에서 가져오기/내보내기 작업을 지원하지 않습니다. SqlPackage는 .dacpac
파일을 사용하여 Azure Synapse Analytics를 지원하며 Azure Blob 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/
. 데이터는 2부로 구성된 테이블 이름으로 명명된 개별 폴더에 저장됩니다.
예시
다음 예제에서는 databasename
서버에서 현재 디렉터리의 yourserver.sql.azuresynapse.net
로컬 파일로 databaseschema.dacpac
데이터베이스를 추출합니다. 데이터는 containername
스토리지 계정 키를 사용하여 storageaccount
스토리지 계정의 storageaccountkey
컨테이너에 기록됩니다. 데이터는 컨테이너에서 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에서 읽습니다.
예시
다음 예제에서는 databasename
데이터베이스를 현재 디렉터리의 yourserver.sql.azuresynapse.net
로컬 파일에서 databaseschema.dacpac
서버에 게시합니다. 데이터는 이름이 containername
인 컨테이너에서 storageaccount
스토리지 계정의 storageaccountkey
스토리지 계정 키를 사용하여 읽습니다. 데이터는 컨테이너의 경로 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 풀에 대한 지원에는 다음 기능이 포함되어 있습니다.
- 델타 외부 파일 형식
- OPENROWSET 공급자 CosmosDB는 PROVIDER, CONNECTION, OBJECT 및 CREDENTIAL 또는 SERVER_CREDENTIAL이 지정된 상태입니다.
-
with ()
OPENROWSET의 절