关于 lookml-view
用于创建和维护 LookML 视图的规范技能,涵盖文件组织、主键、扩展和细化,并指导在适用时选择原生派生表。
主要功能
- 01规定视图文件命名与组织方式
- 02要求明确表名和主键
- 03指导视图扩展与细化
- 04适用时建议使用原生派生表
- 05规范命名与描述
适用场景
- 01创建标准 LookML 视图
- 02在现有视图上分层修改
- 03在多个视图间复用逻辑
- 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. 核心规范
- sql_table_name:标准视图必须设置。默认值不可靠,请明确指定。
- 主键:
- 约定:将主键放在第一个维度,便于阅读。
- 必须设置
primary_key: yes— 原因:这是 对称聚合 的关键,Looker 会用它来正确处理 JOIN 行重复问题(防止多表 JOIN 查询中的扇出)。
- 细化视图:在视图名称前使用
+(例如view: +users),以细化现有视图,而不修改原始文件。 - 扩展视图:使用
extends复用其他视图中的逻辑。 - 派生表:在可行时,评估并优先考虑原生派生表(NDT)(
explore_source),而不是 SQL 派生表(sql)。创建实体汇总或摘要事实表(例如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)派生表模式/物化方式。
评论
支持 Markdown