クラウドインテグレーション事業部 MSP開発セクションの ⼭⽥です。
東京配属⻁ノ⾨オフィス勤務では初めてのMSP開発セクションのメンバーとして内定をいただいてから1年が経過しました。早いものです。
※内定は2022年6⽉、⼊社は2022年10⽉1⽇

なお、私以外のメンバーは⼤阪所属ということもあって数ヶ⽉に1回の⼤阪出張がありますが、普段はリモートか⻁ノ⾨オフィスの勤務なので旅⾏気分で⼤阪に⾏ってます。
※とはいえ仕事

ちなみに⼊社してから半年も経過していないにも関わらず、以下のような公開事例に携わりました。

https://www.iret.co.jp/works/126.html

公開事例や弊社のパートナーのこともあって、最近は分析系の業務に携わることが多く、Lookerの検証が多いです。
また、私⾃⾝はGitHubをよく使うユーザーでもあるのでGitHubをLookerに連携できないか調べていたところできるとわかりました。

今回は社内でも⼈気のLookerにGitHubを連携した話を書きました。
なお、検証に利⽤したAWS環境およびLookerはMSP開発セクションで保有している検証環境です。GitHubについてはプライベートリポジトリでテストしています。

構成図

今回は運⽤分析PFにつながっているLookerにGitHubを連携してみました。
なお、LookerとAmazon Athenaの繋ぎ⽅は別の記事で紹介していますのでここでは割愛させていただきます。

LookerにGitHubを連携させるとどうなるの?

そもそもBIツールにGitHubを導⼊するというのはどういうことなのか、どういうメリットがあるのか説明します。端的に述べると以下の3点です。

  • BIツールで作成したダッシュボードやクエリをプロジェクト単位で管理できる
  • バージョン管理ができるので戻したい時に戻せる
  • BI環境に本番や検証、開発などの環境をプルリクエストベースで⼊れることができる

BIツールのようなものでは「過去のバージョンに戻して修正したい」ということや「いくつか作って⽐較検討したい」ということがあります。

そういったケースではプロジェクトを分けたり環境を分けたりなどする必要があり、管理するものが多くなる傾向にあります。

そこでGitHubを導⼊することによってブランチ単位でダッシュボードやクエリを管理できるようになり、プルリクエストベースの管理を導⼊できます。

GitHubでは何を管理するのか

LookML というLooker 独⾃のモデリング⾔語を管理します。
https://cloud.google.com/looker/docs/what-is-lookml

MLというと機械学習を思い浮かべてしまう⼈もいるとは存じますが、モデリング⾔語のことです。
LookMLを通してSQLを⽣成し、Lookerを実⾏します。

なお、LookMLが実⾏されるLookerのプロジェクトのことをLookMLプロジェクトと⾔います。

Lookerで管理されるプロジェクトの単位と考えれば良いでしょう。

LookerのプロジェクトをGitHubに連携する

実際にLookerのプロジェクトをGitHubで管理してみましょう。

まずはLookerにログインしてLookMLプロジェクトを開きます。
New LookeML プロジェクトをクリックします。

項⽬をいくつか設定します。

項⽬
Project Name looker-test
Starting Point Generate Model from Database Schema
Connection athenafromlooker
Build Views From All Tables
Schemas (何も⼊⼒しない)
Ignore Prefixes (何も⼊⼒しない)

今回は事前に作成しておいたLookerとAmazon Athenaのコネクション設定(athenafromlooker)を指定します。最後にCreate Project をクリックします。

右上にある Gitの構成 をクリックします。

あらかじめ⽤意しておいたリポジトリを指定します。

GitHubのユーザーIDとパーソナルアクセストークンを⼊⼒します。

pull Merge Other Changes をクリックします。

これでLookerをGitHubでインテグレーションできるようになりました。

⼩ネタ- LookerのプロジェクトにGitHubを連携した後、GitHub側のリポジトリを消してみる

GitHubでLookMLプロジェクトが連携できたと思いますが、ここでGitHubのリポジトリを削除したらどうなるのでしょうか。実際に連携した後のGitHubリポジトリを削除してみました。

Git 接続をテストする

GitHub のリポジトリを表⽰した際に404が返ってくることを確認します。

この状態でGit 接続をテストするとリモートでは失敗してしまいますが、Looker上ではリポジトリが機能しています。

Looker上でブランチを切ってみる

ブランチは切れますが、リモートリポジトリは存在しないので動かない。

削除したリポジトリと同じ名前のリポジトリを⼿動で再作成

削除したリポジトリと同じ名前で空のリポジトリを作成後、Git接続のテストしました。

接続テスト直後はステータスは変わりませんが、画⾯を更新すると復旧のステータスが⾒えました。

画⾯更新後は push Branch to Remote となります。
※Gitは分散型バージョン管理システムなのでコンセプト通りの機能かなと思われる

pushも正常に完了しました。

しかし、pushなのに何故かリモートブランチにしかないmainブランチを持ってきています。※内部ではpullもしている?

疑問は残りますが、リポジトリ連携は復旧しました。

まとめ

Looker とGitHubを連携することで分析に利⽤したLookMLプロジェクトにバージョン管理を導⼊することができました。

LookMLはLookerが⾃動で作成するものなので直接書くことはありませんが、変更履歴を追うことができるようになり、GitHubのエコシステムを利⽤してレビュー体制を組めるのは魅⼒的だと思いました。