LoginSignup
6
8

More than 1 year has passed since last update.

MetabaseでCSVデータを集計・可視化する方法

Posted at

はじめに

データ分析にあたってどんなデータなのかを可視化してみることが第一歩になります。また、モニタリングすべき数値があれば、リアルタイムに、誰でも見れる状態にしておくことが理想です。これらのために、BI(ビジネスインテリジェンス)やダッシュボードツールが存在します。
一般に使われる製品としては、セールスフォース社のTableauやマイクロソフト社のPowerBiがあります。しかし、個人で利用するには少々お高め。。。
無料のものとして、RedashやMetabaseがあります。
今回は、Metabaseを使って、delika等で取得できるCSVデータを可視化してみます。標準機能では、DB接続のみですが、アドオンのツールを使ってCSVで読み込めるようにします。

要件

  • 前提:Metabaseが稼働している
  • CSVデータを読み込み、可視化(グラフ化)する

Metabaseについて

無料で使えるダッシュボードツールです。いわゆる、ローコード開発が可能で、SQLを知らなくても、データを抽出し、集計できるようになっています。もちろんSQLを書くことも可能です。
MySQLやPostgreSQL、SQLiteなどのオープンソースのデータベース、OracleやSQLServerのDB製品、Redshift(AWS)とBigQuery(GCP)のクラウドサービス、など多様なデータソースに対応しています。
ただ、惜しいことにCSVやエクセルファイルなどには標準では対応しておりません。
公式サイト:https://www.metabase.com/
※インストール方法はJavaを使う方法、Dockerを使う方法があります。Documents内のInstallを参照ください。

実装方法

csv-metabase-driverをインストール!で完了します。簡単ですね。プラグインとして、CSVを読み込めるようなドライバーを作ってくれている人がいます。

  1. 下記、GithubのREADMEを開く
    https://github.com/Markenson/csv-metabase-driver
  2. ページ中程Installation内の「this file」をダウンロード
  3. metabase.jarが格納されているフォルダ内の「plugins」フォルダ内にダウンロードした「csv.metabase-driver.jar」を格納
  4. Metabaseの再起動

使用方法

  1. Metabaseにログイン
  2. 「マイデータ」の追加を押す
  3. データベースタイプにCSVが追加されています
    image.png
  4. 下記のように設定値を入れる
  • 表示名:CSVファイル名
  • Directory:CSVファイルが格納されているフォルダパス
  • Separator:「,」カンマ区切りや「\t」タブ区切りなど
  • Charset:UTF-8やShiftJISなど文字コード
    image.png
  1. データに追加されている
    image.png

落とし穴

CSV読み込めたとおもったら、なんとすべて文字列になっていて、集計ができませんでした。。。色々調べてみたら、下記②の方法で解決しました。

試したこと①:データソース設定のAdvanced

下記、解決済みのIssueを見ると、AdvancedにColumnTypeを設定できることを見つけました。実際に、設定値に追加してみました。

&columnTypes=String,Date,Integer,Integer,String,String,Integer&dateFormat=yyyy-MM-dd-MM

結果はうまくいかず。。。結局文字列のままでした。

試したこと②:テーブルの詳細設定

Metabaseを触っていると「テーブルの設定」ができることがわかりました。(下記画像の本のマーク)
image.png
遷移後、「このテーブルのフィールド」を押すと、フィールドタイプを選択できましたので、それっぽいものを設定してみました。
image.png
すると、Created Atが日付になり、Page Views Countが数値になったので、日別PV数のグラフを作ることが可能になりました。
image.png

まとめ

元々MetabaseでCSVデータを参照したいと思ったきっかけは、DynamoDBのデータをCSVでダウンロードした後に、簡単に分析できないかなと思ったときでした。DynamoDBに入れているのに、SQLiteに入れ直すのもなーと思い、今使っているダッシュボードであるMetabaseに入れたいと思い、調べてみました。フィールドのところで詰まりましたが、なんとか読み込みに成功しました。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8