各製品の資料を入手。
詳細はこちら →こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
Cosmos DB データをDB にコピーするニーズは多いです。例えば、データのバックアップのため、 データをDB にデータレイク的に格納して他のアプリケーションやBI、ETL ツールから連携利用するなどです。
ただし、JSON やXML 形式であったりスキーマレスなデータなどを、DB に格納できるようにスキーマ定義をしながらデータを同期することは大きな手間です。 しかも、SaaS やNoSQL などのデータはスキーマレスであったり、スキーマが頻繁に変更されます。
Driver 技術では、Cosmos DB データをテーブルにモデル化し、スキーマを付与してDB への格納を容易にします。 本記事では、CACHE コマンドだけで、SQL Server にCosmos DB データの同期を取る方法を説明します。
この例では、SQL Server を使います。難しい手順は不要で、SQL Server に任意の名前の新しい同期DB を作成しておくだけです。
CData ODBC ドライバは、以下のような特徴を持った製品です。
CData ODBC ドライバでは、1.データソースとしてCosmos DB の接続を設定、2.SQL Server 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。
まずは、本記事右側のサイドバーからCosmosDB ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。
ODBC 接続プロパティの指定がまだの場合は、DSN (データソース名)で接続設定を行います。Microsoft ODBC データソースアドミニストレーターを使ってODBC DSN を作成および設定できます。ODBC ドライバーのインストール完了時にODBC DSN 設定画面が立ち上がります。 Microsoft ODBC データソースアドミニストレーターを開いて設定を行うことも可能です。 必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。
SQL API を使ってCosmos DB アカウントに接続するために必要な接続文字列を取得するには、Azure Portal にログインして「Azure Cosmos DB」を選択し、自分のアカウントを選択します。「Settings」セクションで、「Connection String」をクリックして次の値を設定します。
通常のDSN 設定に加え、キャッシュ関連項目の設定が必要です:
Cache Connection:以下をセミコロン区切りで入力
Cache Provider:SQL Server ではSystem.Data.SqlClient
Server=server name;Database=database name;User ID=your id;Password=password;
Visual Studio のサーバーエクスプローラーから「データ接続」を右クリックして「接続の追加」を選択します。
データソース選択画面で「Microsoft ODBC データソース」を選択します。
サーバーエクスプローラーには、「ODBC.Cosmos DB.CData」というコネクションができています。 展開するとCosmos DB データがテーブルよびビューとしてモデル化されて表示されます。 これらのオブジェクトは通常のSQL で操作することができます。
以下のキャッシュコマンドを作成し、実行します。 実行時にクエリテキストエラーが出ても気にせず続行してください。
CACHE SELECT * FROM "Target Table"
データベースの下にkintone の選択したアプリが同期されています。キレイにDB 向けにスキーマも付いてます。普通にSQL でアプリケーション内で使ってください。