LookML 建模最佳实践可帮助您构建可维护的数据模型,准确汇总指标并优化查询性能。您可以应用这些准则来配置联接关系、主键、对象名称、数据组和维度组,同时根据您的环境调整每项建议。
使用 LookML 执行此操作
-
建议:为所有联接定义
relationship参数。 这样可确保指标在 Looker 中正确汇总。默认情况下,对于未定义关系的任何联接,Looker 都会使用many_to_one联接关系。如需详细了解如何正确定义relationship参数,请参阅最佳实践页面,了解 如何正确设置relationship参数。 - 建议:在每个视图(包括派生表)中定义主键。 所有视图(无论是派生视图还是直接来自数据库)都应包含主键。此主键应为唯一值,以便 Looker 能够唯一标识任何给定记录。 此主键可以是单个列,也可以是列的串联,只需是表或派生表的唯一标识符即可。
-
建议:使用全小写字母和下划线作为空格来命名维度、测量和其他 LookML 对象。
label参数可用于对名称字段进行额外的格式设置,也可用于自定义 视图名称、探索名称和 模型名称的外观。例如,在以下 LookML 中,label参数用于将标签 Number of Customers 分配给customer_count_distinct测量。measure: customer_count_distinct { label: "Number of Customers" type: count_distinct sql: ${customer.id} ;; } - 建议:使用数据组将永久性派生表 (PDT)的生成和探索缓存与底层 ETL 流程保持一致。数据组还可用于触发 信息中心 或 Look 的传送,以确保将最新数据发送给收件人。
请勿使用 LookML 执行此操作
-
不建议:使用
from参数在探索中重命名视图。 请改用view_label参数。如需详细了解from和view_label之间的区别,请查看from(适用于探索) 参数文档页面。from参数主要应在以下情况下使用:- 多态联接(多次联接同一表)
- 自联接(将表联接到自身)
- 将扩展视图重新限定到其原始视图名称
-
不建议:在维度组名称中使用“date”或“time”字样。
Looker 会将每个时间范围附加到维度组名称的末尾,这意味着名为
created_date的维度组会生成名为created_date_date和created_date_month的字段。只需使用created作为维度组名称,因为这会生成名为created_date和created_month的字段。 - **不建议**:在联接中使用格式化时间戳。 请改为使用原始时间范围选项,以便联接任何日期或时间字段。这样可以避免在联接谓词中包含转换和时区转换。