mcpField
L
lookml-model

lookml-model

github.com/lkrdevデータ・データベース1658 回インストール22 週間前に更新
リポジトリ

lookml-model について

LookML のモデルファイル作成者向けに、接続、ファイルの読み込み範囲、キャッシュ設定を解説するスキルです。datagroups でキャッシュ無効化を ETL/ELT に合わせ、明確な include パターンでモデルの範囲を制御します。

主な機能

  1. 01接続とファイル読み込みの設定
  2. 02datagroups によるキャッシュ管理
  3. 03モデルラベルと週の開始曜日の設定
  4. 04明確な include パターンの選択

活用シーン

  1. 01Looker プロジェクトのモデルファイル作成
  2. 02キャッシュ無効化と ETL/ELT 完了の連携
  3. 03モデルに含めるビューとダッシュボードの制限

インストール

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

$npx skills add https://github.com/lkrdev/lookml_skills --skill lookml-model

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

詳細

手順

  1. モデルファイルを定義する:モデルファイルは通常、単一のデータベース接続に対応し、Explore を含みます。
  2. 必須パラメーター:
    • connection: "connection_name":Looker Admin で定義された接続と一致する必要があります。
    • include: "pattern":モデルで利用できるビューおよびダッシュボードのファイルを指定します。
  3. ベストプラクティス:
    • インクルード:パフォーマンスの問題や名前空間の煩雑化を防ぐため、可能であれば include: "*.view" は避けてください。include: "/views/users.view" や include: "/views/marketing/*.view" のような特定のパスまたはワイルドカードを使用してください。
    • ラベル:UI でモデルにわかりやすい名前を付けるには、label: を使用してください。
    • 週の開始曜日:ビジネスロジックで特定の開始曜日(例:monday)が必要な場合は、week_start_day: を設定してください。
    • データグループとキャッシュ:Looker を ETL/ELT プロセスに合わせるため、キャッシュポリシーには必ずデータグループを使用してください。

4. データグループとキャッシュ

データグループは、キャッシュポリシーを管理するための推奨メカニズムです。

  • 定義:モデルファイルで定義します。
  • sql_trigger:単一の値(例:最大タイムスタンプ)を返すクエリです。値が変わると、キャッシュが無効化されます。
  • max_cache_age:トリガーが変化しない場合の代替期間です。
  • persist_with:データグループを Explore またはモデル全体に適用します。
データグループと persist_for の比較
機能データグループ(推奨)persist_for
トリガーSQL クエリ(スマート)固定時間(単純)
連携ETL/ELT の完了に合わせる不整合(推測に依存)
管理モデルファイルで一元管理Explore/モデルに分散
用途本番ダッシュボード、ETL 同期アドホッククエリ、リアルタイム(<1h)のニーズ

ヒント

X 分ごとにキャッシュを強制的に更新する必要があるリアルタイムダッシュボード(例:株価ティッカー、在庫の急速な変動)に限り、persist_for を使用してください。それ以外では、データグループを使用してください。

5. インクルードパターン

スコープとパフォーマンスを制御するため、厳密なパターンを使用してください。

パターン説明用途
include: "/views/*.view"特定のフォルダー内のすべてのビュー標準的なモジュール化
include: "/views/marketing/users.view"特定のファイル正確な制御、競合の回避
include: "/**/*.view"再帰的(プロジェクト内のすべてのビュー)プロジェクトが小規模な場合を除き、避ける
include: "/dashboards/*.dashboard"フォルダー内のすべてのダッシュボードダッシュボードのインポート

例

基本的なモデル

connection: "thelook"

# Include all views in the views/ folder
include: "/views/*.view"

# Include all dashboards
include: "/*.dashboard"

# Define an Explore (usually better to define in separate files for large projects, but acceptable here for small ones)
explore: orders {
  join: users {
    type: left_outer
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

特定の設定を含むモデル

connection: "snowlooker"

label: "eCommerce Analytics"

# Set valid week start day
week_start_day: monday

# Include specific folders
include: "/views/finance/*.view"
include: "/views/marketing/*.view"

## Model with Datagroup (Best Practice)

```lookml
connection: "thelook"

# Define the caching policy
datagroup: ecommerce_etl {
  description: "Triggers when the max created_at date changes in the events table."
  sql_trigger: SELECT MAX(created_at) FROM `project.dataset.events` ;;
  max_cache_age: "24 hours" # Fallback
}

# Apply default caching to all Explores in this model
persist_with: ecommerce_etl

include: "/views/*.view"

explore: orders {
  # This explore inherits 'persist_with: ecommerce_etl' from the model default
}

explore: real_time_dashboard {
  # Override with a different policy if needed
  persist_for: "5 minutes"
}
```

コメント