新しい LookML - YAML LookML プロジェクトを変換する方法

Looker 4.0 で導入された新しい LookML 構文は、使い慣れたうえに簡単な構文と、高機能かつ有用な IDEにより、オリジナルの YAML スタイルの LookML をベースに改善されており、LookML の開発が容易になります。 Looker 4.4 以降では、新しい LookML プロジェクトをすべて新しい LookML で作成する必要があります。ただし、変換前に作成された一部のプロジェクトは、YAML(古い)LookML でモデル化される場合があります。

Looker では、YAML LookML プロジェクトを新しい LookML に自動的に変換する方法が提供されます。このページでは、そのプロセスの実行方法について説明します。各 LookML プロジェクトは個別に変換する必要があり、デベロッパーは準備と調整を行う必要があるため、プロジェクトを変換する前にこのページをよくお読みください。

変換の準備

YAML LookML プロジェクトを新しい LookML に変換するタスクは、1 人の LookML デベロッパーのみが実行する必要があります。変換は、そのデベロッパーの Development Mode で行われ、その後、通常の LookML の変更と同様に、変更が commit されてデプロイされます。

とはいえ、このプロセスではすべての LookML デベロッパーの協力が必要になります。 変換は本質的に LookML のすべての行に影響を及ぼすため、変換プロセスを開始する前に、他の LookML デベロッパーがすべての変更をプロジェクトに commit してデプロイすることが重要です。そうしないと、Git のマージが競合してしまいます。

変換プロセスは自動化されていますが、新しい LookML は、YAML LookML よりもエラーチェックをより詳細に処理しています。つまり、変換後に、以前は表面化しなかったエラーが表面化する可能性があります。これらのエラーを解決することで、プロジェクトの品質が向上します。エラーの数はプロジェクトごとに異なります。つまり、エラーの修正には数分から数時間ほどかかることがあります。いずれにしても、エラーが修正されるまで、すべての LookML デベロッパーはプロジェクトの開発を一時停止する必要があります。

Looker インスタンスで YAML プロジェクトを見つける

Looker インスタンスの YAML プロジェクトを表示するには:

  1. [開発] メニューから、[LookML プロジェクトの管理] または [プロジェクト] オプションを選択します(このオプションは、[開発] メニューにアクセスする場所によって若干異なります)。
  2. [LookML プロジェクト] ページで、プロジェクトのテーブル行にある YAML LookML ラベルを探します。

    ヒント: テーブル内のプロジェクト名を選択すると、プロジェクトの LookML に移動できます。

変換前にデベロッパーと調整する

新しい LookML への変換を準備するには:

  1. 変換プロセスを実行する 1 人の LookML デベロッパーを選択します。
  2. LookML バリデータを実行して、プロジェクトにエラーがないことを確認します。すべてのエラーを修正してから、変更を commit してデプロイしてから次の手順に進みます。
  3. 変換を行う時間を指定します。
  4. 他のすべての LookML デベロッパーに対し、進行中の変更を指定した時間までに commit してデプロイする必要があることを通知します。つまり、プロジェクトの Development Mode のコピーはすべて、本番環境については Git の状態が最新になっている必要があります。
  5. 変換が完了するまで、変更、commit、変更は行わないように、他の LookML デベロッパーに伝えます。

新しいLookMLに変換

新しい LookML に変換するには、コンバータを実行します。

  1. Development Mode に入ります。
  2. 変換するプロジェクトを開きます。
  3. 左上の Git ステータスが本番環境で [最新] になっていることを確認します。
  4. LookML バリデーターを実行して、プロジェクトにエラーがないことを確認します。結果は [LookML の問題なし] になります。(LookML バリデータを実行するには、Looker IDE の右上にある [LookML の検証] ボタンを選択します。または、IDE の上部にある [プロジェクトの健全性] アイコンを選択して [プロジェクトの健全性] パネルを開き、[LookML の検証] を選択します)。
  5. プロジェクトを YAML LookML から新しい LookML に変換するには:

    1. Looker IDE のナビゲーション サイドバーから [Git アクション] アイコンを選択します。
      • または、IDE の上部から [プロジェクトの健全性] アイコンを選択します。

    2. [ Git アクション] パネルまたは [プロジェクトの健全性] パネルの下部で [プロジェクトを新しい LookML に変換] オプションを選択します。
    3. 確認ダイアログで、[新しい LookML に変換] ボタンを選択します。

新しい LookML を検証する

コンバータの実行が完了すると、IDE がファイルごとに、ファイル名の横にドットを付けて、ファイルが変更されたことを示します。

新しい LookML を検証するには:

  1. [LookML を検証] ボタンを選択して、LookML バリデータを実行します。 エラーがなければ、このページの新しい LookML を commit してデプロイするセクションまでスキップできます。
  2. 以前は何もなかったのにエラーが表示されることがあります。前述のように、新しい LookML は、YAML LookML よりもエラーのチェックをより詳細に行います。 エラーを確認して修正します。エラーが解消されない場合は、このページの最後にあるエラーの解決セクションをご覧ください。

新しい LookML を commit してデプロイする

この時点で、通常の LookML の変更と同様に、commit とデプロイを行います。 注意: この commit によって、永続的な派生テーブル(PDT)の再構築がトリガーされます。 commit をデプロイしたら、他の LookML デベロッパーすべてに対し、変換が完了したことと、PDT に依存するクエリが、少なくともすべてが再構築されるまで、実行に通常より少し長い時間を要することを知らせます。デベロッパーは、Development Mode に本番環境から変更を取り込んで開発を進めることができます。改良された直感的な LookML 構文が新たに導入され、より便利で強力な IDE が採用されています。

エラーの解決

新しい LookML のより徹底的なモデル検証の結果、変換前に明らかになったことのないエラーが表示されることがあります。また、新しい LookML のアドホック エラー チェックでは、より詳細な情報が必要になる場合があります。コンバータがそれを自動的に見つけようとしますが、場合によってはいくつかのファイルに include 行の追加が必要です。

無効なフィールド参照

あるコンテキストでは、YAML(旧)の LookML で、参照するフィールドやセットがモデルのどこかで実際に定義されていないことがあります。これが発生する可能性が最も高い場所は、ドリル フィールドのリストとセットです。

たとえば、古い LookML に drill_fields: [id, name, email] が含まれているものの、モデル開発のある時点で、first_namelast_name を優先するために name フィールドを削除した場合、このドリル フィールドのリストで存在しないフィールド(name)を参照していたことが、YAML LookML で警告されることはありません。また、ディメンション グループ内のフィールドを参照しているときに、新しい LookML と同じ方法で YAML LookML がそのフィールドを指定しなかった場合にも、このエラーが発生する可能性があります。

一方、新しい LookML では、この種のエラーが表示されます。そのため、プロジェクトを変換して LookML バリデータを実行すると、以前に見たことのない無効なフィールド参照に関するエラーが表示されることがあります。これらのエラーを修正することで、モデルの全体的な品質が向上します。

ビューファイルにインクルードが見つからない

場合によっては、新しい LookML のアドホック エラーのチェックで、YAML LookML で必要とされていたものより多くのコンテキストが必要になる場合があります。具体的には、一部のビューファイルに include 行を配置する必要があります(特に、1 つのビューが別のビューを拡張している場合)。

どのファイルをビューに含める必要があるかが明確であれば、コンバータが適切な include 宣言を新しい LookML ビューファイルに自動的に追加するため、エラーは表示されません。

ただし、複数のモデルを含むプロジェクトなど、複数のビューに同じ名前のビューが宣言されている場合があります。 コンバータは適切に含めるべき対象を特定できないため、新しい LookML ファイルの先頭に、これらのビューのうち 1 つのみを含めるようにコメントが追加されます。ビューのファイルに移動し、正しい候補のコメントを解除して、結果のエラーを解決します。

標準の extension_required の Explore

前述の無効なフィールド参照の問題と同様に、新しい LookML では、LookML バリデータにより、extension: required で宣言されている Explore のうち、実際には拡張されていないものについて警告が表示されます。このエラーを解決するには、これらの Explore を拡張オブジェクトに再接続するか、使用していない場合は削除します。

バージョン管理

LookML 変換プロセスによって、.lookml ビューとモデルファイルが .lkml バージョンのものに置き換えられるため、1 人以上のデベロッパーが変換中にプロジェクトに commit すると、統合の競合が発生します。 このため、コンバータを実行するのは 1 人のデベロッパーのみとすることがとても重要で、変換プロセスを開始する前に、すべてのデベロッパーの Development Mode のコピーがクリーンで最新の状態であることを確認する必要があります。

バージョン管理の問題を回避するには、変換中にコードフリーズが必要です。 他のデベロッパーは、変換のためにブロックされている間に変更をチェックインしないでください。

変換の実行中にデベロッパーが変更を commit して本番環境に push する前に問題が生じた場合は、本番環境に戻すと便利です。プルダウン(このページのコンバータを実行するセクションに表示されている画像)からのこのオプションにより、変換が元に戻され、デベロッパーはプロセスを再開できます。