この記事では、 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 ストレージ アカウント キー の詳細を確認する