Pentaho Data Integration (ETL): 2014年1月アーカイブ

2014年のBI/BA関連キーワードの1つにオープンデータがあります。
オープンデータとは、データは著作権、特許などの制限なしで全ての人が望むように利用・再掲載できるような形で入手できるべきであるという考えです。
公共的なものと親和性が高いこともあり、日本政府は総務省情報通信審議会中間答申(『知識情報社会の実現に向けた情報通信政策の在り方』平成23年7月25日)において、主体、分野・領域に閉じない情報の流通・利活用のためのオープンデータ環境の整備が必要であることを提言、IT戦略本部において平成25年7月4日に「電子行政オープンデータ戦略」が策定されました。
更に産官学共同でオープンデータ流通推進コンソーシアムが立ち上がり、各種データを利用できる基盤を実証実験的に整え、利用者にコンテスト形式で公開しつつあります。
テクニカル面で注目されるのはRDFと呼ばれるデータ・フレームワークと、そのデータにアクセスするための言語SPARQLです。
オープンデータとオープンソースは思想的にも相性がよいですネ。
PentahoDataIntegrationのプラグインとしてRDF入力がありましたので、以下よりダウンロード、追加してみました。
国勢調査の人口動態や経済動向などの各種公共データと売上などの社内データをPentahoでブレンディングすることにより、新たな知見が得られると思います。
★Enjoy Open Data with Pentaho★
KSK Analytics Pentaho Team
以前、「フィールド数が可変するCSVファイルの読み込み(Metadata Injection)」というブログを書きましたが、Metadata Injectionステップと合わせて使用すると有意義なステップがあるのでご紹介しておきます。
これです。
右側の「メタデータ構造」ステップ(英語だと、Metadata Structure of Stream)です。
データストリームとして流れてくるデータのメタデータ構造を取得することができます。
設定項目としては以下のとおり、シンプルです。
ステップ名→該当ステップの名前を設定
レコード数を出力する→データストリームのデータ数を出力する場合はチェックを入れる
フィールド名→上記レコード数を保持するフィールド名を設定
結果は以下のようになります。
フィールド名やフィールド位置、タイプ等が取得できます。
どのような時に使用するかですが、最初のイメージにあるようにTableを動的にInputする場合(入力毎にフィールドが変更される場合)で、そのデータを非正規化しなければいけない時が考えられます。
非正規化ステップは、あらかじめどのフィールドを非正規化の対象にするかを設定していなければなりませんが、Tableのフィールドが動的に変わることを想定すると、Table分のETLを定義しなければならなくなります。
その際に、「Metadata Structure of Stream」ステップと「Metadata Injection」ステップを組み合わせる(取得したメタデータ構造をMetadata Injectionで注入する)ことで、一つのETL定義だけで対応することが可能となります。
一度お試しいただければ幸いです。
★Happy PDI Life★
KSK Analytics Pentaho Team
といっても、大体上記のチャットワークのブログと方法は同じです。
API仕様に合わせたURLを作成し、そのURLを「RESTクライアント」ステップにて読み込み、返却されるJson形式の結果を「Json入力」ステップにてパースするイメージです。
今回の例では、単純に「データグリッド」ステップでURLを直接設定していますが、実際には「Formula」ステップ等のスクリプト系ステップを使用してURLを組み立てる感じになるのではと思います。
参考までにサンプルを置いておきます。認証用のKeyはダミーのものにしていますので、実際に使用する場合は、ご自身のKeyに置き換えてください。
BIとして活用する場合には、駅情報から取得できる緯度経度情報をGeoMapで使用したり、営業担当向けのレポートなどで過去のお客様先訪問頻度から当日訪問先の選定を実施する様な場合に、さらに経路情報を取得し表示するといったようなものが考えられるのではないかと思います。
私も全ては試していませんが、「駅すぱあとWebサービス」から取得できる情報はまだまだいろいろとあるようなので、こういった情報と社内の情報を組み合わせて活用することで、新たな発見があるかもしれませんね。
それでは、今日のところは以上です!
★Have a nice open source day★
KSK Analytics Pentaho Team
明けましておめでとうございます。
2014年がはじまりましたね。
今年がみなさまにとって良い年になることをお祈りしております。
さて、さっそくですが、2014年最初のブログです。
細かい話なので、年初のネタとしてふさわしいか微妙なところですが、気にせずやってしまおうかと思います。
PDIの実行結果をDIサーバを経由して取得することが可能ですので、ご紹介いたします。
まず、Transformation(名前:webservicedemo.ktr)を以下の用に作成します。
作成したTransformationの内容ですが、まず「Sample Data」にて、データを生成しています。
「Json Output」では「Sample Data」で生成したデータをJson形式に変更しています。
さらに「サーブレットに出力」というオプションにチェックを入れることで、サーブレット経由で結果を出力することが可能となります。
また、「ブロック内の行数」を0にすることで、全ての結果をひとつのJsonブロックとして出力することができます。
次に、作成したTransformationを、DIサーバが動作するサーバ上にコピーします。
ここでは、/tmp/webservicedemo.ktrにコピーしています。
以上で、準備は完了です。
この状態で、DIサーバへアクセスすると、結果をJson形式で取得することができます。
こんな感じです。
http://servername:port/pentaho-di/kettle/executeTrans/?trans=%2Ftmp%2Fwebservicedemo.ktr
※%2Fは / を意味しています
更に、PDIから取得する場合は、以下のようになります。
「データグリッド」ステップで、上記のURLを指定し、「RESTクライアント」ステップで実行、「Json入力」ステップで取得したJson形式の結果をパースするという感じです。
詳細の説明は割愛させていただきますが、使用したTransformationを置いておきますので、必要な方はダウンロードして内容をご確認いただければ幸いです。
今回は、とても簡単なTransformationを実行して結果を取得するところまでご紹介しましたが、Transformation内で実行可能な処理は全て実行することが出来ますので、様々なデータソースからデータを取得し、クレンジングやJoin等の処理を実施したデータを取得することや、複数のオープンデータをマッシュアップして新たなデータを提供するなど、活用余地は大きいかと思います。
ぜひご活用ください。
★Have a great New Year!!★
KSK Analytics Pentaho Team