Node.js で Zuora のデータを MySQL データベースとしてクエリ

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
Node.js からZuora のデータに対して MySQL クエリを実行する方法を紹介します。

Zuora 用の ODBC Driver の SQL Gateway を使用すると、MySQL インターフェース経由でZuora のデータをクエリできます。以下の手順に従って、SQL Gateway の MySQL リモーティングサービスを起動し、Node.js からクエリを開始してください。

Zuora のデータに接続

まだ行っていない場合は、データソース名(DSN)で必要な接続プロパティの値を指定してください。組み込みの Microsoft 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 サービスを使用します。デフォルトでは、ZuoraServiceAQuADataExport に設定されています。

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 を設定

SQL Gateway 概要を参照して、Zuora のデータ を仮想 MySQL データベースとして接続を設定してください。クライアントからの MySQL リクエストをリッスンする MySQL リモーティングサービスを設定します。サービスは SQL Gateway UI で設定できます。

SQL Gateway で MySQL リモーティングサービスを作成(Salesforce の例)

Node.js から Zuora をクエリ

以下の例では、mysql モジュールを使用して Zuora への接続を定義し、クエリを実行する方法を示しています。以下の情報が必要です。

  • ホスト名またはアドレス、およびポート:MySQL リモーティングサービスが MySQL 接続をリッスンしているマシンとポート
  • ユーザー名パスワード:SQL Gateway の Users タブで認証したユーザーのユーザー名とパスワード
  • データベース名:MySQL リモーティングサービス用に設定した DSN

以下のコードでZuora のデータに接続し、クエリの実行を開始できます。

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  database : 'CData Zuora Sys',
  port	   : '3306',
  user     : 'mysql_user',
  password : 'test'
});
connection.connect();
connection.query('SELECT * FROM Invoices', function(err, rows, fields) {
  if (err) throw err;
  console.log(rows);
});

connection.end();

はじめる準備はできましたか?

Zuora ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Zuora Icon Zuora ODBC Driver お問い合わせ

Zuora ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからZuora にデータ連携。

Zuora データにデータベースと同感覚でアクセスして、Zuora に使い慣れたODBC インターフェースで連携。