次の方法で共有


Azure Synapse Analytics で使用する SqlPackage

この記事では、 Azure Synapse Analytics の SqlPackage サポートについて説明します。 これには、次のトピックに関する情報が含まれています。

  • Parquet ファイル内のデータにアクセスするための Azure Blob Storage との統合
  • サーバーレス SQL プールのサポート

専用 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 を実行しているローカル クライアントに書き込まれ、データは 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

発行のアクセスは、ストレージ アカウント キーまたは Shared Access Signature (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 プールのサポートには、次の機能が含まれています。

  • デルタ 外部ファイル形式
  • PROVIDER、CONNECTION、OBJECT、および CREDENTIAL または SERVER_CREDENTIAL が指定された OPENROWSET プロバイダー CosmosDB
  • OPENROWSET での with ()

次のステップ

  • Extract の詳細を確認する
  • 公開の詳細情報
  • Azure Blob Storage について詳しく知る
  • Azure ストレージ アカウント キー の詳細を確認する