用途
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 スケッチを使用して集約テーブルの個別カウントをサポートする言語のリストについては、このページの 集約テーブルの自動認識による個別カウントの言語サポートセクションをご覧ください。
一般に、個別のカウントを集計しようとすると、正確なデータが得られないため、集約テーブルの自動認識では個別のカウントはサポートされていません。ウェブサイト上で個別のユーザー数をカウントしている場合、たとえば、3 週間空けて 2 回ウェブサイトにアクセスしたユーザーがいる場合があります。週次集約テーブルを適用して、ウェブサイト上の個別ユーザーの月次カウントを取得しようとした場合、そのユーザーは、月次個別カウントのクエリで 2 回カウントされるため、データは不正確になります。
回避策の 1 つは、集約テーブルの自動認識のドキュメント ページで説明されているように、Explore クエリと完全に一致する集約テーブルを作成することです。Explore のクエリと集約テーブルのクエリが同じである場合、個別カウントメジャーが正確なデータを提供するため、集約テーブルの自動認識に使用できます。
もう 1 つの方法は、個別のカウントに概算を使用することです。HyperLogLog アルゴリズムには、約 2% の潜在的なエラーがあることがわかっています。allow_approximate_optimization パラメータでは、メジャーが集約テーブルから概算で計算できるように、メジャーに対して概算データを使用しても構わないということをデベロッパーが認識する必要があります。
集計認識では、個別のカウントが使用されるケースが 2 つあります。
- 最初のケースは、
type: count_distinctの指標を使用します。 - 2 つ目のケースは、Looker によって
count_distinctメジャータイプとして実際にレンダリングされているtype: countのメジャーです。集約テーブルの自動認識のドキュメント ページで説明されているように、Looker は、複数のデータベース テーブルを結合する Explore でファンアウトの誤計算を避けるために、countメジャーをcount_distinctとしてレンダリングします。
どちらの場合も、言語が HyperLogLog スケッチをサポートしている場合は、メジャーに allow_approximate_optimization: yes ステートメントを追加して概算値を有効にできます。これらの指標は、集計テーブルに含めることができます。
allow_approximate_optimization: yesで定義されたメジャーの場合でも、Looker は可能な限り正確なデータを返します。たとえば、Explore クエリのディメンションが集約テーブルのディメンションと完全に一致する場合、Looker は近似値を計算することなく、個別カウントの正確なデータを提供できます。この場合、Explore の [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 言語が集約テーブルの自動認識による個別のカウントをサポートしています。
| 方言 | サポート対象 |
|---|---|
| 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 言語のドキュメントをご覧ください。