allow_approximate_优化

用量

视图:view_name {
measure: field_name {
allow_approximate_ optimization: yes
}
}
层次结构
allow_approximate_optimization
可能的字段类型
衡量

默认值
no

接受
布尔值(是或否)

定义

对于支持 HyperLogLog 草图的方言,Looker 可以利用 HyperLogLog 算法来近似汇总表格的计数。

借助 allow_approximate_optimization: yes 语句,Looker 可以将 HyperLogLog 草图存储在汇总表中,这意味着,Looker 可以使用近似值对不同的汇总计数进行汇总感知

请参阅本页面上的通过汇总感知对不同计数进行方言支持部分,了解支持使用 HyperLogLog 草图的汇总表格的不同计数的方言列表。

一般来说,不同的认知度不能用于汇总认知度,因为如果您尝试汇总不同的计数,就无法获得准确的数据。例如,如果您要统计某个网站上的唯一身份用户数,那么可能有一位用户间隔两次至三次网站。如果您尝试通过应用每周汇总表来获取您网站上不同用户的每月计数,则系统会在每月的独特计数查询中计算该用户两次,因此数据会有误。

一种解决方法是创建与“探索”查询完全匹配的汇总表,如汇总认知度文档页面中所述。当“探索”查询和汇总表格查询相同时,不同的统计指标将提供准确的数据,因此可用于提高认知度。

另一种方法是针对不同的计数使用近似值。已知 HyperLogLog 算法的潜在错误约为 2%。allow_approximate_optimization 参数要求您的 Looker 开发者确认可以对衡量使用大致数据,以便可以从汇总表格中大致计算衡量结果。

在总体认知度中,以下两种不同情况会发挥作用:

  • 第一种情况是 type: count_distinct 测量值。
  • 第二种情况是 Looker 实际呈现的 type: count 测量值为 count_distinct 测量类型。如汇总认知度文档页面中所述,Looker 将 count 测量结果渲染为 count_distinct,以避免联接多个数据库表的探索中的扇出计算错误。

在这两种情况下,如果您的方言都支持 HyperLogLog 草图,您可以向衡量添加 allow_approximate_optimization: yes 语句以启用近似值。然后,您可以将这些措施纳入汇总表格中。

即使对于使用 allow_approximate_optimization: yes 定义的措施,Looker 也会尽可能返回确切的数据。例如,如果“探索”查询中的维度与汇总表格中的维度完全匹配,Looker 就可以针对不同的计数提供确切的数据,而无需近似值。在这种情况下,您将在 Discover's SQL 标签页中看到,系统使用不同的计数方法对汇总的认知度做出了处理,而不会使用 HyperLogLog 算法。

示例

此示例中显示的 apx_unique_count 计量单位是针对 allow_approximate_optimization: yes 设置的,这意味着该度量单位可在 aggregate_table 中使用。

measure: apx_unique_count {
  type: count_distinct
    allow_approximate_optimization: yes   # default value is no
  sql: ${id} ;;
}

通过汇总的认知度,为不同群体提供相关支持

Looker 可以为支持 HyperLogLog 素描的数据库方言使用不同的汇总计数。在最新版本的 Looker 中,对于具有汇总认知度的不同计数,支持以下 SQL 方言:

如需了解此方法的速度和准确性权衡,请参阅 SQL 方言文档。