CROOZ TECH BLOG

~読んだらわかるSHOPLISTの裏側~

CROOZ TECH BLOGとはクルーズ株式会社の開発チームが技術について共有するブログです
開発の中での発見や知識を広めてオモシロカッコイイ〇〇をツクリます。

未経験エンジニアが社内の管理画面をMetabaseに移行してみた

こんにちは。新卒1年目のRYOBALです。

SHOPLISTでは社内のMDやプロモーション部、開発部などが使用している管理画面が存在するのですが、今回はその管理画面の一部をMetabaseというツールに移行する業務を行ったので、その内容について発信していきます。

これまでMetabaseを使ったことがある方、これから使う方、SHOPLISTでどんな業務をしているのか気になる方はお楽しみできる内容だと思います。

Metabaseってそもそも何?

f:id:croozblog:20220331213039p:plain

Metabaseとは、Metabaseプロジェクトによって開発されているオープンソースソフトウェアのデータ可視化ツールです。データ可視化ツールはダッシュボードソフトウェア・BIツールとも呼ばれています。Metabaseで可視化したデータを分析に役立てることができます。
また、Metabaseでは他のも下記のような豊富に、機能がありとても便利なツールです。

・グラフの種類が豊富
LDAPGoogleアカウントを利用した認証
・利用頻度の高い検索条件の登録機能
・Slackとの連携
・日本語対応

そもそもなぜ今回、管理画面の一部をMetabaseに移行することになったのか。

それはこれから新たに管理画面の改修が発生した場合、Metabaseに移行しておくと改修がしやすくなるからです。なぜ、改修しやすいのか説明していきます。

まず、現在のSHOPLISTの管理画面はPHPをメインに開発されています。

管理画面ではSQLを使って検索結果の表示やデータの登録、編集、更新などを管理画面上でボタン一つ押すだけで可能になっています。

例えば、新しく商品を追加したいときには必要な情報を入力して「商品登録ボタン」をクリックすると商品登録ができるような仕様になっています。

今回、管理画面からMetabaseに移行した画面はSQLでSELECTしてデータを取り出し、クエリの結果を画面に表示させている画面です。つまり、データの登録や更新作業がないので、Metabaseに移行ができる画面です。

Metabaseに移行しておくことで、今後画面の改修を行う際に、わざわざコードを修正することもなく、操作しやすいMetabaseで改修ができるというメリットがあるのです。

Metabaseへの移行が思ったより難しかった件

MetabaseではSQLを直接記載して結果を出力できるので、SQLさえ書くことができれば特別難しくなく操作ができます。

しかし、これが思ったより苦戦したんです。。

最初はSQLを記載するだけで集計結果がすぐに出て、棒グラフや円グラフなどビジュアライズも簡単にできたので、「これは便利すぎる!」と感動していたのですが、ある時、つまづいてしまいました。

具体的にはMetabaseならではの記載方法がある点につまづき苦戦しました。

MetabaseではMetabase独自のSQLの記載方法があります。

例えば、変数は{{}}を使って記載するなど普段、SQLに触れていても知らない内容が多数ありました。

もちろんわからないことはググればある程度出てくるのですが、Metabaseの文献は案外少なく、Metabaseのバージョンによってできることとできないこともあり、なかなか調べるのも大変でした。。

英語が分からないながらも海外の文献も調べてMetabaseについて毎日調べました。

学生の時にもう少し英語の勉強すればよかったと改めて感じた。。(笑)

そんなこんなで苦戦しながらもなんとか仕様を理解して、順調に管理画面をMetabaseに移行していましたが、そんな時にある問題が起きます。。

何度やっても集計結果が合わない

管理画面のSQLを特に変えることなく、Metabaseに移行しているのにも関わらず集計結果が合わないのです。

内容自体は同じなのに、集計結果が合わないなんて何が起こっているのかさっぱりわかりませんでした。(笑)

問題の原因はMetabaseの特有の記載である[]の使い方でした。[]で囲むと、囲まれた範囲内の変数が入力されたときのみ、その中の構文が評価されます。

例えば、WHERE [[and {{product_name}}]] という記載がある時にこれは変数product_nameの中に値があればWHERE句として構文が読み込まれます。

このルールを知っていれば、全く問題ではないのですが、このルールを知らずに長い時間苦戦してしました。

この問題が解決した時は嬉しくて涙が出るほどでした。。(笑)

社内の管理画面をMetabaseに移行してみて

今回社内の管理画面をMetabaseに移行してみて自分自身、これまでツールの移行作業は「すごく手間のかかる面倒な作業だ」と思っていましたが、実際にやってみると意外に自分でもできるし便利だと実感しました。

もちろん、途中で苦戦することもありましたが、それでもこれまで経験がない作業を経験できたことは良かったと思っています。

普段当たり前に使っているツールでも最初は誰かがツールの設定、初めての人でも使いやすいようにマニュアルを作成するなど、陰ながらの努力がされているのだと感じました。今後も社内では様々なツールが導入されていくと思うので、その際は進んで手をあげていこうと思います。

まとめ

今回は社内の管理画面をMetabaseに移行するといった内容についてお伝えしました。

世の中では日々便利なツールが誕生しています。

社内の生産性を上げる上では欠かせないツールもたくさん存在しています。そんなツールが出た際に、いち早くキャッチアップし、移行することで社内の生産性が上がると今回仕事を通して身にしみて感じました。

今後も業務を通して経験したことや役に立ったことを記事にして発信していくので楽しみにしてください。それでは、また次回のブログで。BYE☆