たんぱく質摂取量をTableauでグラフ化する

 Google スプレッドシートのマクロ栄養素の記録が溜まってきたのでここらへんで公開してみる.

 グラフ作成用のプラグインを探してみたが,いまいちよく分からない.今回は Tableau Public® のダッシュボードを埋め込んでみた.

 Tableau Public は無料でアカウントを作れる.詳細は各自で検索してほしいが,やり方としては以下の流れになる.

  1. Tableau Public のデスクトップアプリをダウンロードする
  2. Tableau Public のアカウントを作成する
  3. データソースとして Google スプレッドシートから目的のファイルを指定する
  4. Tableau Public でシートを作成する
  5. Tableau Public でダッシュボードを作成する
  6. ダッシュボードから埋め込みコードを発行する
  7. 埋め込みコードをブログに貼り付ける

 グラフ作成用プラグインはデータを生のまま表示する目的に使うが,ビジネスインテリジェンス系のソフトは抽象度が一段高い.通常,食事のマクロ栄養素の記録は食品 1 項目ごとに行う.食品 1 項目につき 1 行だ.これをデータベース界隈では第一正規形であるという.

 ビジネスインテリジェンス系のソフトはこれらの生データを集約する.ここでは 1 日分のたんぱく質摂取量の合計を求めることになる.

 今,合計という言葉を使った.データベースでは生データを集約する関数が実装されている.合計,最大,最小,平均,分散,個数.生データを日付で集約すると 1 日ごとの代表値が求められる.

SELECT DATE, SUM(protein) FROM Table GROUP BY DATE

 上記は SQL というデータベース操作言語である.実際には Tableau の裏では MDX® という多次元キューブを操作する言語が走っているが,ここでは分かりやすくするために SQL を出した.GROUP BY で集約するディメンションを指定し,SUM で合計を求めたいメジャーを指定する.

 MDX は Microsoft が開発した言語なんだけど,日本語の書籍がまったくない状況だ.データウェアハウスとか OLAP とか,昔そんな言葉が流行っただろう?あれを記述する言語.正直複雑すぎて手に負えないとは思うんだけど,日本から経営支援ツールが出てこないのは,こういうところにも原因があると思う.

©士郎正宗『攻殻機動隊(2)』
 複数のデータベースを串刺しにして検索をかけているところ.OLAP てのは複数のデータベース,テーブルを 1 枚のテーブルに結合して検索かけるんだけど,SQL でやるとコストが無茶苦茶高い.つまり時間がかかる.なのであらかじめ結合したテーブルを作っておいて規定の検索式を作っておくのが普通.
 しかしこの例の場合,デカトンケイルという超 AI の計算資源を使って力技で検索をかけていると思われる.

 Tableau では protein をメジャーに,DATE をディメンションに指定する.EXCEL® のピボットテーブルだとメジャーは Σ 値に,ディメンションは行にあたる.

 話はそれるが,田中亨という EXCEL インストラクターがいる.VBA を教えるのはとても上手いのだが,ピボットテーブルに関してはまるでダメだ.彼の書籍を読んでもいまいちピンとこない.結局,試行錯誤してみましょうね,の域を出ない.リレーショナルデータベースのことをよく分かってないんだと思う.

 下記の書籍は買ってはいけない.実際,この書籍以降彼はピボットテーブルの書籍を出版していない.データウェアハウスとかそこら辺に詳しい人の書籍がほしいところだ.

 話が脱線した.

 マクロ栄養素による食事摂取量の把握では Google Data Studio® を使って直近 7 日間のたんぱく質摂取量を表示したが,今回は Tableau Public というツールを使ってみた.より高機能である,と思う.積み上げ棒グラフがなぜか作れなかったのだけれど.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください