最佳实践:使用 LookML 时应做些什么,不应做些什么

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 的字段。
  • **不建议**:在联接中使用格式化时间戳。

    请改为使用原始时间范围选项,以便联接任何日期或时间字段。这样可以避免在联接谓词中包含转换和时区转换。