TIBCO Data Virtualization で FreshBooks のデータ にリアルタイムアクセスする方法
TIBCO Data Virtualization(TDV)は、複数の多様なデータソースへのアクセスを一元管理するエンタープライズデータ仮想化ソリューションです。CData TIBCO DV Adapter for FreshBooks と組み合わせることで、TIBCO Data Virtualization 内からFreshBooks のデータに直接フェデレーテッドアクセスが可能になります。この記事では、アダプターのデプロイと FreshBooks に基づく新しいデータソースの作成手順を解説します。
CData TIBCO DV Adapter は、最適化されたデータ処理機能が組み込まれており、FreshBooks のデータ とのインタラクションにおいて比類のないパフォーマンスを発揮します。FreshBooks に対して複雑な SQL クエリを発行すると、アダプターはフィルタや集計などサポートされている SQL 操作を直接 FreshBooks にプッシュします。組み込みの動的メタデータクエリにより、ネイティブのデータ型を使用してFreshBooks のデータを操作・分析できます。
FreshBooks TIBCO DV Adapter のデプロイ
コンソールで、TDV Server のインストールディレクトリ内の bin フォルダに移動します。現在のバージョンのアダプターがインストールされている場合は、先にアンデプロイする必要があります。
.\server_util.bat -server localhost -user admin -password ******** -undeploy -version 1 -name API
CData TIBCO DV Adapter をローカルフォルダに解凍し、解凍した場所から JAR ファイル(tdv.api.jar)をサーバーにデプロイします。
.\server_util.bat -server localhost -user admin -password ******** -deploy -package /PATH/TO/tdv.api.jar
新しい JAR ファイルが正しくロードされるように、サーバーの再起動が必要な場合があります。再起動は、C:\Program Files\TIBCO\TDV Server <version>\bin にある composite.bat スクリプトを実行して行えます。サーバーを再起動した後は、TDV Studio への再認証が必要です。
再起動コマンドの例
.\composite.bat monitor restart
OAuth を使用して FreshBooks で認証する
FreshBooks は OAuth プロトコルを使用して認証を行いますが、TDV Studio は内部でブラウザベースの認証をサポートしていないため、OAuth トークンを取得するための簡単な Java アプリケーションを作成して実行する必要があります。取得したトークンは、アダプターから直接 FreshBooks に接続するために使用されます。
Java アプリケーションの作成
- 任意の名前で新しい Java ファイルを作成します(例:GenOAuthSettings.java)。この Java ファイルは、TDV Adapter の JAR に含まれる APIOAuth クラスを利用して、テスト接続を開始し、必要な OAuth 認証フローを実行します
- 次のコードをコピーして、.java ファイルに貼り付けます。
- .java ファイルは、tdv.api.jar ファイルと同じディレクトリに配置します。これは、コンパイルおよび実行時にクラスパスの解決エラーが発生しないようにするために必要です
public class GenOAuthSettings {
public static void main(String[] args) {
try {
if (args.length != 2) {
throw new Exception("Input must have two arguments: 'data source', 'connection string'");
}
String source = args[0].replace(" ", "").toLowerCase();
String connectionString = args[1];
String prefix;
if (source.equals("api")) {
prefix = "jdbc:api:";
com.cdata.cis.api.APIOAuth oauth = new com.cdata.cis.api.APIOAuth();
if (!connectionString.startsWith(prefix)) connectionString = prefix + connectionString;
oauth.generateOAuthSettingsFile(connectionString);
}
// More sources can be added below using the same format. You must add the import statement and ensure the jar file resides in the classpath
// else if (source.equals("googlebigquery") || source.equals("bigquery")) {
// prefix = "jdbc:googlebigquery:";
//
// com.cdata.cis.googlebigquery.GoogleBigQueryOAuth oauth = new com.cdata.cis.googlebigquery.GoogleBigQueryOAuth();
//
// if (!connectionString.startsWith(prefix)) connectionString = prefix + connectionString;
// oauth.generateOAuthSettingsFile(connectionString);
// }
else {
throw new Exception("Data Source not supported. Available Data Sources: FreshBooks");
}
System.out.println("Test Connection Successful!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Java アプリケーションのビルドと実行
- コンソールを開き、.java ファイルとアダプターの jar が格納されているディレクトリに移動します
- 次のコマンドで Java ファイルをコンパイルします。
- 次のいずれかのコマンドでアプリケーションを実行します。
javac -cp .;tdv.api.jar GenOAuthSettings.java
java -cp .;tdv.api.jar GenOAuthSettings "API" "connection string"
このコマンドを実行すると、OAuth 認証フローが開始され、OAuthSettingsLocation パラメータで指定した場所に OAuth 設定ファイルが生成されます。 アダプターをデプロイして認証を行うと、TDV Studio で FreshBooks 用の新しいデータソースを作成できるようになります。
TDV Studio で FreshBooks データソースを作成する
CData TIBCO DV Adapter for FreshBooks を使用すると、FreshBooks 用のデータソースを簡単に作成し、データソースをイントロスペクトしてリソースを TDV に追加できます。
データソースの作成
- データソースを追加するフォルダを右クリックし、New -> New Data Source を選択します。
- アダプター(例:FreshBooks)が表示されるまでスクロールし、Next をクリックします。
- データソースに名前を付けます(例:CData FreshBooks Source)。
必要な接続プロパティを入力します。
まず、Profile 接続プロパティをディスク上の FreshBooks プロファイルの場所に設定します(例:C:\profiles\FreshBooks.apip)。次に、ProfileSettings 接続プロパティを FreshBooks の接続文字列に設定します(以下を参照)。
FreshBooks API プロファイル設定
FreshBooks Developer Dashboard で OAuth アプリケーションを登録し、Client ID と Client Secret を取得します。アプリケーションのコールバック URL にリダイレクト URI を設定します。
NOTE:DV Adapter の OAuthSettingsLocation プロパティには、OAuth 認証(上記参照)を実行したときと同じ値を設定してください。
- Create & Close をクリックします。
データソースのイントロスペクト
データソースを作成したら、右クリックして Open を選択することでデータソースをイントロスペクトできます。ダッシュボードで Add/Remove Resources をクリックし、データソースの一部として含めるテーブル、ビュー、ストアドプロシージャを選択します。Next をクリックし、Finish をクリックして、選択した FreshBooks のテーブル、ビュー、ストアドプロシージャをリソースとして追加します。
データソースを作成してイントロスペクトしたら、他のリレーショナルデータソースと同様に TIBCO Data Virtualization でFreshBooks のデータを操作できるようになります。ビューの作成、SQL によるクエリ、データソースの公開など、さまざまな操作が可能です。