DACフレームワークで簡単なデータのインポート&エクスポート

SQL Azure Team Blogに投稿された「Simplified Import and Export of Data」をざっくりと意訳した投稿です。

本日提供を始めたMicrosoft SQL Server "Denali" Data-tier Application (DAC) Framework v2.0 Feature Pack CTPを使うことで、オンプレミスのSQL ServerとSQL Azureとのデータインポートとエクスポートをとても簡単にできます。 DACフレームワークと呼ばれます。 DACについて詳しく知るには、このホワイトペーパーを参照してください。

もし試したい場合は、SQL Azure Labsページにアクセスするか、読み進めてもう少しDACについて知って下さい。

今回のDACフレームワーク更新には、3つのポイントがあります。

  1. 新しいインポート&エクスポート機能 : このDAC CTPで、インポートとエクスポート機能が導入されました。 データベーススキーマとデータを拡張子".bacpac"ファイル1つに出力されます。簡単なコマンドで、SQL ServerとSQL Azureデータベース間のデータインポート、エクスポートをとてもシンプルにできます。
  2. 無料: この機能は、SQL Serverの次期バージョン"Denali"(誰でもダウンロードすることができる無料版のSKUを含む)全てのバージョンで提供されます。
  3. 未来 = SQL Server と SQL Azureを使用するハイブリッドアプリケーション: ハイブリッドアプリケーションを作成するためにSQL ServerとSQL Azure間を行き来させるデータ機能です。SQL Server "Denali"で提供されるツールは、一般的な管理タスクのひとつ、データ移行の為にDACフレームワークを使用する予定です。 データ層アプリケーション(DAC)フレームワークは、SQL ServerとSQL Azureでデータベースを管理するための重要なデータベーススキーマ一覧と 管理ライブラリです。このCTP版では、新しいインポートとエクスポート機能は、スキーマとデータを含むデータベースのリカバリとリストアをひとつの操作でできるようにします。

SQL ServerとSQL Azure間でデータベースを保存したり移動させたい場合は、一つのファイルでデータとスキーマを含む一つのエクスポートファイルで対象データベースへエクスポートできます。また、ログイン、ユーザ、テーブル、列、制約、インデックス、ビュー、ストアドプロシージャ、関数、トリガーも含みます。一度データベースを出力したら、インポート操作でファイルをインポートできます。

今回のリリースのインポートとエクスポート機能は、SQL AzureデータベースとSQL Serverの保存、移行をフルサポートするプレビュー版です。今後、Windows SQL AzurePlatform管理ポータルへ追加します。SQL ServerとSQL Azureの次期リリースされるツールと管理機能は、オンプレミスとクラウド双方でできるようになります。

どのように使えば良いですか?

ユーザが接続できるオンプレミスのSQL Server 2008 R2インスタンス上で動作するデータベースが存在すると仮定します。次のコマンドを使用することで、一つの ".bacpac"ファイルにエクスポートできます。

DacImportExportCli.exe -s serverName -d databaseName -f C:\filePath\exportFileName.bacpac -x -e

エクスポートしてしまえば、新しく作成された拡張子".bacpac"ファイルをSQL Azureデータベースにインポーチできます。

DacImportExportCli.exe -s serverName.database.windows.net -d databaseName -f C:\filePath\fileName.bacpac -i -u userName -p password

SQL ServerもしくはSQL Azureで動作するDACデータベースは、登録を解除するか削除できます。

DacImportExportCli.exe -s serverName.database.windows.net -drop databaseName -u userName -p password

簡単にSQL Azureデータベースをローカルのエクスポートファイルにエクスポートでき、SQL Serverにインポートできます。

インポートとエクスポートをどのように使うべきですか?

エクスポートは、SQL Azureデータベースのバックアップメカニズムとして推奨されないことを重要な情報として補足します。(推奨するバックアップ機能を提供すべく動いており、近日更新されお披露目します) エクスポートファイルには、トランザクションログや過去のデータは含まれていません。エクスポートファイルには、単純にSELECT * した結果を格納し、データ整合性を考慮しないトランザクション制御されていないものです。

しかしながら、SQL Azureのコピーを作成するために、シングルユーザモードまたは、読み取り戦用モードもしくは、データベースのスナップショットからのエクスポートで、DACエクスポートをすることで、エクスポートファイルにトランザク制御したエクスポートファイルを作成できます。このドキュメントで素早くSQL AzureデータベースのCopyを作成する為の詳細な情報を記載しています。

クラウドストレージに保存されているエクスポートファイルで、SQL Azureのエクスポートとリストアを簡単にするために機能強化されました。

思ったことを私たちに教えてください

あなたからのフィードバックと、この新しい機能を使用してみた感触を教えてもらえることを本当に楽しみにしています。SQL Azureフォーラムもしくは、ここから私たちに連絡することができます。

インストールと試用するには、SQL Azure Labs ぺージにアクセスし、FAQに目を通してください。