この記事では、JDBCドライバーを活用して、Treasure DataをJasperSoft iReportと連携する方法について説明します。Treasure DataとJasperSoftを組み合わせることで、既存のJasperSoftインスタンスを使い続けながら、クラウド上でテラバイト規模のデータを処理できます。
- Treasure Dataの基本的な知識。
- Schemaの記事では、TDスキーマを操作する方法について説明しています。
JasperSoft + Treasure Dataのセットアップに時間がない場合は、セットアップコンサルテーションサービスをご活用ください。
JasperSoft iReportは以下のリンクからダウンロードできます。この記事ではバージョン4.6.0を使用しました。
ドライバー本体は以下のリンクからダウンロードできます。このドライバーはまだベータ版です。フィードバックをお待ちしております。
| このドライバーはTreasure Dataでのみ動作します。ローカルのHadoop/Hiveクラスターなど、他の環境では実行できません。 |
JasperのデータソースとしてTreasure Dataを追加するには、以下の手順に従ってください。
Preferences -> iReport Tab -> Classpathに移動し、Add Jarボタンを押します。ダウンロードしたJDBCドライバーを選択し、テーブル内のReloadableボックスにチェックを入れます。

「Empty datasource」インジケーターの近くにあるデータベースアイコンを押します。タイプ「Database JDBC connection」で新しいデータソースを追加します。

以下の図に示すようにJDBCパラメーターを設定します。認証情報(メールアドレス + パスワード)を必ず入力してください。
Treasure DataのJDBCドライバーは「JDBC Driver」ドロップダウンには表示されません。ドロップダウンエリアを選択し、com.treasure\_data.jdbc.TreasureDataDriverと入力してください。

このステップの手順は、JDBCソースを使用したレポート作成と同じです。
まず、File -> New -> Reportに移動してレポートを作成します。データソースが「TreasureData」(またはJDBC接続に付けた名前)に設定されていることを確認してください。

ここでは、クエリは以下のようになります。
SELECT code, COUNT(1) AS count FROM apache_log GROUP BY codeこのサンプルデータについての注意事項:
このテーブルのデータは、典型的なApacheログから取得されたものです。codeフィールドはHTTPステータスコードに対応しています。基本的に、ステータスコードごとのHTTPリクエスト数をカウントしています。
Treasure Dataには、すぐに使える事前定義されたスキーマがありません。したがって、上記のクエリを動作させるには、codeという名前のフィールドのスキーマを追加する必要があります。
$ td table:show demo apache_log
残りのセットアップは、他のレポートとまったく同じです。
