TIBCO Data Virtualization で FreshBooks のデータ にリアルタイムアクセスする方法

CData TIBCO DV Adapter for FreshBooks を使って、TIBCO Data Virtualization Studio でFreshBooks のデータソースを作成し、TDV Server から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 のデプロイ

  1. コンソールで、TDV Server のインストールディレクトリ内の bin フォルダに移動します。現在のバージョンのアダプターがインストールされている場合は、先にアンデプロイする必要があります。

    .\server_util.bat -server localhost -user admin -password ******** -undeploy -version 1 -name API
    
  2. 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 アプリケーションの作成

  1. 任意の名前で新しい Java ファイルを作成します(例:GenOAuthSettings.java)。この Java ファイルは、TDV Adapter の JAR に含まれる APIOAuth クラスを利用して、テスト接続を開始し、必要な OAuth 認証フローを実行します
  2. 次のコードをコピーして、.java ファイルに貼り付けます。
  3. 
    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();
    		}
    	}
    }
    
  4. .java ファイルは、tdv.api.jar ファイルと同じディレクトリに配置します。これは、コンパイルおよび実行時にクラスパスの解決エラーが発生しないようにするために必要です

Java アプリケーションのビルドと実行

  1. コンソールを開き、.java ファイルとアダプターの jar が格納されているディレクトリに移動します
  2. 次のコマンドで Java ファイルをコンパイルします。
  3. javac -cp .;tdv.api.jar GenOAuthSettings.java
    
  4. 次のいずれかのコマンドでアプリケーションを実行します。
  5. 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 に追加できます。

データソースの作成

  1. データソースを追加するフォルダを右クリックし、New -> New Data Source を選択します。
  2. アダプター(例:FreshBooks)が表示されるまでスクロールし、Next をクリックします。
  3. データソースに名前を付けます(例:CData FreshBooks Source)。
  4. 必要な接続プロパティを入力します。

    まず、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 認証(上記参照)を実行したときと同じ値を設定してください。

    接続情報の入力(Salesforce の例)
  5. Create & Close をクリックします。

データソースのイントロスペクト

データソースを作成したら、右クリックして Open を選択することでデータソースをイントロスペクトできます。ダッシュボードで Add/Remove Resources をクリックし、データソースの一部として含めるテーブル、ビュー、ストアドプロシージャを選択します。Next をクリックし、Finish をクリックして、選択した FreshBooks のテーブル、ビュー、ストアドプロシージャをリソースとして追加します。

データソースのイントロスペクト(Salesforce の例)

データソースを作成してイントロスペクトしたら、他のリレーショナルデータソースと同様に TIBCO Data Virtualization でFreshBooks のデータを操作できるようになります。ビューの作成、SQL によるクエリ、データソースの公開など、さまざまな操作が可能です。

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

詳細:

TIBCO DV アダプタ