最佳实践:LookML 注意事项

这些最佳实践体现了由经验丰富的 Looker 跨职能团队分享的建议。这些见解源自我们与 Looker 客户合作的多年经验,从实施到长期成功,这些经验总结得出。这些做法适用于大多数用户和情况,但与往常一样,在实施本页面上分享的任何建议时,请运用您的最佳判断。

LookML Do

  • 正确做法:为所有联接定义 relationship 参数。

    这将确保在 Looker 中正确汇总指标。默认情况下,对于未定义关系的任何联接,Looker 都会使用 many_to_one 联接关系。如需详细了解如何正确定义 relationship 参数,请参阅有关正确使用 relationship 参数的最佳实践页面。
  • 正确做法:在每个视图(包括派生表)中定义主键

    所有视图(无论是派生的还是直接来自数据库的视图)都应包含一个主键。此主键应为唯一值,以便 Looker 能够唯一标识任何给定记录。此主键可以是单个列,也可以是列的串联,只需是表或派生表的唯一标识符。
  • 正确做法:为维度测量值和其他 LookML 对象命名,空格全部使用小写字母和下划线。

    label 参数可用于设置名称字段的其他格式,还可用于自定义视图名称探索名称模型名称的外观。例如,在下面的 LookML 中,label 参数用于将标签 Number of 顾客评价分配给 customer_count_distinct 测量。
          measure: customer_count_distinct {
            label: "Number of Customers"
            type: count_distinct
            sql: ${customer.id} ;;
          }
  • 正确做法:使用数据组使永久性派生表 (PDT) 的生成保持一致,并探索通过底层 ETL 流程进行缓存。数据组还可用于触发信息中心Look 的传送,以确保向收件人发送最新数据。

LookML 错误做法

  • 错误做法:使用 from 参数重命名探索中的视图。

    请改用 view_label 参数。如需详细了解 fromview_label 之间的区别,请参阅 from(适用于探索)参数文档页面。from 参数应主要用于以下情况:
    • 多态联接(多次联接同一表)
    • 自联接(将表与自身联接)
    • 将扩展视图的范围重新限定为原始视图名称
  • 错误做法:在维度组名称中使用“日期”或“时间”一词。

    Looker 会将每个时间范围附加到维度组名称的末尾。这意味着,名为 created_date 的维度组会生成名为 created_date_datecreated_date_month 等的字段。只需使用 created 作为维度组名称即可,因为这样会生成名为 created_datecreated_month 等的字段。
  • 错误做法:在联接中使用格式化的时间戳。

    而是在任何日期或时间字段上使用原始时间范围选项进行联接。这样可避免在联接谓词中包含类型转换和时区转换。