使用状況
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 言語のドキュメントをご覧ください。