Pentaho Report Designer でStack Exchange のデータを連携利用
CData JDBC Driver for Stack Exchange のデータ を使えば、ダッシュボードやレポートからリアルタイムデータにアクセスできます。この記事では、Stack Exchange のデータにJDBC データソースとして接続し、Pentaho でStack Exchange のデータをもとにしたレポートを公開する方法を説明します。
接続してレポートを作成
- インストールディレクトリのlib サブフォルダ内にあるドライバーのJAR ファイルを、Pentaho ディレクトリ内の\Report-Designer\lib\jdbc\ フォルダにコピーします。
- \Report-Designer\ フォルダ内のreport-designer.bat ファイルを実行してReport-Designer UI を開きます。
Data -> Add Data Source -> Advanced -> JDBC(Custom)をクリックし、新しいStack Exchange 接続を作成して、ドライバーで新しいデータソースを作成します。 表示されるダイアログで、以下のように接続プロパティを設定します。
Custom Connection URL property:JDBC URL を入力します。JDBC URL はjdbc:api: で始まり、その後にセミコロン区切りで接続プロパティを指定します。
まず、Profile 接続プロパティをディスク上の Stack Exchange プロファイルの場所に設定します(例:C:\profiles\StackExchange.apip)。次に、ProfileSettings 接続プロパティを Stack Exchange の接続文字列に設定します(以下を参照)。
Stack Exchange API プロファイル設定
StackApps でアプリケーションを登録して、API キーを取得します。Site プロパティでは、クエリ対象の Stack Exchange サイトを指定します(例:stackoverflow)。
組み込みの接続文字列デザイナー
JDBC URL の構成については、Stack Exchange JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.api.jar接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を設定する際、Max Rows 接続プロパティの設定も検討してください。これにより返される行数が制限されます。特にレポートやビジュアライゼーションを設計する際のパフォーマンス向上に役立ちます。
一般的なJDBC URL は次のとおりです:
jdbc:api:Profile=C:\profiles\StackExchange.apip;ProfileSettings='APIKey=your_api_key;Site=stackoverflow';- Custom Driver Class Name:cdata.jdbc.api.APIDriver を入力します。
- User Name:認証に使用するユーザー名。
- Password:認証に使用するパスワード。
レポートにStack Exchange のデータを追加
Stack Exchange のデータをもとにレポートを作成する準備が整いました。
-
レポートにStack Exchange のソースを追加します。Data -> Add Data Source -> JDBC をクリックしてデータソースを選択します。
クエリを設定します。この記事では以下のクエリを使用します:
SELECT AnswerId, CreationDate FROM Answers WHERE IsAccepted = 'true'
- レポートにチャートをドラッグし、ダブルクリックしてチャートを編集します。レポートを実行してチャートを表示します。このクエリの結果を使用して、Answers テーブルのシンプルなチャートを作成できます。
- 最後に、レポートを実行してチャートを確認します。