前回Uberのdeck.glを使って、そのサクサク度合いにオールドGISユーザは度肝を抜かれていたのですが、まだまだ開発者向けのnode.js 断片のようで、気軽にデプロイして、デイリーに分析環境として使うにはハードルが高すぎます(JSの知識はHTML4の時点で止まっているオジサン)
オープンソースのGPGPUベースデータ分析プラットフォームのMapDというものがあり、deck.glと同様、大量のIoTデータに対して、インメモリのデータハンドリングとビジュアライゼーションを提供する今どき環境です。
本当に仕事に必要なのか、大きな疑問はあったものの、deck.glのやっぱりコレジャナイ感満点で欲求不満になっていた、似非Dサイエンティストの刹那的かつ即物的な欲望を満たすためにMapDをトライしてみました。
MapDとは
MapDは、MITのTodd Mostakが2012年にデータベース教育の一環として始めたGPUベースのDB,可視化環境です。
2013年にMapD Technologies, Inc.をマサチューセッツ州で創業。2014年にNVIDIAなどから本格出資を得て、各種分野への採用を経て、今年になってオープンソース版を提供し始めています。
デモページを見るのが一番早いと思いますが、1Gポイントを超えるデータをWebベースの地図にオーバーレイでき、しかもBIツールなどと同様に各ポイントがセレクタブルかつ属性によってシェイプを変更できるという、にわかには信じられないパフォーマンスを誇ります。
昔OpenGLでGPSトラックを1億点ほど表示して、今どきPCのレンダリング能力の高さを知ってはいましたが、これがクリッカブル、エディタブルなものとして使えるようになるとは驚きです。
パフォーマンス
NYCのタクシーデータを表示してみました。表示するまでは少し待ちますが、ひとたびレンダリングされた後は、まったくストレスなく動きます。(それなりのGPU環境ですが)
百万点を超えると、ArcGISやTableauなどでも、ほとんどマップは動かなくなりますが、MapDだと、まったくディレイを感じさせない動きをします。
直感でしかないですが、GPU上のメモリにフィットした場合(このデータは1.5GBでぎりぎり乗っていると思われる)は最高のパフォーマンスを発揮していると思われます。(ビデオメモリは4GB)
分析例
ダッシュボードは以下のように、地図とグラフを併用でき、お互いが相互スライス可能になります。ここでは、ピックアップポイントとドロップポイントの地図、時系列、トリップの距離と時間の関係などを表示しています。
ピックアップポイントと時間帯を限定するスライシングをしてみました。以下はマンハッタン中央から昼間出発したタクシーの行き先です。ビジネスマンや観光客などマンハッタン内での移動で閉じていることがわかります。
同じセントラルパーク主変から、真夜中に出発したタクシーを選択すると、行き先が郊外の住宅地に向かうエリアに大きく広がることがわかります。
こんなビッグデータについて、通常なら、メッシュ状に切ったODに対して、OD流量を定義したマトリックスを作成して、とかになり、集計が非常に煩雑になり、かつ時系列なども考慮するなら、大きなデータ圧縮効果も見込めないので、そもそもGISを使ってもインタラクティブ解析は無理であることが、予想できます。
インタラクティブかつBigDataというものが、クエリーエンジンとこのBI型フロントエンドで手軽に使える、既存のBIツールの基本機能と、SQLによる柔軟な処理体系、正直、これさえあればほかの環境はいらないと言っても過言ではないですね。
課題は安定性と、集計データの二次利用でしょうか。おそらく今後拡充されてくると思います。