allow_approximate_optimization

Nutzung

view: view_name {
  measure: field_name {
    allow_approximate_optimization: yes 
  }
}
Hierarchie
allow_approximate_optimization
Mögliche Feldtypen
Messen

Standardwert
no

Akzeptiert
Ein boolescher Wert (ja oder nein)

Definition

Bei Dialekten, die HyperLogLog-Skizzen unterstützen, kann Looker den HyperLogLog-Algorithmus verwenden, um die Anzahl der eindeutigen Werte für Aggregattabellen zu schätzen.

Mit der allow_approximate_optimization: yes-Anweisung kann Looker HyperLogLog-Skizzen in zusammengefassten Tabellen speichern. Das bedeutet, dass Looker Näherungswerte für die Anzahl der eindeutigen Werte für Aggregate Awareness verwenden kann.

Eine Liste der Dialekte, die die Anzahl der eindeutigen Werte für Aggregattabellen mit HyperLogLog-Skizzen unterstützen, finden Sie auf dieser Seite im Abschnitt Dialektunterstützung für die Anzahl der eindeutigen Werte mit Aggregatbewusstsein.

Im Allgemeinen können eindeutige Anzahlwerte nicht mit aggregierter Datenverarbeitung unterstützt werden, da keine genauen Daten verfügbar sind, wenn Sie versuchen, eindeutige Anzahlwerte zu aggregieren. Wenn Sie beispielsweise die eindeutigen Nutzer einer Website zählen, kann es sein, dass ein Nutzer die Website zweimal besucht hat, wobei drei Wochen zwischen den Besuchen lagen. Wenn Sie beispielsweise eine wöchentliche zusammengefasste Tabelle verwenden, um die monatliche Anzahl eindeutiger Nutzer auf Ihrer Website zu ermitteln, wird dieser Nutzer in Ihrer monatlichen Abfrage für eindeutige Nutzer zweimal gezählt und die Daten sind falsch.

Eine mögliche Lösung besteht darin, eine zusammengefasste Tabelle zu erstellen, die genau mit einer Explore-Abfrage übereinstimmt. Eine Anleitung dazu finden Sie auf der Dokumentationsseite Aggregate awareness. Wenn die Explore-Abfrage und die Abfrage für die zusammengefasste Tabelle identisch sind, liefern Distinct-Count-Messwerte genaue Daten. Sie können also für die aggregierte Sensibilisierung verwendet werden.

Die andere Möglichkeit besteht darin, Schätzungen für die Anzahl der eindeutigen Werte zu verwenden. Der HyperLogLog-Algorithmus hat einen potenziellen Fehler von etwa 2 %. Für den Parameter allow_approximate_optimization müssen Ihre Looker-Entwickler bestätigen, dass es in Ordnung ist, ungefähre Daten für den Messwert zu verwenden, damit er aus aggregierten Tabellen geschätzt werden kann.

Bei der aggregierten Bekanntheit gibt es zwei Fälle, in denen eindeutige Anzahl eine Rolle spielt:

  • Im ersten Fall werden Messwerte von type: count_distinct verwendet.
  • Im zweiten Fall handelt es sich um Messwerte vom Typ type: count, die von Looker als Messwerte vom Typ count_distinct gerendert werden. Wie auf der Dokumentationsseite Aggregate Awareness beschrieben, rendert Looker count-Messwerte als count_distinct, um Fehlberechnungen bei der Fanout-Zusammenführung in Explores zu vermeiden, in denen mehrere Datenbanktabellen zusammengeführt werden.

Wenn Ihr Dialekt HyperLogLog-Skizzen unterstützt, können Sie in beiden Fällen die allow_approximate_optimization: yes-Anweisung zu Measures hinzufügen, um ungefähre Werte zu erhalten. Anschließend können Sie diese Messwerte in zusammengefasste Tabellen einfügen.

Auch für mit allow_approximate_optimization: yes definierte Measures gibt Looker nach Möglichkeit genaue Daten zurück. Wenn die Dimensionen in einer Explore-Abfrage beispielsweise genau mit den Dimensionen in einer zusammengefassten Tabelle übereinstimmen, kann Looker genaue Daten für die Anzahl der eindeutigen Werte liefern, ohne dass eine Schätzung erforderlich ist. In diesem Fall sehen Sie auf dem SQL-Tab des Explores, dass Distinct Count-Messwerte für die Aggregat-Awareness verwendet werden, ohne dass der HyperLogLog-Algorithmus zum Einsatz kommt.

Beispiel

Der in diesem Beispiel gezeigte Messwert apx_unique_count ist für allow_approximate_optimization: yes festgelegt. Das bedeutet, dass er in einem aggregate_table verwendet werden kann.

measure: apx_unique_count {
  type: count_distinct
    allow_approximate_optimization: yes   # default value is no
  sql: ${id} ;;
}

Dialektunterstützung für eindeutige Anzahlen mit Aggregate Awareness

Looker kann für Aggregate Awareness mit Datenbankdialekten, die HyperLogLog-Skizzen unterstützen, Distinct Counts verwenden. In der aktuellen Version von Looker werden die folgenden SQL-Dialekte für Distinct Counts mit Aggregatbewusstsein unterstützt:

Dialekt Unterstützt?
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

In der Dokumentation Ihres SQL-Dialekts finden Sie Informationen zu den Kompromissen zwischen Geschwindigkeit und Genauigkeit dieser Methode.