mcpField
C
creating-looker-dashboard

creating-looker-dashboard

github.com/looker-open-sourceデータ・データベース43114 回インストール2 週間前に更新
リポジトリ

creating-looker-dashboard について

Looker CLI で LookML ダッシュボードを作成し、User-Defined Dashboard としてインポートする手順書です。検証、タイルのクエリ確認、フィードバックに応じた更新と同期を扱います。

主な機能

  1. 01ダッシュボード LookML の作成
  2. 02フォルダー指定とインポート
  3. 03プロジェクト検証
  4. 04タイルクエリの確認
  5. 05フィードバックに基づく更新と同期

活用シーン

  1. 01モデル化済みデータからのダッシュボード作成
  2. 02共有前のタイルクエリ確認
  3. 03要望に応じたレイアウトや指標の調整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/looker-open-source/looker-skills --skill creating-looker-dashboard

インストール後、Claude Code で/creating-looker-dashboardを入力して読み込まれたか確認します。

詳細

Looker ダッシュボードの作成とフィードバックループ

このスキルでは、オンボーディングの最終ステップである、ユーザーが求めるターゲットダッシュボードの作成手順を説明します。プロジェクト内に LookML ダッシュボードファイルとしてダッシュボードを定義し、Looker にユーザー定義ダッシュボード(UDD)としてインポートして、ユーザーのフィードバックに基づいて反復的に更新・同期します。

前提条件

  • Looker CLI がインストールされ、認証済みであること(ステップ 2、3)。
  • Looker プロジェクト、接続、ビュー、モデルのセットアップと検証が完了していること(ステップ 4、5、6)。

手順

1. ダッシュボードの仕様を確認し、配置先フォルダーを特定する
  1. 会話履歴を参照し、**ステップ 1(要件の確認)**のインタビューでユーザーと合意したターゲットダッシュボードの目標、テーブル、ディメンション、メジャーを確認します(その後、**ステップ 7(モデル)**で作成されています)。ダッシュボードに正しいデータを表示するには、これらの仕様を把握しておく必要があります。
  2. ダッシュボードを配置する Looker のターゲット フォルダー ID を特定します。Looker の新規インスタンスであるため、ダッシュボードはデフォルトの 共有フォルダーに配置します。
    • Looker CLI を使ってすべてのフォルダーを一覧表示します:looker-cli folder ls
    • 出力から "Shared" という名前のフォルダーを見つけます。新規インスタンスでは、このフォルダーは必ず存在し、ID はほぼ常に "1" です。
    • "Shared" フォルダーの ID を特定し、ターゲットフォルダー ID として使用します(後続の手順で folder_id パラメーターに渡します)。
2. LookML ダッシュボードファイルを作成する(CLI)

プロジェクト内に LookML ダッシュボードファイルとして、ダッシュボードの構造を定義する必要があります。

  1. dashboards ディレクトリを作成する:プロジェクトに dashboards/ ディレクトリがまだ存在しない場合は、Looker CLI を使って作成します。

    looker-cli project directory create {project_id} dashboards
    
  2. ダッシュボードの LookML を生成する:LookML ダッシュボード定義をローカルに書き込みます(例:/tmp/{dashboard_name}.dashboard.lookml)。ファイルの拡張子が .dashboard.lookml であることを確認してください。

  3. ダッシュボードファイルをアップロードする:ファイルを Looker プロジェクトの dashboards フォルダーにアップロードします(パスの形式は dashboards/{dashboard_name}.dashboard.lookml)。

    looker-cli project file create {project_id} dashboards/{dashboard_name}.dashboard.lookml /tmp/{dashboard_name}.dashboard.lookml
    
  4. 重要な追加手順:プロジェクトバリデーターと CLI のインポート/同期コマンドで検出できるように、ダッシュボードファイルを LookML モデルファイル({model_name}.model.lkml)に必ず含めてください。

    include: "/dashboards/**/*.dashboard.lookml"
    
  5. ダッシュボードファイル内に LookML ダッシュボード定義を記述し、ステップ 7 で作成したディメンションとメジャーを表示するタイル(要素)を設定します。古い layout: grid の行グループ化で発生するインポートエラーを防ぐため、layout: newspaper(24 列のグリッド座標 row、col、width、height に対応)の使用を強く推奨します。

ダッシュボード LookML の例(layout: newspaper):

- dashboard: sales_performance
  title: Sales Performance Overview
  layout: newspaper
  preferred_viewer: dashboards-next

  elements:
    - name: total_revenue_tile
      title: Total Revenue Over Time
      model: ecommerce
      explore: orders
      type: looker_line
      fields: [orders.created_date, orders.total_revenue]
      sorts: [orders.created_date desc]
      limit: 500
      row: 0
      col: 0
      width: 12
      height: 8

    - name: order_count_tile
      title: Top Countries by Orders
      model: ecommerce
      explore: orders
      type: looker_column
      fields: [users.country, orders.count]
      sorts: [orders.count desc]
      limit: 10
      row: 0
      col: 12
      width: 12
      height: 8

注:各タイルの model プロパティと explore プロパティがプロジェクトで定義されたモデル名と Explore 名に一致し、fields が完全修飾形式の view_name.field_name になっていることを確認してください。

3. LookML を検証してコミットする

ダッシュボードの構文に問題がなく、参照エラーもないことを確認するため、プロジェクトを検証します。

looker-cli api project validate_project {project_id}

エラーが返された場合は、LookML ダッシュボード定義を修正し、エラーがなくなるまで再検証してください。

4. LookML ダッシュボードを UDD としてインポートする(CLI)

LookML ダッシュボードをターゲットフォルダーにユーザー定義ダッシュボード(UDD)としてインポートします。これにより、静的ファイルが Looker 内のデータベースに保存されたダッシュボードに変換されます。

  1. lookml_dashboard_id を {model_name}::{dashboard_name} の形式で作成します(例:ecommerce::sales_performance)。

  2. 開発モードのワークスペースコンテキストを確認する:デフォルトでは、Looker CLI のセッションは本番ワークスペースで実行されます。新しく作成したダッシュボードは開発モードにしか存在しないため、インポート/同期の直前に CLI セッションを開発ワークスペースに切り替える必要があります。セッション更新コマンドをインポートコマンドに連結します。

    looker-cli session update dev && looker-cli dashboard import lookml {model_name}::{dashboard_name} {folder_id}
    
  3. このコマンドは、インポートされた UDD の詳細を含む JSON オブジェクトを返します。レスポンスからダッシュボードの数値 id(例:45)または slug を記録します。

5. ダッシュボードの内容を検証する(SQL クエリの検証チェック)

Looker のプロジェクト検証で確認されるのは LookML の構文のみであり、各タイルの SQL クエリがデータベースに対して正常に実行されるかどうかは検証されません。ユーザーに提示する前に、ダッシュボードにクエリエラーが一切ないことを保証するには、すべてのダッシュボードタイルのクエリを取得して実行する必要があります。

  1. 新しくインポートした UDD ダッシュボードの要素の詳細(特に query_id)を取得します。

    looker-cli dashboard cat {udd_id} --fields "dashboard_elements(query_id)"
    
  2. JSON の結果で返された固有の query_id ごとに(テキストタイルの null 値は除外)、クエリを実行してデータベースの正しさを検証します。

    looker-cli query runquery {query_id}
    
  3. 各クエリが正常に実行され、SQL またはデータベースのエラーなしでデータが返されることを確認します。クエリが失敗した場合(データベースの列の不一致、不適切な SQL 方言関数、または GCP の権限の問題が原因)、LookML ビューで問題を解決し、変更をコミットしてから、looker-cli api project validate_project {project_id} を再実行し、looker-cli dashboard sync lookml で同期して、この一連の手順で再検証します。すべてのクエリが正常に実行されるまで繰り返してください。

6. ユーザーに提示して反復する(対話型ステップ)
  1. インポートしたダッシュボードのリンクをユーザーに提示します。 {instance_url}/dashboards/{udd_id}(または /dashboards-next/{udd_id})。

  2. レイアウト、グラフの種類、ラベルについてユーザーにフィードバックを求めて停止して確認します。

    「新しいダッシュボードを正常に作成してインポートしました!こちらからご覧いただけます:{dashboard_url}

    この内容でよろしいでしょうか?グラフの種類の変更、新しい指標の追加、レイアウトの調整をご希望の場合はお知らせください!」

  3. ユーザーの返答を停止して待ちます。ツールは呼び出さないでください。

7. 変更を調整して同期する

ユーザーからダッシュボードの変更(例:「注文数を縦棒グラフではなく横棒グラフにする」や「フィルターを追加する」)を依頼された場合:

  1. ローカルの LookML ダッシュボードファイルを編集し、Looker サーバー上で更新します。

    looker-cli project file update {project_id} dashboards/{dashboard_name}.dashboard.lookml /tmp/{dashboard_name}.dashboard.lookml
    
  2. プロジェクトを検証します。

    looker-cli api project validate_project {project_id}
    
  3. CLI の同期コマンドを使って、変更をインポート済みの UDD ダッシュボードに直接反映します。

    looker-cli dashboard sync lookml {model_name}::{dashboard_name}
    
  4. クエリの再検証:調整によって新たな SQL エラーやデータベースエラーが発生していないことを確認するため、クエリ検証チェックを再実行します。

    • UDD の要素を再取得します(新しいタイルのクエリを取得するため):looker dashboard cat {udd_id} --fields "dashboard_elements(query_id)"
    • 返された query_id ごとにクエリを実行し、SQL が正しいことを確認します。 looker-cli query runquery {query_id}
  5. ブラウザーを更新して変更を確認するよう、ユーザーに依頼します。ユーザーが完全に満足するまで、この手順を繰り返します!

コメント