Editing and validating LookML(LookMLの編集と検証)

IDE の使用

Looker の統合開発環境(IDE)には、LookML の作成に役立つ複数の機能があります。

自動候補

入力を開始すると、入力内容に応じた有効なパラメータと値が IDE によって提案されます。たとえば、ディメンションの type パラメータの候補には、そのパラメータに対する有効なオプションのみが含まれます。また、sql パラメータのフィールドは ${...} でマークする必要があるため、IDE はフィールドを提案する際にその構文を追加します。

自動提案は、表示できる場所に自動的に表示されます。自動提案の画面を閉じるには、キーボードの Esc キーを押します。任意の時点を表示するには、Ctrl+Space(Windows)または Ctrl-Space(Mac)を押します。

アドホック エラーチェック

IDE は、入力中に構文エラーを検出します。行番号の横にある赤い X は、構文エラーを示し、エラー箇所は赤色の下線で示されます。赤い X にカーソルを合わせると、問題の簡単な説明が表示されます。たとえば、measure の type パラメータの値に、誤って average ではなく avrage を入力した場合、IDE はエラー Invalid value for "type":avrage を表示します。

完全なモデル検証を行うには、LookML バリデータが引き続き必要です。結合の欠落による無効なフィールド参照などの一部のエラーは、モデルの全体像の確認を必要とし、LookML バリデータが実行されているときにのみ表示されます。

クイックヘルプ パネル

[クイックヘルプ] アイコンを選択すると、[クイックヘルプ] パネルが開きます。パネルには、コード内の現在の場所の説明とオプションが表示されます。サイドバーのパラメータ名を選択して、対象パラメータの Looker ドキュメント ページを開きます。

自動フォーマット

開発モードでは、書式設定ファイルのキーボード ショートカットを使用して、LookML ファイルを自動的にインデントできます。インデントはパラメータとサブパラメータの階層を示すため、LookML を読んで理解することが容易になります。

折り畳み式

ファイル内の最上位の LookML パラメータの先頭の横にあるガターに小さな矢印が表示されます。この矢印を選択すると、LookML の対象のセクションが折りたたみ / 展開され、特定のセクションのみにフォーカスできます。

LookML ファイルの [See file actions] メニューには、すべての LookML セクションを展開する、または現在のファイル内の最上位のパラメータに折りたたむための [Fold LookML] と [Unfold LookML] オプションもあります。

キーボード ショートカットを使用して LookML の折りたたみと展開を行うこともできます。

追加、変更、削除をマークする

LookML IDE では、開発モードで commit されていない変更がある場合、いくつかのインジケーターが常に表示されます。

  • ファイル名がウィンドウの左側に青い点を付した状態で表示されます。これは、ファイルが新規作成、変更された、または名前を変更されたことを示しています。
  • 新しいファイルまたは変更されたファイルを開くと、ファイル内の行番号が緑色でハイライト表示されて、新しい行または変更された行が表示されます。赤い水平線は削除された行を示します。

コメントを追加する

LookML には、コメントを追加して読みやすくできます。1 つのコメントを追加するには、# 文字を使用します。

dimension: name {
  sql: ${TABLE}.name ;; # This is the customer's full name
}

キーボード ショートカットを使用して、コードのブロック全体をコメントアウトできます。

  1. コメントアウトする行を選択します。
  2. Mac の場合は ⌘ + / キー、Windows パソコンの場合は Ctrl + / キーを押します。

IDE により、選択した各行に # 文字が追加されます。

SQL ブロックのコメントアウト

完全に SQL コードブロック内に収まっている行をコメントアウトする場合は、手動で SQL コメント表記を追加します。

SQL コメント ブロックを使用する場合は、コメントアウトされたセクションも LookML コードとして解釈されます。そのため、コメントは LookML で生成された SQL 内に表示されますが、コメントはクエリ結果に影響しません。

オブジェクトまたはファイルにジャンプ

Looker IDE では、オブジェクトまたはファイルにジャンプ機能を使用して、LookML オブジェクトまたはプロジェクト ファイルに直接移動できます。ファイル ブラウザまたはオブジェクト ブラウザからオブジェクトまたはファイルにジャンプ アイコンをクリックするか、キーボード ショートカット Command-J(Mac)または Ctrl+J(Windows)を使用します。

詳細については、LookML プロジェクト ファイルへのアクセスに関するドキュメント ページをご覧ください。

プロジェクト内のテキストの検索と置換

Looker IDE には検索と置換の機能があるため、すべてのプロジェクト ファイルを対象にテキストの検索と、一括オペレーションですべてのインスタンスまたは選択したインスタンスを置き換えることができます。

Looker IDE の検索機能を使用するには:

  1. IDE の検索パネルに移動します。
  2. [検索] フィールドにキーワードを入力します。
  3. 必要に応じて、[大文字と小文字を区別] を選択して、大文字と小文字の表記が [検索] フィールドに入力した内容と一致するインスタンスのみを検索できます。または、[正規表現] を選択して、正規表現検索を実行することもできます。
  4. [検索] をクリックします。
  5. 必要に応じて、ファイル名を選択して IDE でファイルを開くことができます。

開発モードの場合は、[置換] フィールドも表示されます。プロジェクト内のテキストを置換するには:

  1. [置換先] フィールドに置換テキストを入力します。[検索] フィールドのテキストを置き換えるのではなく削除する場合は、[置換] フィールドを必要に応じて空白にします。

  2. [選択と置換] を選択して、プロジェクトでテキストがどのように置換されるかをプレビューします。

  3. 結果には、プロジェクト内の全インスタンスが置換に向けてハイライト表示されます。次のオプションを使用して、どのインスタンスを置換するかをカスタマイズできます。

    • 結果の概要の横にあるチェックボックスを使用して、プロジェクト全体ですべてのインスタンスを選択または選択解除します。
    • 単一インスタンスの横にあるチェックボックスを使用して、インスタンスを選択または選択解除します。
  4. [選択したものを置換] ボタンを選択して、選択したインスタンスに置換を適用します。IDE により、変更された内容が表示されます。

新しいフィールドの作成とテスト

LookML の編集例として、いくつかのフィールドを追加し、それらをテストします。

ディメンションの作成

最初に、新しいディメンションが users ビューに追加され、ユーザーがカリフォルニアまたはニューヨークのどちらからのユーザーかが判別されます。ディメンションは type: yesno です。つまり、ユーザーがカリフォルニアまたはニューヨークにいる場合は [Yes] を返し、それ以外の場合は [No] を返します。

新しいディメンションの LookML は次のようになります。

dimension: from_ca_or_ny {
  type: yesno
  sql: ${TABLE}.state = "California" OR ${TABLE}.state = "New York" ;;
}

このディメンションを user ビューファイルに追加して、ファイルの [変更を保存] ボタンをクリックします。

${TABLE}.state の詳細については、置換演算子をご覧ください。

measure の作成

次に、ユーザーの平均年齢を表す新しい measure を user ビューに追加します。このメジャーは、type: average であり列 age で集計されます。

この新しい measure の LookML は次のようになります。

measure: average_age {
  type: average
  sql: ${TABLE}.age ;;
}

この measure を user ビューファイルに追加して、ファイルの [変更を保存] ボタンをクリックします。

Explore のフィールドのテスト

新しいディメンションと measure は、それらをクエリすることでテストできます。変更を保存すると、これらのフィールドが Explore のフィールド ピッカーに表示されます。ビューのファイル名の横にある [See file actions] プルダウン メニューを使用すると、現在のビューの Explore に簡単にアクセスできます。[See file actions] プルダウン メニューには、ビューが結合されている Explore など、ビューに基づく Explore が一覧表示されます。たとえば、users というビューの Explore にアクセスするには、[See file actions] プルダウン メニューから [Explore Users] オプションを選択します。

[Users] の Explore で、新しいフィールドを選択してクエリに追加できます。たとえば、新しいフィールドで、カリフォルニアまたはニューヨークのユーザーの平均年齢と、それ以外のユーザーの平均年齢の両方を示すクエリを作成できます。

「CA または NY のユーザー」(はい / いいえ)と「ユーザーの平均年齢」フィールドが選択されたサンプルの Users Explore のデータテーブル。

LookML を検証する

更新が完了したら、変更を保存できます。IDE は、単一のファイル内の未解決の構文エラーについて警告します。

次に、LookML バリデータを使用して、完全なモデル検証を行います。結合の欠落による無効なフィールド参照などの一部のエラーは、モデルの全体像の確認を必要とし、LookML バリデータが実行されているときにのみ表示されます。変更後の LookML を本番環境に公開する前に、必ず LookML を検証する必要があります。検証であらゆる問題(データベース権限の問題など)が見つかるわけではありませんが、大半のエラーは防ぐことができます。

LookML バリデータは、前回の LookML 検証以降に更新された LookML ファイル、または更新の影響を受けるファイルのみをスキャンします。

  • モデルレベルの設定が変更された場合は、すべての項目が再度検証されます。
  • ビューが変更されると、変更されたビューが使用されている Explore のみが再度検証されます。
  • Explore が変更された場合は、変更された Explore のみが再検証されます。

検証の実行

LookML バリデータを実行するには、Looker IDE の右上にある [LookML の検証] ボタンを選択します。または、IDE の上部にある [プロジェクトの健全性] アイコンを選択して [プロジェクトの健全性] パネルを開き、[LookML の検証] ボタンを選択します。

LookML バリデータを実行すると、対処が必要なエラーやその他の警告のリストが表示される場合があります。矢印を選択すると、エラーまたは警告のリストが開きます。

別の変更を行って保存すると、[プロジェクトの健全性] パネルのバリデータ ボタンが再び使用できるようになります。

確認メッセージ

Looker は、LookML で検証を実行した後、確認メッセージを表示します。

LookMLエラーは見つかりませんでした

バリデータで問題が検出されない場合、Looker では「LookML エラーは見つかりませんでした」というテキストとともに緑色のチェックマークが表示されます。

LookMLのエラー

LookML のエラーは、クエリの実行を妨げている可能性がある問題です。かっこ内の数字は、検出されたエラーの数です(次の例では 9)。

LookML Errors(9)というテキストを含む検証メッセージの例。

展開された問題のリストには、検証に合格しなかった理由が表示されます。多くの場合、エラーをクリックすると、問題のコード行に直接移動します。行の横には赤い「X」が表示されます。カーソルを合わせると、さらに詳細なエラー情報が表示される場合があります。

値が指定されていないタイプ パラメータの定義にカーソルを合わせると表示されるエラーの例。エラーテキストには、type に値を指定する必要があることを示しています。

チャットチームに関するヒント: 最も頻繁にお問い合わせいただく検証エラーは「不明またはアクセス不可のフィールド」です。原因と対処方法については、エラー: 不明またはアクセス不可のフィールドのベスト プラクティスのページをご覧ください。

LookMLの警告

LookML の警告はクエリの実行を妨げない場合もありますが、ユーザーが利用する機能が破損している、または意図しない状態になる可能性があります。エラーの場合と同様に、かっこ内の数字は、検出された警告の数です(次の例では 3 つの警告)。

LookML 警告(3)というテキストを含む検証メッセージの例。

LookML エラーと同様に、[プロジェクトの健全性] パネルで警告を選択し、赤色の X アイコンにカーソルを合わせると、警告を展開してエラーコードに移動し詳細情報を表示できます。

Explore がビュー名と一致する必要がある、または Explore が from または view_name プロパティを持つ必要があるというテキストを含む警告の例。

変更をデプロイする

変更が正しく機能することを確認したら、Looker の Git 統合を使用して、変更を commit して本番環境にデプロイすることができます。