다음을 통해 공유


Parquet 파일의 데이터가 포함된 SqlPackage(미리 보기)

이 문서에서는 Parquet 형식의 Azure Blob Storage에 저장된 데이터와 상호 작용하기 위한 SqlPackage 지원에 대해 설명합니다. SQL Server 2022 및 Azure SQL Managed Instance의 경우 Azure Blob Storage의 Parquet 파일에서 데이터를 추출하고 게시하기 위한 미리 보기 지원을 SqlPackage 162.1.176 이상에서 사용할 수 있습니다. Azure SQL Database 및 SQL Server 2019 이하는 지원되지 않습니다. 가져오기내보내기 작업은 SQL Server, Azure SQL Managed Instance 및 Azure SQL Database에 계속 사용할 수 있습니다. Azure Blob Storage의 Parquet 파일에 대한 지원은 Azure Synapse Analytics에서 계속 일반 공급됩니다.

추출을 사용하면 데이터베이스 스키마(.dacpac파일)가 SqlPackage를 실행하는 로컬 클라이언트에 기록되고 데이터는 Parquet 형식으로 Azure Blob Storage에 기록됩니다. 데이터는 두 부분으로 구성된 테이블 이름으로 명명된 개별 폴더에 저장됩니다. CETAS 는 Azure Blob Storage에서 파일을 작성하는 데 사용됩니다.

게시를 사용하면 SqlPackage를 실행하는 로컬 클라이언트에서 데이터베이스 스키마(.dacpac파일)를 읽고 데이터를 Parquet 형식으로 Azure Blob Storage에서 읽거나 Azure Blob Storage에 기록합니다.

Azure에서 호스트되는 SQL 데이터베이스에서 Parquet 파일을 사용한 추출/게시 작업은 여러 시나리오에서 파일을 사용하여 가져오기/내보내기 작업에 .bacpac 비해 향상된 성능을 제공합니다.

추출(데이터 내보내기)

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

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

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

매개 변수 /p:AzureStorageRootPath 는 컨테이너 내의 스토리지 루트 경로를 설정하는 선택 사항입니다. 이 속성이 없으면 경로는 기본적으로 servername/databasename/timestamp/로 설정됩니다. 데이터는 두 부분으로 구성된 테이블 이름으로 명명된 개별 폴더에 저장됩니다. 테이블당 생성된 파일 수는 내보내기 시 MAXDOP 및 사용 가능한 SQL 코어에 따라 달라집니다.

마지막으로, 속성 /p:TableData 은 데이터를 내보낸 테이블을 지정합니다. 이름 부분을 둘러싼 대괄호를 schema_name.table_identifier 형식으로 지정하거나 사용하지 않고 테이블 이름을 지정합니다. 이 속성은 여러 테이블을 나타내기 위해 여러 번 지정할 수 있습니다.

예시

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

SqlPackage /Action:Extract /SourceServerName:yourserver /SourceDatabaseName:databasename /TargetFile:databaseschema.dacpac /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername /p:AzureStorageKey=storageaccountkey

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

게시(데이터 가져오기)

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

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

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

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

SqlPackage /Action:Publish /SourceFile:databaseschema.dacpac /TargetServerName:yourserver /TargetDatabaseName:databasename /p:AzureStorageBlobEndpoint=https://storageaccount.blob.core.windows.net /p:AzureStorageContainer=containername  /p:AzureStorageKey=storageaccountkey /p:AzureStorageRootPath="yourserver/databasename/10-19-2023_11-09-56/"

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

제한 사항

Polybase

Parquet 파일을 사용하는 SqlPackage 작업에는 Polybase 가 필요합니다. Polybase를 사용하는 경우 다음 쿼리를 사용하여 검사 수 있습니다.

// configuration_id = 16397 is 'allow polybase export'
// configuration_id = 16399 is 'polybase enabled'
SELECT configuration_id, value_in_use FROM sys.configurations
WHERE configuration_id IN (16397, 16399)

Polybase 또는 Polybase 내보내기를 사용하도록 설정해야 할 수 있습니다. Azure SQL Managed Instance에서 Polybase를 사용하도록 설정하려면 PowerShell 또는 Azure CLI가 필요합니다. 구성을 변경하기 전에 Polybase를 사용하도록 설정하는 것이 사용자 환경에 적합한지 평가하는 것이 좋습니다.

테이블 및 데이터 형식

CETAS에서 지원하는 데이터 형식은 Parquet 파일을 사용하여 추출 및 게시 작업에 지원됩니다.

원장 테이블은 Parquet 파일을 사용하여 추출 및 게시 작업에 사용할 수 있습니다.

Always Encrypted를 사용하여 저장된 데이터는 Parquet 파일을 사용하여 추출 및 게시 작업에 대해 지원되지 않습니다.

다음 단계