creating-looker-dashboard について
Looker CLI で LookML ダッシュボードを作成し、User-Defined Dashboard としてインポートする手順書です。検証、タイルのクエリ確認、フィードバックに応じた更新と同期を扱います。
主な機能
- 01ダッシュボード LookML の作成
- 02フォルダー指定とインポート
- 03プロジェクト検証
- 04タイルクエリの確認
- 05フィードバックに基づく更新と同期
活用シーン
- 01モデル化済みデータからのダッシュボード作成
- 02共有前のタイルクエリ確認
- 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(要件の確認)**のインタビューでユーザーと合意したターゲットダッシュボードの目標、テーブル、ディメンション、メジャーを確認します(その後、**ステップ 7(モデル)**で作成されています)。ダッシュボードに正しいデータを表示するには、これらの仕様を把握しておく必要があります。
- ダッシュボードを配置する Looker のターゲット フォルダー ID を特定します。Looker の新規インスタンスであるため、ダッシュボードはデフォルトの 共有フォルダーに配置します。
- Looker CLI を使ってすべてのフォルダーを一覧表示します:
looker-cli folder ls - 出力から
"Shared"という名前のフォルダーを見つけます。新規インスタンスでは、このフォルダーは必ず存在し、ID はほぼ常に"1"です。 "Shared"フォルダーの ID を特定し、ターゲットフォルダー ID として使用します(後続の手順でfolder_idパラメーターに渡します)。
- Looker CLI を使ってすべてのフォルダーを一覧表示します:
2. LookML ダッシュボードファイルを作成する(CLI)
プロジェクト内に LookML ダッシュボードファイルとして、ダッシュボードの構造を定義する必要があります。
-
dashboardsディレクトリを作成する:プロジェクトにdashboards/ディレクトリがまだ存在しない場合は、Looker CLI を使って作成します。looker-cli project directory create {project_id} dashboards -
ダッシュボードの LookML を生成する:LookML ダッシュボード定義をローカルに書き込みます(例:
/tmp/{dashboard_name}.dashboard.lookml)。ファイルの拡張子が.dashboard.lookmlであることを確認してください。 -
ダッシュボードファイルをアップロードする:ファイルを Looker プロジェクトの dashboards フォルダーにアップロードします(パスの形式は
dashboards/{dashboard_name}.dashboard.lookml)。looker-cli project file create {project_id} dashboards/{dashboard_name}.dashboard.lookml /tmp/{dashboard_name}.dashboard.lookml -
重要な追加手順:プロジェクトバリデーターと CLI のインポート/同期コマンドで検出できるように、ダッシュボードファイルを LookML モデルファイル(
{model_name}.model.lkml)に必ず含めてください。include: "/dashboards/**/*.dashboard.lookml" -
ダッシュボードファイル内に 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 内のデータベースに保存されたダッシュボードに変換されます。
-
lookml_dashboard_idを{model_name}::{dashboard_name}の形式で作成します(例:ecommerce::sales_performance)。 -
開発モードのワークスペースコンテキストを確認する:デフォルトでは、Looker CLI のセッションは本番ワークスペースで実行されます。新しく作成したダッシュボードは開発モードにしか存在しないため、インポート/同期の直前に CLI セッションを開発ワークスペースに切り替える必要があります。セッション更新コマンドをインポートコマンドに連結します。
looker-cli session update dev && looker-cli dashboard import lookml {model_name}::{dashboard_name} {folder_id} -
このコマンドは、インポートされた UDD の詳細を含む JSON オブジェクトを返します。レスポンスからダッシュボードの数値
id(例:45)またはslugを記録します。
5. ダッシュボードの内容を検証する(SQL クエリの検証チェック)
Looker のプロジェクト検証で確認されるのは LookML の構文のみであり、各タイルの SQL クエリがデータベースに対して正常に実行されるかどうかは検証されません。ユーザーに提示する前に、ダッシュボードにクエリエラーが一切ないことを保証するには、すべてのダッシュボードタイルのクエリを取得して実行する必要があります。
-
新しくインポートした UDD ダッシュボードの要素の詳細(特に
query_id)を取得します。looker-cli dashboard cat {udd_id} --fields "dashboard_elements(query_id)" -
JSON の結果で返された固有の
query_idごとに(テキストタイルの null 値は除外)、クエリを実行してデータベースの正しさを検証します。looker-cli query runquery {query_id} -
各クエリが正常に実行され、SQL またはデータベースのエラーなしでデータが返されることを確認します。クエリが失敗した場合(データベースの列の不一致、不適切な SQL 方言関数、または GCP の権限の問題が原因)、LookML ビューで問題を解決し、変更をコミットしてから、
looker-cli api project validate_project {project_id}を再実行し、looker-cli dashboard sync lookmlで同期して、この一連の手順で再検証します。すべてのクエリが正常に実行されるまで繰り返してください。
6. ユーザーに提示して反復する(対話型ステップ)
-
インポートしたダッシュボードのリンクをユーザーに提示します。
{instance_url}/dashboards/{udd_id}(または/dashboards-next/{udd_id})。 -
レイアウト、グラフの種類、ラベルについてユーザーにフィードバックを求めて停止して確認します。
「新しいダッシュボードを正常に作成してインポートしました!こちらからご覧いただけます:{dashboard_url}
この内容でよろしいでしょうか?グラフの種類の変更、新しい指標の追加、レイアウトの調整をご希望の場合はお知らせください!」
-
ユーザーの返答を停止して待ちます。ツールは呼び出さないでください。
7. 変更を調整して同期する
ユーザーからダッシュボードの変更(例:「注文数を縦棒グラフではなく横棒グラフにする」や「フィルターを追加する」)を依頼された場合:
-
ローカルの LookML ダッシュボードファイルを編集し、Looker サーバー上で更新します。
looker-cli project file update {project_id} dashboards/{dashboard_name}.dashboard.lookml /tmp/{dashboard_name}.dashboard.lookml -
プロジェクトを検証します。
looker-cli api project validate_project {project_id} -
CLI の同期コマンドを使って、変更をインポート済みの UDD ダッシュボードに直接反映します。
looker-cli dashboard sync lookml {model_name}::{dashboard_name} -
クエリの再検証:調整によって新たな SQL エラーやデータベースエラーが発生していないことを確認するため、クエリ検証チェックを再実行します。
- UDD の要素を再取得します(新しいタイルのクエリを取得するため):
looker dashboard cat {udd_id} --fields "dashboard_elements(query_id)" - 返された
query_idごとにクエリを実行し、SQL が正しいことを確認します。looker-cli query runquery {query_id}
- UDD の要素を再取得します(新しいタイルのクエリを取得するため):
-
ブラウザーを更新して変更を確認するよう、ユーザーに依頼します。ユーザーが完全に満足するまで、この手順を繰り返します!