![[Looker 25.10新機能]LookerネイティブのCI機能である「Looker Continuous Integration」を試してみた](https://images.ctfassets.net/ct0aopd36mqt/wp-refcat-img-3c76666f3f51fe20a967546e63cb88da/9adf388781f654b7988aaf8d205cef1f/looker-logo-google_1200x630.png)
[Looker 25.10新機能]LookerネイティブのCI機能である「Looker Continuous Integration」を試してみた
さがらです。
2025年6月にLooker 25.10がリリースされ、その1つの機能として「Looker Continuous Integration」があります。(2025/7/7時点ではBeta機能として提供されています。)
この機能を試してみたので、本記事でその内容をまとめてみます。
Looker Continuous Integration
Looker Continuous Integrationですが、その名の通りLookerで利用することができるネイティブのCI機能となります。
以下4種類のバリデータから構成されており、LookMLを管理するリポジトリにプルリクエストが送信された際にこれらのバリデータを実施することが可能です。
- SQL Validator
- プロジェクト内の各Exploreに対して、Explore内のすべてのディメンションを含む Exploreクエリを実行して、エラーが無いかを確認
- Assert Validator
- testパラメータで定義できるデータテストを実行して、エラーが無いかを確認
- Content Validator
- エラーのあるダッシュボードとLookを特定してくれる機能
- LookML Validator
- LookMLの構文エラーがないかを確認してくれる機能(Looker IDEでの開発では自動でバリデーションを行ってくれるため、VS Codeなど外部ツールを用いて開発を行った場合のバリデーションを想定)
これは参考情報ですが、今回リリースされたLooker Continuous Integrationは「Spectacles」というLookerの自動テストツールがベースとなっております。LookerがSpectaclesを買収したため、Spectaclesの機能がLookerに組み込まれる形となっています。
※Spectaclesについては一度弊社でも過去にブログにした実績があります。
事前準備
CI機能を利用するための準備がありますので、順番に行っていきます。
機能の有効化
Admin
のPlatform
内に、Continuous Integration
という項目が追加されています。
このメニューを開いて、Enable Continuous Integration
のトグルを有効化します。
また下記のように、現在はCI実行時にデータがUSリージョンに保持される仕様となっています。この仕様が受け入れられない場合は、本機能を有効化しないでください。
Don't enable Continuous Integration on a Looker instance that requires your data to reside in one specific location. Continuous Integration currently stores certain data in the United States.
CI用のユーザーの追加
CI処理を行うための、ユーザーを追加します。(CIを実行するユーザーのAPI KeysのClient IDとClient Secretが必要となります。必要に応じて、新規のCI用のユーザーの作成も検討ください。)
同じくAdmin
のPlatform
内にContinuous Integration
でトグルを有効化すると、Continuous Integration users
という項目が表示されますので、Add user
を押します。
すると下図のように、Client IDとClient Secretを求められるため、別途使用するユーザーの画面で確認したClient IDとClient Secretを入れて、Test connection
を行ったあと、Add user
を押します。
GitHubとの連携
CI機能はGitHubと連携設定を行うことで、プルリクエスト発行時に自動でCIの処理を動かすことが可能です。
同じくAdmin
のPlatform
内にContinuous Integration
の項目で、Integrations
という欄がありますので、Connect to GitHub
を押します。
どのユーザーで認証してLooker Continuous Integrationを有効化するのかを選択します。
どのリポジトリを対象とするのか選択して、Install
を押します。
この後、Lookerの画面に戻り下図のように表示されたら連携完了です!
※以下は参考までなのですが、私は7/7に試したときはうまくいかず、7/8に試したらうまくいったという謎の現象が起きました。下図はうまくいかなかったときの画像です。
試してみた
ということで実際に、Looker Continuous Integrationを試してみます!
やること
まず、Content ValidatorのCI機能を設定します。
その上で、以下のようなダッシュボードがあるとして、このダッシュボードで使っているMost Recent Order Month
を削除してプルリクエストを発行した時に、どのような挙動となるかを確かめてみます。
Content ValidatorのCIをSuiteとして設定
LookMLプロジェクトをDevelopmentモードで開き、左のメニューからContinuous Integration
を押します。
Suites
を押して、Create suite
を押します。
任意の名前をSuite Details
に入れて、Trigger on pull requests from Looker
とContent Validator
のトグルを有効化します。その後、右下のCreate suite
を押します。
Suiteの作成が完了すると、下図のように表示されます。
挙動確認(エラーありver)
Most Recent Order Month
に該当するdimensionを削除して、プルリクエストを発行してみます。
プルリクエストを作成すると、事前準備で入れたLookerのアプリが動作します。これをクリックすると、Lookerの画面にリンクします。
Lookerの画面に戻り1分ほど経過後にCIの処理が終わると、下図のように表示されます。ちゃんと影響のあるダッシュボードが表示されました!このCI機能があれば、プルリクエストのマージ前にダッシュボードを壊すリスクを回避することが出来ますね。
挙動確認(エラーなしver)
もう一つおまけで、何もエラーがない場合の挙動も確認してみます。
先程は対象のdimensionをコメントアウトしていましたが、このコメントアウトをなくして挙動を確認してみます。
プルリクエスト発行後にLookerで詳細を確認すると、無事にエラーがなくCI処理が完了していました!
最後に
2025年6月にリリースされたLooker 25.10の新機能、「Looker Continuous Integration」を試してみました。
今回試したContent Validatorはもちろん、適切に設定すれば本番環境のダッシュボードを壊す前に回避できるのがとてもありがたい機能だと感じました!