mcpField
L
lookml-sets

lookml-sets

github.com/looker-open-source数据与数据库43146 次安装2 周前更新
代码仓库

关于 lookml-sets

面向 LookML 开发者的 Sets 指南,介绍如何将维度、度量和筛选器组织为可复用字段列表。Sets 可用于配置钻取字段、控制 Explore 中的字段可见性及排除字段。

主要功能

  1. 01定义可复用字段列表
  2. 02组合或排除其他 Set 中的字段
  3. 03设置度量的钻取字段
  4. 04控制 Explore 字段可见性

适用场景

  1. 01为度量配置点击后的明细字段
  2. 02限制用户在 Explore 字段选择器中的可见字段
  3. 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]
}

评论

支持 Markdown