こんにちは!ドライバー周りのヘルプドキュメントを担当している兵藤です。
本記事では、SQL Server のTDS Remoting 機能を使ってZuora のリンクサーバーをセットアップする方法をご紹介します。リンクサーバーの利用には、CData ODBC ドライバに同梱されているSQL Gateway を使用します。
SQL Server のインターフェースでZuora への読み書き双方向のアクセスが可能になります。
Zuora リンクサーバー利用シナリオ
- SQL Server に接続しているアプリケーションでZuora のデータを利用したいがデータ接続を増やしたくない
- Zuora のデータをSQL Server のデータや他のリンクサーバーのデータをJOIN などして使いたい
- 利用したいミドルウェア・BI ツールなどにODBC やJDBC の汎用のインターフェースがないが、SQL Server には接続できる
Zuora DSN の設定
まずは、本記事右側のサイドバーからZuora ODBC Driver の無償トライアルをダウンロード・インストールしてください。ODBC ドライバーのインストール完了時にODBC DSN 設定画面が立ち上がります。または、Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定できます。
Zuora はユーザー認証にOAuth 標準を使用しています。OAuth 認証ついて詳しくは、オンラインヘルプドキュメントを参照してください。
Tenant プロパティの設定
プロバイダへの有効な接続を作成するには、アカウントの設定と合致するテナント値を1つ選択する必要があります。以下は、利用可能なオプションのリストです。
- USProduction:リクエストはhttps://rest.zuora.com に送信されます。
- USAPISandbox:リクエストはhttps://rest.apisandbox.zuora.com に送信されます。
- USPerformanceTest:リクエストはhttps://rest.pt1.zuora.com に送信されます。
- EUProduction:リクエストはhttps://rest.eu.zuora.com に送信されます。
- EUSandbox:リクエストはhttps://rest.sandbox.eu.zuora.com に送信されます。
デフォルトではUSProduction テナントを使用します。
Zuora サービスの選択
データクエリとAQuA API の2つのZuora サービスを使用します。デフォルトでは、
ZuoraService は
AQuADataExport に設定されています。
DataQuery
データクエリ機能は、非同期の読み取り専用SQL クエリを実行することで、Zuora テナントからのデータのエクスポートを実現します。
このサービスは、素早く軽量なSQL クエリでの使用を推奨します。
制限
- フィルタ適用後の、テーブルごとの入力レコードの最大数: 1,000,000
- 出力レコードの最大数: 100,000
- テナントごとの、実行用に送信される同時クエリの最大数: 5
- テナントごとの、同時クエリの制限に達した後に実行用に送信され、キューに追加されるクエリの最大数: 10
- 1時間単位での、各クエリの最大処理時間: 1
- GB 単位での、各クエリに割り当てられるメモリの最大サイズ: 2
- Index Join を使用する際のインデックスの最大値。言い換えれば、Index Join を使用する際にWHERE
句で使われる一意の値に基づいた、左のテーブルから返されるレコードの最大数: 20.000
AQuADataExport
AQuA API のエクスポートは、すべてのオブジェクト(テーブル)のすべてのレコードをエクスポートするように設計されています。AQuA のクエリジョブには以下の制限があります。
制限
- AQuA のジョブ内のクエリが8時間以上実行されている場合、ジョブは自動的に停止されます。
- 停止されたAQuA のジョブは3回再試行可能で、その後失敗として返されます。
SQL Gateway でのZuora ODBC DSN を設定
CData ODBC ドライバにはSQL Gateway が同梱されています。このSQL Gateway に、Zuora ODBC Driver をサービスとして設定します。
-
「スタート」画面から「SQL Gateway」を起動します。青い「C」のSQL Gateway ロゴが右下のインジケータに表示されます。
アプリケーションコンソールが開かない場合には、SQL Gateway アイコンを右クリックして、「Open Application」をクリックしてください。
-
アプリケーションコンソールの「Service」タブを開いて、「Add」をクリックして、新しいODBC データソースを設定します。
-
Zuora ODBC の設定を行います。
Service Name]:任意
リモーティングDB 選択:SQL Server を選択
Data Source:ドロップダウンでCData Zuora Source Sys を選択
Port:使用していないポートを選択
-
次に「Users」タブ→「Add」からユーザーを登録します。
ユーザー毎にFull アクセスか、Readonly か、None の権限を選択できます。
複数のODBC データソースがある場合には、データソース毎に権限の設定が可能です。
「OK」を押して、ユーザー登録を完了します。
その後「Save Changes」で設定を保存します。
-
SQL Gateway の「Service」タブで「Start」ボタンを押して、サービスを起動します。サービスの左側の〇が緑色になれば、サービスは起動中です。
SQL Server でZuora リンクサーバーを設定
SQL Gateway 側でサービスの設定が終わったら、SQL Server 側でZuora サービスをリンクサーバーとして使う設定をしましょう。
-
SQL Server Management Studio (SSMS) を開きます。
オブジェクトエクスプローラーの「サーバーオブジェクト」で「リンクサーバー」を右クリックして、「新しいリンクサーバー」をクリックします。
-
新しいリンクサーバーの設定画面の「全般」で、以下を入力します。
サーバー種類:その他データソース
プロバイダー:SQL Server Native _Client 11.0
データソース:この例の場合、localhost, 1433 を入力
カタログ:ODBC DSN 名を入力
-
また、「セキュリティ」では、「このセキュリティコンテキスト」を選択して、リモートログインにSQL Gateway にユーザー設定したUser 名とPassword を入力します。
これで、リンクサーバーの設定は終わりなので、「OK」を押して設定を保存します。
SSMS でデータを見てみる
SSMS のオブジェクトエクスプローラーのリンクサーバー下にZuora のリンクサーバーが作成され、「テーブル」下にZuora のデータがアプリ単位でテーブルが生成されます。
新しいクエリを選択し、Zuora のデータを取得してみます。
SELECT * from リンクサーバー名.CData Zuora Source Sys(ODBC DSN 名).Zuora.テーブル名
このように、API のリクエストではなく通常のSQL 構文でデータを扱うことが可能になっています
Visual Studio からZuora リンクサーバーを使う
Visual Studio のサーバーエクスプローラーの「データ接続」を右クリックし、「接続の追加」をクリックして、データソースの選択画面を開きます。
データソースの選択画面でデータソースを「Microsoft SQL Server 」に選択して、「続行」を押します。
「接続の追加」画面で、以下を入力します。
サーバー名:SQL Server のサーバー名
認証:任意の認証方式
データベース名の選択または入力:※master など
※リンクサーバーを直接データベース名として入力することはできないようです。なので上位のデータベース名で設定しておきます。
「テスト接続」をして大丈夫であれば、「OK」を押して設定を完了させます。
「新しいクエリ」で、SQL でSELECT 文を書いてデータを取得してみます。
SELECT * from リンクサーバー名.CData Zuora Source Sys(ODBC DSN 名).Zuora.テーブル名
このように、通常のSQL Server のリンクサーバーと同じようにVisual Studio 内Zuora のデータを扱うことが可能になります。
他のIDE でもSQL Server にアクセスする方法でZuora のデータにSQL でアクセスが可能になります。
複数データソースのJOIN などを行う場合には大変便利です。
おわりに
このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをSQL Server に連携できます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。