2011-07-29

東京電力電力供給状況API と QlikViewでチャートを表示

日本だと、まだ QlikView の話題が少ないなあと思うこのごろ。

Personal Editionは無償という状況ですが、やはりライセンスを持っていないと、他人とデータ・レポートがやりとりできないのは厳しいのかもしれません。

いろいろグラフ用のオブジェクトがあるのにちょっと勿体ないなあ~と考えていたので、周りにUIの紹介をするために、簡単なサンプルを作ってみました。

今回試したのは、東京電力電力供給状況API からデータを取得し、メータ表示するというものです。

APIはいろんな方が創られているんですが、QlikViewが解析できるフォーマットは、CSVかXML。JSONはまだQlikView自体では解析できません。

そこで、読み込むタイミングの最新のデータはAppspotのAPIのうちCSVで提供されているデータを使い、1時間あたりの使用率はYahoo!のAPI(2番目)のものを利用させていただくことにしました。

  1. http://tepco-usage-api.appspot.com/
  2. http://developer.yahoo.co.jp/webapi/shinsai/setsuden/v1/latestpowerusage.html

 

tepco-usage-qlikview

tepco-usage-qlikview

作った画面はこんな感じ。

ブラウザで表示できるんですが、やっぱり画面リロードしたらデータが更新される、もしくは定期的に更新してくれるという代物ではないのがちょっとさびしい(^^;

それでも、UI中心のプログラマじゃなくても、こういったタイプのグラフを使ってデータを割とすぐに表示できるのはQlikViewのいいところですね。

* * *

ちなみに、データはコマンドラインで定期的に更新(リロード)処理をかけています。

QlikViewはサーバがあればサーバのスケジューラを利用できますが、私はクライアントで閉じたかったので、Jenkinsを利用してバッチジョブ化しております。

過去のデータを蓄積したり、気温と連動して表示していけば、何曜日の何時が使用量が高い、とかが見えてきて面白いのですが、まだそこまでは作り込めていません。

JSONのフォーマットも解析できるようになってくれるといいんだけどなあ。

参考までに、ロードスクリプトはこんな感じです。

※YahooのAPIには開発者用のIDが入ります。

-- 1時間あたりの平均はYahoo APIから

ElectricPowerUsage:
LOAD
    Area,
    Usage,
    Capacity,
    Date,
    YEAR(Date) AS target_year,
    MONTH(Date) AS target_month,
    DAY(Date) AS target_day,   
    Hour,
    [Capacity/unit],
    [Usage/unit]
FROM [
http://setsuden.yahooapis.jp/v1/Setsuden/latestPowerUsage?xxxxxxxxxxx (XmlSimple, Table is [ElectricPowerUsage]);

-- 読み込み時の最新は、tepco-usage-api.appspot.com のCSVデータから

CurrentData:   
LOAD @1 as CurrentTime,
     @2 as CurrentUsage,
     @3 as CurrentCapacity
FROM
[
http://tepco-usage-api.appspot.com/quick.txt]
(txt, codepage is 932, no labels, delimiter is ',', msq);

0 件のコメント:

コメントを投稿