株式会社アゼスト齋藤です。
データエンジニアとして、Tableauダッシュボード作成から、データ整理まで幅広く担当しております。
最近は、お客様と一緒にデータ取得方法の整理から、運用に使うデータソース整備の取り組むことが多くなっております。
みなさんこんにちは。データプリパレーションには皆様苦労されていると思います。今回、データ分析プラットフォームツールとカテゴライズされているKNIME(ナイム)を使って、KNIME x Tableauのコンビネーションでデータプリパレーションとビジュアライズの組み合わせを試してみたので、ご紹介します。
KNIMEとは?
①データ分析、操作、およびビジュアル化のためのオープンソースのツールです。つまり無料!
②グラフィカルインターフェイスに基いてます。
③さまざまな拡張機能(統計解析、機械学習機能やクラウドサービスとの連携等)を提供します。
加工処理や分析処理の部品(ノード)をドラッグ&ドロップしながらワークフローを作成していくことができます。今回はデータプレパレーションを試してみます。
KNIME x Tableauの構成
Amazon S3上にjson形式で日々蓄積されるトラフィックデータをTableauでモニタリングできるようなビジネスシーンを想定して、以下のような構成でプリパレーションの自動化を試みてみます。
KNIMEを使ってみた
加工のステップとしては、以下の5つです。
①AWSのS3からjsonデータを複数読み込み
②json形式から行列形式に変換
③ちょっと加工してパブリッシュ
こんな感じでワークフローを作ってみました。
緑の〇で囲まれた箇所(JSON Reader)では、S3のパスを指定するだけでOKです。
赤の〇で囲まれた箇所のデータを覗いてみます。右クリックでロードした全てのデータを参照することができます。全てのノードの状態が同じように確認できるので、期待通りの処理が行えているかを一つ一つ確認できるのが非常に嬉しいです。さて、ここからTableauで可視化できるように行列形式に変換します。尚、String型の日付はファイル名に含まれる日付を変数化して付与してみました。
最後に青〇で囲まれたノードの状態です。プレパレーションが完了したこの形式ならVizに取り掛かれますね。
単純なデータですが、Viz作ってみました。
月別の合計トラフィックをサマリー、日別、時間帯別の波形が確認できました。それぞれ、ピーク時間とそうでないところに激しく差があることが読み取れるので、リソースを状況に応じて変動できるとコスト最適化につながりそうです。
良かったところまとめ
使ってみて特に感動した機能を5つご紹介すると・・・
①各ノードを通過後のデータが都度見れる
ノード前後で数値検証できるのでロジックの検証もでき便利でした。さらに、処理後の状態でワークフローを保存しておけば、KNIMEを一度閉じても、次に起動したらデータが残っていて見れるので前回処理した結果を見ることができました。重たい処理を改良する際など、再度実行する待ち時間待ち時間を減らすのにも役立ちそうです。
②ノード(部品)をフリーワードで検索できる
「group」や「join」と打ち込むと、ノードを検索してくれるので、部品の名前を覚えていなくても、行いたい操作のノードが見つかる。※ちなみにノードの種類は1000位あるみたいです。
③速い
これは体感してみないとわからないと思うのですが、とにかく速かったです。各ノードの処理進捗が%で見えるので、あとどれくらいかかりそうかわかって良かったです。
④幅広いデータソースと接続可能
今回はAmazon S3のjsonファイルを読み込みましたが、各種ファイルのみならず、AWSRedshiftをはじめとする各種データベースや、GoogleAnalyticsと接続するためのノードも用意されていました。
⑤Tableauとの相性はばっちり!
Hyper形式、tde形式それぞれでTableau Server / Tableau Onlineそれぞれにデータを直接パブリッシュできるので、運用面でもメリットが大きそうです。