各製品の資料を入手。
詳細はこちら →CData
こんにちは!ドライバー周りのヘルプドキュメントを担当している兵藤です。
本記事では、SQL Server のTDS Remoting 機能を使ってXML のリンクサーバーをセットアップする方法をご紹介します。リンクサーバーの利用には、CData ODBC ドライバに同梱されているSQL Gateway を使用します。 SQL Server のインターフェースでXML への読み書き双方向のアクセスが可能になります。
まずは、本記事右側のサイドバーからXML ODBC Driver の無償トライアルをダウンロード・インストールしてください。ODBC ドライバーのインストール完了時にODBC DSN 設定画面が立ち上がります。または、Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定できます。
データソースを認証するには、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。 データプロバイダーはXML API を双方向データベーステーブルとしてモデル化し、XML ファイルをread-only ビュー(ローカルファイル、人気のクラウドサービスに格納されたファイル、およびFTP サーバー)としてモデル化します。 HTTP Basic、Digest、NTLM、OAuth、およびFTP を含む主な認証スキームはサポートされています。認証のガイドについては、データプロバイダーのドキュメント内の「はじめに」セクションをご覧ください。
URI と認証値を設定した後で、DataModel を設定することでデータの構造によりよくマッチするようデータの抽象化を調整できます。
DataModel プロパティはデータがどのようにテーブルとして抽象化されるかを制御するプロパティであり、次の基本的な設定を調整します。
リレーショナルな抽象化の設定についての詳細は、「XML データのモデリング」セクションを参照してください。次の例で使用されているサンプルデータも存在します。 このデータには、人名、その人たちが所有する車、車に施されたさまざまなメンテナンスに関する情報が含まれます。
CData ODBC ドライバにはSQL Gateway が同梱されています。このSQL Gateway に、XML ODBC Driver をサービスとして設定します。
SQL Gateway 側でサービスの設定が終わったら、SQL Server 側でXML サービスをリンクサーバーとして使う設定をしましょう。
これで、リンクサーバーの設定は終わりなので、「OK」を押して設定を保存します。
SSMS のオブジェクトエクスプローラーのリンクサーバー下にXML のリンクサーバーが作成され、「テーブル」下にXML のデータがアプリ単位でテーブルが生成されます。
新しいクエリを選択し、XML のデータを取得してみます。
SELECT * from リンクサーバー名.CData XML Source Sys(ODBC DSN 名).XML.テーブル名
このように、API のリクエストではなく通常のSQL 構文でデータを扱うことが可能になっています
Visual Studio のサーバーエクスプローラーの「データ接続」を右クリックし、「接続の追加」をクリックして、データソースの選択画面を開きます。 データソースの選択画面でデータソースを「Microsoft SQL Server 」に選択して、「続行」を押します。
「接続の追加」画面で、以下を入力します。
サーバー名:SQL Server のサーバー名
認証:任意の認証方式
データベース名の選択または入力:※master など
※リンクサーバーを直接データベース名として入力することはできないようです。なので上位のデータベース名で設定しておきます。
「テスト接続」をして大丈夫であれば、「OK」を押して設定を完了させます。
「新しいクエリ」で、SQL でSELECT 文を書いてデータを取得してみます。
SELECT * from リンクサーバー名.CData XML Source Sys(ODBC DSN 名).XML.テーブル名
このように、通常のSQL Server のリンクサーバーと同じようにVisual Studio 内XML のデータを扱うことが可能になります。
他のIDE でもSQL Server にアクセスする方法でXML のデータにSQL でアクセスが可能になります。
複数データソースのJOIN などを行う場合には大変便利です。
このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをSQL Server に連携できます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。