Metabaseがいいぞって話

Metabaseがいいぞって話

はじめに

こんにちは。

今回は先日導入して感触が良かったMetabaseというツールについて書きたいと思います。

Metabaseはオープンソースのツールでデータの可視化や抽出ができるものです。

ダッシュボードを作成したり、権限管理もできたりします。

特に特徴的なのが、DBのデータのアクセスできる部分です。

例えばRedashというサービス(これもオープンソース)では、SQLを書くことはできますが、GUIで画面ぽちぽちしながらデータを抽出、可視化することができません。

では、GUIでデータの抽出・可視化ができるとどのようなユースケースがあるのか見ていきたいと思います。

Case1. 非技術者がデータへアクセスできるようになる

個人的に一番大きいメリットはここだと考えています。

SQLが書けない非技術者がデータにアクセスするためには、それ用のツールを別途使うか技術者に依頼をすることが必要となってきます。

データを抽出する時に大切なのはデータが正確であることだと考えます。間違ったデータや数字は混乱のもとであり、良い影響が一つも無いと思います。

技術者側に依頼をするというのはデータ構造を把握している開発者がデータの抽出を行うためデータの正確性という面では大きなアドバンテージがあると思います。

一方で、依頼が頻繁に行われると遅延に繋がってくると思います。

遅延は依頼から抽出されてたものが帰ってくる間の遅延と開発者の作業自体の遅延です。

また、技術サイドからすると簡単なものが非技術サイドからすると難しいと思われていたり、その逆のパターンもよくあることだと思います。

そのため、認識のギャップによってこのような遅延が発生してくると考えています。

では、非技術サイドがGUIでデータにアクセスできるようになるとどうでしょうか?

勿論、データ構造の理解はそれなりに必要となりますが、テーブル間のJOINやカラムの名称と役割については数回触ってみることである程度対応が可能だと思います。

サブクエリが頻出するような複雑な抽出条件ではない限りGUIのでポチポチしてデータが抽出できるようになるというのは大きな利点だと思います。
(依頼する側も心理的に頻度が多くなると依頼しにくくなるというのも緩和されると思います。)

また、Metabaseでは、権限管理が割としっかりしており、ネイティブクエリ(普通のSQL)が書けないようにする権限やDB単位、テーブル単位でGUIのアクセスを制限する権限制御ができます。
GUIのアクセスからはデータの参照のみであり、更新や追加、削除はできません。

Case2. 新しくJOINした技術者の理解がしやすい

開発を多くの場合チームで行うと思いますが、チームで行う以上新しいメンバーが入ってくることがあります。

新しくJOINしたメンバーはデータの構造を理解することが必要になってきます。

DBの構成は複雑になっていることが多く、またメンテナンスもしにくい場所でなのでついついそのまま放置されていることが多いと感じています。

そのため、複雑化したDBの構成を理解するのは困難な場合が多いと思います。

その理解のためにMetabaseが導入されていると比較的理解が進むのではないかと思います。

やはり、GUIでデータの構成が見えている点と既にダッシュボードなどで可視化されているものがサンプルとしてあると理解しやすいと思います。

環境構築を紹介

環境の構築も非常に簡単にできるので是非試してみる価値はあると思います。

簡単にご紹介しておきます。

※Metabaseはデータを抽出・可視化するツールのため実際にデータが必要になります。
↓にサポートされているデータベースのリンクを記載しておきます。
https://github.com/metabase/metabase/blob/master/docs/databases/connecting.md#connecting-to-supported-databases

Dockerで環境を構築するのが一番簡単にできると思いますので今回はその方法を記載しておきます。

1, DockerイメージをPullする

docker pull metabase/metabase:latest

2, Dockerコンテナを起動する(ポートは3000)

docker run -d -p 3000:3000 --name metabase metabase/metabase

3, http://localhost:3000/ にアクセスして起動確認する。

また、管理者権限を持っているとユーザーや権限の管理、データソースの追加等ができるようになります。

Google認証でのログインにも標準で対応しているため、GoogleWorkspaceを導入している企業であればPWの設定なしでログインができるようになるので便利です!!

さいごに

今回はMetabaseについてご紹介しました。

MetabaseはGitHub上でも頻繁に開発が行われているプロジェクトだと思います。

実際に起動してみると若干日本語がおかしい部分があったりしますが、これもまた愛嬌だと思います!

特にビジネス部門と開発部門の連携が多い小規模のチームにおいては強力なツールになると思います。

オープンソースのツールのため運用するサーバー料金のみで運用ができます(ローカルで試す分には勿論無料です。)
先ずは試してみるのが良いと思います。

では今回はこのへんで。