用量
view: 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 實際以
count_distinct評估類型算繪的type: count評估。如「匯總感知」說明文件頁面所述,Looker 會將count測量值算繪為count_distinct,避免在聯結多個資料庫表格的探索中發生扇出誤算。
在這兩種情況下,如果方言支援 HyperLogLog 草圖,您可以將 allow_approximate_optimization: yes 陳述式新增至指標,啟用近似值。接著即可將這些指標納入匯總資料表。
即使是使用
allow_approximate_optimization: yes定義的指標,Looker 也會盡可能傳回確切資料。舉例來說,如果「探索」查詢中的維度與匯總表格中的維度完全相符,Looker 就能提供不重複計數的確切資料,不必進行估算。在這種情況下,您會在「探索」的「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} ;;
}
支援方言,可使用匯總認知度計算不重複計數
如果資料庫方言支援 HyperLogLog 草圖,Looker 就能使用不重複計數來匯總認知度。在最新版 Looker 中,下列 SQL 方言支援使用匯總感知功能計算不重複計數:
| 方言 | 是否支援? |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |
請參閱 SQL 方言的說明文件,瞭解這個方法的速度和準確度取捨。