mcpField
L
lookml-view

lookml-view

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

lookml-view について

LookML ビューの作成と保守に関する規約を定めるスキルです。ファイル構成、主キー、拡張、リファインメントを扱い、適切な場合はネイティブ派生テーブルを推奨します。

主な機能

  1. 01ビューのファイル名と構成の規定
  2. 02明示的なテーブル名と主キーの指定
  3. 03拡張とリファインメントの指針
  4. 04適切な場合のネイティブ派生テーブル推奨
  5. 05命名と説明の規約

活用シーン

  1. 01標準的な LookML ビューの作成
  2. 02既存ビューへの変更の積み重ね
  3. 03ビュー間でのロジック再利用
  4. 04派生テーブル方式の選択

インストール

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

$npx skills add https://github.com/looker-open-source/looker-skills --skill lookml-view

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

同梱ファイルreferences/derived_table.md

詳細

手順

1. ファイル構成

  • 標準ビュー: views/[datasource_name]/[view_name].view.lkml
  • 拡張ビュー: views/[datasource_name]/[view_name]_ext.view.lkml
  • リファインメント: views/[datasource_name]/[view_name]_rfn.view.lkml
  • NDT: views/[datasource_name]/[view_name]_ndt.view.lkml
  • SDT: views/[datasource_name]/[view_name]_sdt.view.lkml

2. 基本標準

  1. sql_table_name: 標準ビューでは必須です。デフォルトは不安定なため、明示してください。
  2. 主キー:
    • 慣例: 読みやすさのため、主キーを最初のディメンションに配置します。
    • primary_key: yes を必ず指定してください — 理由: Looker が JOIN による行の重複を正しく処理するために使用する 対称集計 に不可欠です(複数の JOIN を含むクエリでのファンアウトを防ぎます)。
  3. リファインメント: 元のファイルを変更せずに既存のビューをリファインするには、ビュー名の前に + を付けます(例: view: +users)。
  4. 拡張: 他のビューのロジックを再利用するには、extends を使用します。
  5. 派生テーブル: 可能であれば、SQL 派生テーブル(sql)よりもネイティブ派生テーブル(NDT)(explore_source)を評価し、優先するよう促してください。エンティティのロールアップやサマリーファクト(例: user_order_facts)を作成する場合、既存の Explore をデータソースとして利用できるか評価します。NDT はコードのドリフトを最小限に抑え、基になる LookML の説明、書式設定、行レベルセキュリティ(RLS)を自動的に引き継ぐため、推奨されます。NDT が複雑すぎる場合や、特定の SQL 機能が必要な場合は、SDT を使用して問題ありません。

3. ベストプラクティス

  • 命名: ビュー名とファイル名には snake_case を使用します。
  • 説明: ビューの目的を説明するうえで役立つ場合は、ビュー自体に説明を追加します(例:「地域別の日次アクティブユーザー数」)。
  • 出力形式: ファイルの末尾が改行になるようにします。

4. 関連スキル

  • lookml-refinements: include、リファインメント(+)、Hub & Spoke パターンのロジック。

例

基本ビュー

view: users {
  sql_table_name: `project.dataset.users` ;;

  dimension: user_id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
    group_label: "IDs"
    description: "Unique internal user ID."
  }

  dimension: email {
    type: string
    sql: ${TABLE}.email ;;
    description: "User's email address."
  }
}

拡張ビュー

include: "/views/base/users.view"

view: users_extended {
  extends: [users]

  dimension: lifetime_value {
    type: number
    sql: ${TABLE}.ltv ;;
    description: "Total lifetime value of the user."
  }
}

リファインメント(レイヤリング)

include: "/views/users.view"

view: +users {
  label: "All Users (Refined)"
  
  dimension: email {
    # Adding a description to an existing field
    description: "Primary contact email."
  }
}

参考スキル

  • 派生テーブル: 標準(SDT)およびネイティブ(NDT)の派生テーブルのパターン/マテリアライゼーション。

コメント