lookml-sets について
LookML 開発者向けに、ディメンション、メジャー、フィルターを再利用可能なフィールドリストとしてまとめる Set を解説します。ドリル項目や Explore の表示制御、フィールドの除外に利用できます。
主な機能
- 01再利用可能なフィールドリストの定義
- 02他の Set のフィールドの合成や除外
- 03メジャーのドリル項目の設定
- 04Explore のフィールド表示制御
活用シーン
- 01メジャーからドリルした際の詳細フィールドの指定
- 02Explore のフィールド選択画面で表示項目を制限
- 03フィールドを全体では非表示にせず Explore から除外
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ looker-open-source/ looker-skills --skill lookml-setsインストール後、Claude Code で/lookml-setsを入力して読み込まれたか確認します。
詳細
LookML セット
セットとは、ビューまたはモデル内で定義する、フィールド(ディメンション、メジャー、フィルター)の再利用可能なリストです。主に、ドリルダウンパスや Explore のフィールド表示など、さまざまな用途に合わせてフィールドをまとめるために使用します。
構文
set: set_name {
fields: [field_name1, field_name2, view_name.field_name3, ...]
}
主な機能
- 再利用性:フィールドのリストを一度定義すれば、複数の場所で使用できます。
- 組み合わせ:
- すべてを含める:
[set_name*]は、別のセットに含まれるすべてのフィールドを含めます。 - 除外:
[-field_name]は、特定のフィールドを除外します。 - 外部参照:
view_name.set_name*は、別のビューにあるセットを参照します(ビューが結合されていることを確認してください)。
- すべてを含める:
ユースケース
1. ドリルフィールド(主なユースケース)
セットは、ユーザーがメジャーの値をクリックしたときの動作を定義する標準的な方法です。フィールドを繰り返し列挙する代わりに、セットを定義して参照します。
view: orders {
# ... dimensions ...
set: order_details {
fields: [id, created_date, status, user.email]
}
measure: count {
type: count
drill_fields: [order_details*]
}
}
2. Explore の表示設定(フィールドピッカー)
Explore レベルでセットを使用すると、ユーザーに表示するフィールドを明示的に定義できます。Explore を整理する際のベストプラクティスです。
explore: orders {
fields: [ALL_FIELDS*] # Start with everything (default)
# OR
fields: [orders.order_details*, users.user_info*] # Allowlist specific sets
}
3. フィールドの除外
セットを使用すると、ビューのレベルでフィールドを非表示にすることなく(ビューで非表示にすると、全体で非表示になります)、Explore から特定のフィールドを除外できます。
explore: orders {
fields: [ALL_FIELDS*, -users.password_hash]
}
ベストプラクティス
1. detail セット
各ビューには、そのビューのレコードをドリルして詳細を確認する際に最も関連性の高いフィールドを含むデフォルトのセット(一般的には detail または drill_set という名前)を用意することをおすすめします。
view: users {
dimension: id { primary_key: yes ... }
dimension: name { ... }
dimension: email { ... }
# Standard set for drilling
set: detail {
fields: [id, name, email]
}
}
2. 命名規則
- セット名には
snake_caseを使用します。 user_info、financial_metrics、drill_detailなど、内容が分かりやすい名前を使用します。
3. ビューセットでのビュー間依存関係を避ける
ビューのセット内で other_view.field を参照することもできますが、依存関係が発生します。セットを使用する際に、other_view が必ず結合されていることを確認してください。
- 推奨:ビュー内で、そのビュー自身のフィールドだけを含むセットを定義します。
- Explore レベル:Explore レベルで複数のビューのセットを組み合わせます(例:
fields: [orders.detail*, users.detail*])。
4. 累積セット
ほかのセットを基にしてセットを作成できます。
set: basic_info {
fields: [id, name]
}
set: extended_info {
fields: [basic_info*, email, created_date]
}