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

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