사용
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는count측정항목을count_distinct로 렌더링하여 여러 데이터베이스 테이블을 조인하는 Explore에서 팬아웃 계산 오류를 방지합니다.
두 경우 모두 언어가 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.x - 0.17.x | |
| 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 AlloyDB for PostgreSQL | |
| 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 | |
| MongoSQL | |
| 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 언어의 문서를 확인하세요.