AWS S3の格納ファイル状況をLooker Studioで可視化した話
今回は珍しく実務のことについて書きます。
現在の所属では特別な機器を各病院に使ってもらい、取得したデータで新しい医療を実現するためのAI開発や、新しいエピデンスを得るための臨床研究を行っています。
その中で、データはAWSのS3バケットに保存してもらうのですがその管理が中々に大変です。医療系での研究開発では研究計画通りにデータ収集が進んでいるか、症例数を管理できる体制が必須です。
ということで、これを実現するシステムをLooker Studioで構築しました。
※当然社外秘なので、実体は出しません。
AWS S3でファイル数を確認する辛さ
実際にAWSコンソールでAWS S3の画面を見たことある人は分かると思いますが、少し癖の強いエクスプローラーのような見た目で、オブジェクト構造(=ディレクトリ構造)を一目で把握するのは困難です。
特に、フォルダで分割されている場合はその中のリンクを踏んで逐一確認する必要があります。
よって、単なる集計にもかなりのコストがかかり、さらに細かい分析はもっと時間を費やしてしまうような状況になります。逐一データの取得状況を確認し、医療機関との連携を図る上ではこのようなやり方ではとても間に合わないです。
ファイル一覧をAWS APIで獲得する
ということで、GUIでの集計は諦めてCLIでデータを収集します。AWSはコンソールでできる(+α)操作をAWS CLI Commandで行えるようにしています。
そして、その中にS3に格納されているファイル一覧を取得するものがあります。
これを使えば、コンソール上でポチポチ確認しなくても、以下のスキームを持ったデータを一元で見ることができます。(一つのバケットしか一回で確認できないことは注意です)
オブジェクト構造
ストレージクラス
オブジェクト容量
オブジェクト格納日付日時
しかし、上記のコマンドだけではコンソール上に出るだけでそこからの分析はできません。そこで、PowerShellの関数と組み合わせてCSV形式などで保存していきます。(↓の記事が大変参考になります。)
これで、可視化に使うデータは抽出できました。加えて、私はこれを社内のみんなが使える状態にしたいのでスクリプト化して、手順書等の整備も加えて、誰でも同じスキームを持ったデータを取得できるようにしました。
※ここではAWSの権限周りの話はすっ飛ばしています。
CSV上での分析
ここまででも十分な集計は可能です。抽出できたCSVがプライマリーキーがオブジェクトとなっているので行数を数えるだけでデータ数を取得することができます。
Excelとの機能や関数を組み合わせることでもう少し高度な分析も可能です。
場合によってはここまで、終わりでも良いですが今回のケースでは複数バケットを同時に確認したり、直感的な操作や医療機関への報告レポート作成に役立てるためにLooker Studioでダッシュボードを作成するところまでやりました。
Looker Studioでのダッシュボード構築
Looker Studio(旧データポータル)はGoogleの無料で使えるBIツールです。直感的な操作で簡単にダッシュボードを作成することができます。(痒いところに手が届かない感じはTableauに劣りますが、まあこれくらいでも十分だと思います)
加えて、Looker Studioのデータソース接続コネクタは800種以上と非常に充実しています。Google スプレッドシートとも連携することができます。スプレッドシートは社内共有が簡単で、誰でも実体を見やすいということでここデータソースを組んでいきます。
データソースの作成
スプレッドシートでは、各バケットごとにシートを作成し、データソースとして接続するシートにこれらを縦結合していく方式を取りました。
スプレットシートで縦結合する関数はQueryとImportrangeの組み合わせがおすすめです。
プラスでダッシュボード上で見たい指標を関数で実装したりしました。例えば、オブジェクト構造名を分解して、ディレクトリ名やファイル名を取り出すためにSplit関数を使いました。
このときに、ArrayFormula関数を使うと一々範囲指定せずとも全行に計算を反映することができます。
こうして、Looker Studioに入れるデータの準備ができました。
※蛇足ですが、BIダッシュボード向けのデータ作成として「Tidyデータ」という概念があります。今回はあんまり考えなくても良かったのですが、ダッシュボードを構築する際になんとなくグラフを作り辛いと思った方は↓の記事を見てTidyなデータでやってみてください!
ダッシュボードの構築
ここまで来れば、残るはLooker Studioをいじいじしてダッシュボードを作っていくのみです。モニタリングが目的なので以下のような要素を入れ込みました。
症例数のカード
ファイル数のカード
症例数推移
ファイル名の簡単な集計
症例ごとのピボットテーブル
実際にこのダッシュボードのおかげで「3日ほどかかっていた作業が数秒で終わるようになった」との嬉しい報告をいただきました。このようなBIエンジニアリングもデータドリブンを充実させ、意思決定を後押しする素晴らしいデータサイエンスだと実感できました。
ということで、Looker Studioでいい感じの業務効率化を図ってみましたの記事でした。普段は統計学ばっかりやっているのでいい気分転換でしたw。
最後までお読みいただきありがとうございました。