One IT Thing

IT業界で飯を食う為の学習系雑記

PostgreSQL

BIツール「metabase」でサンプルDB「dvdrental」をグラフ化する

投稿日:2019年7月30日 更新日:

「売り上げやユーザ増加傾向をDBから抽出して上役に報告したりチームで共有したい」

こういった時、SQL結果をExcelでグラフ化、とかしていませんか?

SQLを流して結果をコピーしてExcelに張り付けて・・・結構面倒で骨が折れます。そんな時はBIツールを使えばワンストップでDB内容をグラフ化出来て効率化出来ます。

無料のBIツールとして「Re:dash」がメジャーですが、インストールが手間で導入で詰まる方も結構居らっしゃるんじゃないかな、と思います。

その点今回のテーマのmetabaseは実行するPCにJavaさえ入っていれば一瞬で導入することが出来ます。インストールして動作確認していきましょう。

実行環境

  • Windows 10
  • Java 8
  • サンプルDB「dvdrental」が入ったPostgreSQL

postgresqlにdvdrentalを入れる手順は以下の記事を参照してください。

dvdrentalやpostgresqlがなくても、metabaseが内包するh2データベースにsampleデータベースが入っているのでそれを使って検証することも出来ます。

インストール手順

metabase.jarをダウンロード

metabase公式サイトからmetabase.jarをダウンロードしてきます。

Webアプリを起動

ダウンロードしたjarを実行するとhttp://localhost:3000でWebアプリが起動します。

java -jar metabase.jar

接続先DBをセットアップ

http://localhost:3000にアクセス、セットアップを行います。

名前やメールアドレスを適当に設定した後、分析するデータの入ったDBを設定します。今回はPostgreSQLを選択。

PostgreSQLに接続する為の情報を入力。

Googleアナリティクスで情報収集されるそうなので、それが嫌な場合はオフにしておきましょう。

セットアップ終了です。Re:dashのインストールと比べると手軽過ぎ。

動かしてみる

初期画面はこんな感じ。dvdrentalのテーブルが表示されていてクリックすると様々なデフォルト分析結果を見せてくれるのでポチポチしてみましょう。

グラフ化してみる

「照会する」→「ネイティブクエリ」を選択。

dvdrentalでは既に集計ビュー「sales_by_store」が作られているのでこれをグラフ化してみます。

select * from sales_by_store;

を実行してビジュアライゼーションを棒グラフに設定。
細かい設定は「棒」の右のアイコンで設定ができます。

うーん、集計されすぎていて可視化するにはちょっと寂しいですね。

レンタル数の時間単位集計をしてみる

2005/05/23~25日の三日間で、時間帯毎のレンタル数を集計してみます。

SELECT
    DATE_TRUNC('hour',rental_date) AS rental_date_hour,
    COUNT(*) AS レンタル数
FROM
    rental
WHERE
    rental_date BETWEEN '2005-05-23 00:00:00' AND '2005-05-26 00:00:00'
GROUP BY
    rental_date_hour
ORDER BY
    rental_date_hour;

良くレンタルされている時間帯を可視化出来ました。マウスカーソルを合わせると詳細も見れます。

同じSQL結果を円グラフにしてみます。何も処理を書いていないのにパーセンテージも出してくれます。

グラフの種類は他にも沢山用意されています。好きな分析方法で見える化してみてください。

metabaseはコストパフォーマンス高い

インストール、設定が簡単、グラフ化もSQLを考えれば融通が利きます。

ある程度成長しているデータベースを運用していて、かつ可視化をしていないなら、metabaseは最初のBIツールとして打ってつけかも知れません。

本番でもがっつり使って行く場合は、内包DBをh2からPostgreSQLやMySQLにしておけば運用もし易いです。

有料のBIツールだとウン千万するものもあります。販売営業に騙されず、良し悪しを比較出来るように、まずはこういった無料オープンソースを試してみることをお勧めします。

-PostgreSQL
-,

執筆者:

関連記事

ERROR: Several keys given – pgcrypto does not handle keyring、またはERROR: Corrupt ascii-armor

gpgキーストアに同じUIDで複数の鍵ペアを登録してしまうと、ファイルにexportした際に1ファイルに複数の鍵情報が入ってしまい、1ファイル1鍵を期待しているpgcryptoに怒られます。 目次1 …

pgcryptoの有効化と共通鍵暗号の動作確認

PostgreSQLで「pgcrypto」拡張機能を有効にすると、PostgreSQLに保存するデータを暗号化出来るようになります。 INSERTする際、共通鍵暗号はpgp_sym_encrypt関数 …

開発用PostgreSQLをCentOSにインストールしてSQLを流すまで

開発や勉強に使う為のPostgreSQLをCentOSにインストールします。 インストールから基本操作を体験して、0からデータベースを構築する経験を積んでおきます。 目次1 環境2 インストール手順を …

無料で自由に使える日本全国の企業データベースをPostgreSQLで作る

開発するシステムよっては一覧から企業を選択する機能があるかも知れません。「企業データベース」でググると沢山の商用企業データベースが出てきます。 「でも・・・お高いんでしょう?」 はい。下手をすると家が …

「Jailer Database Tool」でDB関連作業を効率化

開発時のデータベースクライアントは何を使っていますか?A5? 「Jailer Database Tool」を使っていないなら、普段使いツールに加えるとちょっとデータベースの見え方が変わるかも知れません …

 

shingo.nakanishi
 

東京在勤、職歴20年越え中年ITエンジニアです。まだ開発現場で頑張っています。

19歳(1996年)から書き始めた個人日記が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。

私と同じく、今後IT業界で生計を立てて行きたいと考えている方や、技術共有したいけどフリーランスで孤独、といった方と一緒に成長、知識共有して行けたら楽しいな、と思っています。