Azure Synapse Analytics の SqlPackage
この記事では、Azure Synapse Analytics での SQLPackageのサポートについて説明します。 これには、次のトピックに関する情報が含まれます。
- parquet ファイルのデータにアクセスするためのAzure Blob Storage への統合
- サーバーレス SQL プールでのサポート
専用とサーバーレスどちらの SQL プールでも、SqlPackageまたは.bacpac
ファイルでのインポートとエクスポート アクションはサポートされていません。 SqlPackageでは、.dacpac
ファイルでのAzure Synapse Analytics がサポートされており、Azure Blog Storage 内の Parquet 形式ファイルに含まれるデータの読み取りと書き込みを行うことができます。 専用 SQL プールからデータをインポートまたはエクスポートするには、以下の詳細に従って、データでの発行または抽出アクションを使用する必要があります。
抽出 (データのエクスポート)
Azure Synapse Analytics データベースからAzure Blob Storage にデータをエクスポートするには、SqlPackageの抽出操作を次のプロパティと共に使用します。
- /p:AzureStorageBlobEndpoint
- /p:AzureStorageContainer
- /p:AzureStorageKey
BLOB ストレージ コンテナーにアクセスするためにデータベースにアクセスする場合、ストレージ アカウント キーを介して承認されます。 データベース スキーマ (.dacpac ファイル) は、SqlPackageを実行しているローカル クライアントに書き込まれ、そのデータはAzure Blob Storage に parquet 形式で書き込まれます。
コンテナー内のストレージ ルート パスを設定する追加のパラメーターは、省略可能です。
- /p:AzureStorageRootPath
このプロパティがない場合、パスの既定値は servername/databasename/timestamp/
になります。 データは、2 部構成のテーブル名を持つ個別のフォルダーに格納されます。
例
次の例では、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 or /p:AzureSharedAccessSignatureToken
公開のアクセスは、ストレージ アカウント キーまたはShared Access Signature (SAS) トークンを使用して承認できます。 データベース スキーマ (.dacpac ファイル) は、SqlPackageを実行しているローカル クライアントから読み取られ、そのデータはAzure Blob Storage から parquet 形式で読み取られます。
例
次の例では、yourserver.sql.azuresynapse.net
という名前のサーバーから、databasename
という名前のデータベースを、現在のディレクトリ内の databaseschema.dacpac
という名前のローカル ファイルに発行します。 このデータは、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 プールでは、次の機能をサポートしています。
- 外部ファイル形式のデルタ
- PROVIDER、CONNECTION、OBJECT、および CREDENTIAL または SERVER_CREDENTIAL が指定された OPENROWSET プロバイダー CosmosDB
- OPENROWSET の
with ()
句
次の手順
- 抽出の詳細情報
- 公開の詳細情報
- Azure Blob Storage の詳細情報
- Azure ストレージ アカウント キーの詳細