🔖
LookerのCIツールであるSpectaclesを導入した話
この記事はLooker Advent Caledar 2021 11日目の記事となります。
Spectaclesとは?
LookerのCIツールで、以下の3つを行うことができます。
- SQLのチェック
- Contents Validation
- データテスト
2,3はLookerのコンソール上からもできますが、Spectaclesを使うとPull Requestをトリガにしたり、定期的に実行することができます。また、LookerではできないSQLのチェックも行ってくれる、という点が導入に至った大きなポイントになります。
SQLチェック
チェック対象のExploreからすべてのdimensionを利用してSQLチェックを行っています。
以下のページにも記載されていますが、LIMIT 0, WHERE 1=2をつけているのでBQのスキャンのコストはかかりません
Spectacles導入前の開発フローと課題
Spectacles導入前の開発フローは以下のようになっていました。
Lookerのstagingインスタンスを契約していて、masterブランチにマージされるとstagingインスタンスへ、productionブランチにマージされるとproductionのインスタンスにLookMLがデプロイされます
課題として、Looker IDEはコミットのまとめができない、かつ、CLIでまとめたコミットをIDE上に取り込む(reset hardできない)のが簡単ではなく、masterへマージ後に再度LookMLのバリデーションとデータテストを実施していました。本来であれば、コミットをまとめた状態のLookMLをmasterにマージする前にバリデーションやデータテストができるとよいです。
Spectaclesの設定について
以下のようにSpectaclesを設定しています
- on Pull Request
- SQLチェック
- データテスト
- Daily
- Contents Validator
PRではgithub上で以下のようになり、passしないとマージできないようになっています。
Spectaclesを導入してみて
- コミットのたびにSpectacles上でデータテスト、SQLチェックを行ってくれるので手間が減った
- Contents Validatorも定期的に実行しエラーが発生した場合にSlackに通知できるのでよりタイムリーにエラーを検知できるようになった
- とはいえ、Lookerの標準機能として提供してくれてもいいのかなと思ったりもする
Discussion