사용
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회 방문한 사용자가 있을 수 있습니다. 주간 집계 테이블을 적용하여 웹사이트의 월간 순 사용자 수를 계산하려고 하면 이 사용자는 월별 고유 개수 쿼리에 두 번 계산되며 데이터가 부정확해집니다.
한 가지 해결 방법은 집계 인식 문서 페이지에 설명된 대로 Explore 쿼리와 정확히 일치하는 집계 테이블을 만드는 것입니다. Explore 쿼리와 집계 테이블 쿼리가 같으면 고유 개수 측정이 정확한 데이터를 제공하므로 집계 인식에 사용될 수 있습니다.
또 다른 옵션은 고유 개수의 근사값을 사용하는 것입니다. HyperLogLog 알고리즘에는 약 2% 의 잠재적 오류가 있는 것으로 알려져 있습니다. allow_approximate_optimization 매개변수를 사용하려면 Looker 개발자가 측정에 근사치 데이터를 사용해도 된다는 점을 인식하여 집계 테이블에서 측정을 대략적으로 계산할 수 있도록 해야 합니다.
집계 인식의 경우 개별 개수가 적용되는 두 가지 사례가 있습니다.
- 첫 번째 사례는
type: count_distinct측정입니다. - 두 번째 사례는 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 다이얼렉트의 문서를 확인하세요.