継続的インテグレーション(CI)SQL バリデータは、Explore のディメンションがデータベースに対して正しく実行されることを検証します。これを行うために、SQL バリデータは LookML プロジェクトの Explore に対して一連のクエリを実行します。
デフォルトでは、SQL バリデータは次のタスクを実行します。
- プロジェクト内の各 Explore に対して、SQL バリデータは Explore 内のすべてのディメンションを含む Explore クエリを実行します。
- Looker が Explore クエリのエラーを返した場合、SQL バリデータは Explore 内の各ディメンションに対して個別の Explore クエリを実行します。
SQL バリデータがすべての Explore のすべてのディメンションをテストしないようにするには、必要に応じて次のいずれかを行います。
- 特定の Explore のみをクエリするように SQL バリデータを構成します。
- 特定の Explore を除外するように SQL バリデータを構成します。
- SQL バリデータを構成して、で定義された LookML ディメンションを無視します
hidden: yes。 - ディメンションの LookML に
ci: ignoreコメントまたはタグ を追加して、SQL バリデータが Explore クエリにディメンションを含めないようにします。
CI スイートを作成または編集するときに構成できるオプションの詳細については、このページのSQL バリデータ オプションのセクションを参照してください。SQL バリデータの実行については、継続的インテグレーション スイートを実行するのドキュメント ページをご覧ください。
実行結果ページで、SQL バリデータは各 SQL エラーをディメンションと Explore ごとに分類し、問題のある LookML へのリンクとデバッグ用のここから Explore リンクを表示します。

リソースの使用量
SQL バリデータは、Looker 内とデータ ウェアハウス内で使用するリソースを最小限に抑えるように設計されています。すべての SQL バリデータ クエリには、LIMIT 0 句と WHERE 1=2 句が含まれています。これらの句は、データ ウェアハウスのクエリ プランナーにデータを処理しないように指示し、SQL の有効性をチェックします。
たとえば、BigQuery では、このタイプのクエリは BigQuery でドライラン クエリを実行するのと似ています。BigQuery の場合、LIMIT 0 クエリはデータをスキャンしないため、SQL バリデータが実行するクエリに対して課金されることはありません。
SQL 検証からディメンションを除外する
パラメータに依存するディメンションなど、特定のディメンションを SQL 検証から除外することがあります。これは、検証中にパラメータの値が null になり、常に SQL エラーが発生するためです。
sql パラメータがないディメンションなど、type: distance、type: location、type: duration などのディメンションを除外することもできます。
SQL 検証からディメンションを除外するには、次のいずれかの方法でディメンションの LookML を変更します。
次の例に示すように、ディメンションの LookML 定義の
tagsパラメータにci: ignoreステートメントを追加します。dimension: addresses { sql: ${TABLE}.addresses ;; tags: ["ci: ignore"] }次の例に示すように、ディメンションの LookML の
sqlフィールドにコメント-- ci: ignoreを追加します。dimension: addresses { sql: -- ci: ignore ${TABLE}.addresses ;; }
SQL バリデータ オプション
継続的インテグレーション スイートを作成または編集するときに、SQL バリデータの実行方法を構成するいくつかのオプションを指定できます。オプションについては、このページの次のセクションで説明します。
クエリを実行する Explore
デフォルトでは、SQL バリデータは LookML プロジェクト内のすべてのモデルと Explore に対して SQL 検証を実行します。
[クエリを実行する Explore] フィールドを使用して、SQL 検証に含める Explore とモデルを指定できます。
Explore は model_name/explore_name の形式で指定できます。
次の点にご注意ください。
model_nameには、.model.lkml拡張子なしのモデル ファイルの名前を使用します。たとえば、thelook.model.lkmlで定義されたモデルを指定するには、thelookと入力します。explore_nameには、exploreLookML パラメータのexplore_nameを使用します。たとえば、LookML プロジェクトでexplore: usersとして定義された Explore を指定するには、usersと入力します。- カンマ区切りのリストを作成して、複数の Explore を指定できます。
model_nameまたはexplore_nameで*ワイルドカードを使用できます。
次に例を示します。
ファイル
thelook.model.lkmlでexplore: usersで定義されている Users Explore のみ指定するには、次のように入力します。thelook/usersthelook.model.lkmlファイルでusersとordersという名前の Explore を指定するには、次のように入力します。thelook/users, thelook/ordersthelook.model.lkmlのすべての Explore を指定するには、次のように入力します。thelook/*プロジェクト内のすべてのモデルで
usersという名前のすべての Explore を指定するには、次のように入力します。*/users
除外する Explore
デフォルトでは、SQL バリデータは LookML プロジェクト内のすべてのモデルと Explore に対して SQL 検証を実行します。
[除外する Explore] フィールドを使用して、SQL 検証から除外する Explore とモデルを指定できます。
Explore は model_name/explore_name の形式で指定できます。
SQL バリデータの Explore を指定する方法について詳しくは、クエリを実行する Explore のセクションをご覧ください。
フェイル ファスト
デフォルトでは、SQL バリデータはクエリ内のすべてのディメンションを含む Explore ごとに 1 つのクエリを実行します。その Explore クエリが失敗した場合、SQL バリデータは Explore 内の各ディメンションに対して個別に Explore クエリを実行します。
検証を高速化するには、[フェイル ファスト] オプションを有効にします。これにより、SQL バリデータは Explore の最初のクエリ(すべてのディメンションを一度に含むクエリ)のみを実行します。そのクエリがエラーを返すと、SQL バリデータは CI 実行結果にそのエラーを表示し、検証する次の Explore に進みます。
[フェイル ファスト] を有効にすると、通常は検証が早く完了します。ただし、複数のディメンションにエラーがある場合でも、SQL バリデータの結果には各 Explore の最初のエラーのみが表示されます。つまり、最初のエラーを修正した後、SQL バリデータの次の実行で追加のエラーが表示される可能性があります。
非表示を無視する
SQL バリデータで、Looker デベロッパーが hidden: yes で定義した LookML ディメンションを無視する場合は、[非表示を無視する] フィールドを有効にします。SQL バリデータは、検証中にこれらのディメンションを Explore クエリから除外します。
クエリの同時実行数
デフォルトでは、SQL バリデータは Looker インスタンスに負荷をかけないように、一度に 10 個以下のクエリを実行します。[クエリの同時実行数] フィールドを使用して、SQL バリデータが同時に実行できるクエリの最大数を指定できます。
[**クエリの同時実行数**] フィールドの最大値は、データベース接続の [この接続に関する同時実行クエリの最大数]設定に制限されます。
SQL 検証の実行中に Looker インスタンスの速度が低下した場合は、この値を小さくします。
また、[**フェイル ファスト**] オプションを有効にして、SQL 検証を Explore ごとに 1 つのクエリに制限することもできます。増分検証
増分検証は、特定の開発ブランチに固有のエラー(本番環境にまだ存在しないエラー)を見つける方法です。増分検証により、デベロッパーはプロジェクト内の既存のエラーに気を取られることなく、担当するエラーを見つけて修正できます。また、特に多くの Explore を含む LookML プロジェクトの場合、検証を高速化できます。
増分検証の場合、SQL バリデータは、開発バージョン(ベース参照)と本番環境バージョン(ターゲット参照)の間で変更された Explore クエリのみを実行します。本番環境バージョン自体にエラーがある場合でも、SQL バリデータは開発バージョンに固有のエラーのみを返します。
検証ツールの結果で、SQL バリデータは、検証対象のブランチまたはコミットでコンパイルされた SQL に変更がなかったためスキップされた各 Explore を示します。増分検証の結果の例については、増分検証の結果を表示するをご覧ください。
継続的インテグレーション スイートを作成または編集するときに、[SQL バリデータ] セクションで [増分エラーのみ] チェックボックスをオンにすると、SQL バリデータの増分検証を有効にできます。
増分検証では、次の点に注意してください。
- (本番環境ブランチでの手動実行などで)SQL バリデータが本番環境ブランチ自体を検証する場合、増分検証の設定は適用されません。本番環境ブランチを検証するときは、SQL バリデータが完全な検証を実行します。
- 増分検証の実行では、プロジェクトの開発ブランチに固有の増分エラーを公開するには個々のディメンション クエリが必要となるため、**フェイル ファスト** モードはサポートされていません。