allow_approximate_optimization

使用状況

ビュー: view_name {
measure: field_name {
allow_approximate_optimization: はい
}
}
階層
allow_approximate_optimization
使用可能なフィールドタイプ
測定

デフォルト値
no

許可
ブール値(はい / いいえ)

定義

HyperLogLog スケッチをサポートする言語では、Looker で HyperLogLog アルゴリズムを利用して、集計テーブルの個別のカウントを近似できます。

allow_approximate_optimization: yes ステートメントを使用すると、Looker は HyperLogLog スケッチを集計テーブルに格納できます。つまり、Looker は集約テーブルの自動認識のために個別のカウントに近似値を使用できます。

HyperLogLog スケッチを使用して集計テーブルの個別のカウントをサポートする言語のリストについては、このページの集約テーブルの自動認識による個別カウントのサポートをご覧ください。

一般に、個別認識は集計認識でサポートされません。個別認識を集計しようとしても、正確なデータが得られないからです。たとえば、ウェブサイト上で個別のユーザーをカウントしている場合、3 週間間隔で 2 回ウェブサイトを訪問したユーザーが存在する可能性があります。貴社のウェブサイトで集計されていたユニーク ユーザー数を週単位で集計するテーブルを適用しようとしても、そのユーザーは 1 か月のカウント数で 2 回カウントされ、そのデータは正しくありません。

この問題を回避するには、集約テーブルの自動認識に関するドキュメント ページで説明されているように、Explore のクエリと完全に一致する集約テーブルを作成します。Explore クエリと集約テーブル クエリが同じ場合、個別カウント メジャーは正確なデータを提供するため、集約テーブルの自動認識に使用できます。

もう 1 つのオプションは、個別カウントに近似値を使用することです。HyperLogLog アルゴリズムのエラーの可能性は、約 2% です。allow_approximate_optimization パラメータは、メジャーがメジャー テーブルからメジャーを計算できるように、メジャーに近似データを使用しても問題ないことを認める必要があります。

集約テーブルの自動認識では、2 つのケースで個別のカウント方法が使用されます。

  • 最初の例は type: count_distinct のメジャーです。
  • 2 番目のケースは、メジャーが type: count であり、Looker によって実際に count_distinct メジャータイプとしてレンダリングされています。集約テーブルの自動認識に関するドキュメントで説明したように、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 言語がサポートされています。

このメソッドの速度と精度のトレードオフについては、SQL 言語のドキュメントをご覧ください。