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 Aggregationstabellen zu schätzen.
Mit der allow_approximate_optimization: yes-Anweisung kann Looker HyperLogLog-Skizzen in zusammengefassten Tabellen speichern. Das bedeutet, dass Looker Näherungen für die Anzahl der eindeutigen Werte für Aggregate Awareness verwenden kann.
Eine Liste der Dialekte, die unterschiedliche Anzahl für Aggregattabellen mit HyperLogLog-Skizzen unterstützen, finden Sie auf dieser Seite im Abschnitt Dialektunterstützung für unterschiedliche Anzahl mit Aggregatbewusstsein.
Im Allgemeinen können eindeutige Anzahl nicht mit aggregierter Vertraulichkeit unterstützt werden, da Sie keine genauen Daten erhalten, wenn Sie versuchen, eindeutige Anzahl 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 Aggregattabelle 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 aggregierte 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 aggregierte 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, Näherungswerte 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 Aggregat-Awareness gibt es zwei Fälle, in denen unterschiedliche Zählungen eine Rolle spielen:
- Im ersten Fall werden Messwerte für
type: count_distinctverwendet. - Der zweite Fall betrifft Messwerte vom Typ
type: count, die von Looker als Messwerte vom Typcount_distinctgerendert werden. Wie auf der Dokumentationsseite Aggregate Awareness beschrieben, rendert Lookercount-Messwerte alscount_distinct, um Fehlberechnungen bei der Fanout-Berechnung 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 aktivieren. Sie können diese Messwerte dann in aggregierte Tabellen einfügen.
Auch für Messwerte, die mit
allow_approximate_optimization: yesdefiniert sind, gibt Looker nach Möglichkeit genaue Daten zurück. Wenn die Dimensionen in einer Explore-Abfrage beispielsweise genau mit den Dimensionen in einer aggregierten 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} ;;
}
Unterstützung von Dialekten für eindeutige Anzahlen mit Aggregatbewusstsein
Looker kann eindeutige Anzahl für Aggregate Awareness mit Datenbankdialekten verwenden, die HyperLogLog-Skizzen unterstützen. In der aktuellen Version von Looker werden die folgenden SQL-Dialekte für Distinct Counts mit Aggregat-Awareness 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 | |
| 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.