Nutzung
view: view_name {
measure: field_name {
allow_approximate_optimization: yes
}
}
|
Hierarchie
allow_approximate_optimization |
Mögliche Feldtypen
Messen
Standardwert
no
Akzeptiert
Boolescher Wert (ja oder nein)
|
Definition
Bei Dialekten, die HyperLogLog-Skizzen unterstützen, kann Looker den HyperLogLog-Algorithmus verwenden, um die Anzahl der unterschiedlichen Werte für zusammengefasste Tabellen 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 eindeutige Zählungen für Aggregate Awareness verwenden kann.
Eine Liste der Dialekte, die eindeutige Zählungen für zusammengefasste Tabellen mit HyperLogLog-Skizzen unterstützen, finden Sie auf dieser Seite im Abschnitt Dialektunterstützung für eindeutige Zählungen mit Aggregat-Awareness.
Im Allgemeinen können eindeutige Zählungen nicht mit der Aggregationserkennung unterstützt werden, da Sie keine genauen Daten erhalten, wenn Sie versuchen, eindeutige Zählungen zu aggregieren. Wenn Sie beispielsweise die eindeutigen Nutzer auf einer Website zählen, kann es sein, dass ein Nutzer die Website zweimal im Abstand von drei Wochen besucht hat. Wenn Sie eine wöchentliche zusammengefasste Tabelle verwenden, um die Anzahl der einzelnen Nutzer auf Ihrer Website pro Monat zu ermitteln, wird dieser Nutzer in der monatlichen Abfrage zweimal gezählt und die Daten sind falsch.
Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, eine zusammengefasste Tabelle zu erstellen, die genau mit einer Explore-Abfrage übereinstimmt, wie auf der Dokumentationsseite Aggregat-Awareness beschrieben. Wenn die Explore-Abfrage und eine Abfrage der zusammengefassten Tabelle identisch sind, liefern Messwerte für die Anzahl unterschiedlicher Werte genaue Daten und können daher für die Aggregat-Awareness verwendet werden.
Die andere Möglichkeit besteht darin, Näherungswerte für unterschiedliche Zählungen 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, Näherungsdaten für die Measure zu verwenden, damit die Measure näherungsweise aus zusammengefassten Tabellen berechnet werden kann.
Bei der Aggregationserkennung gibt es zwei Fälle, in denen unterschiedliche Zählungen eine Rolle spielen:
- Der erste Fall betrifft Messwerte von
type: count_distinct. - Der zweite Fall betrifft Measures vom Typ
type: count, die von Looker tatsächlich als Measure-Typen vom Typcount_distinctgerendert werden. Wie auf der Dokumentationsseite Aggregate Awareness beschrieben, rendert Lookercount-Messwerte alscount_distinct, um Fehlberechnungen bei Fanouts in Explores zu vermeiden, die mehrere Datenbanktabellen verknüpfen.
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 Näherungswerte zu aktivieren. Diese Measures können Sie dann in zusammengefasste Tabellen aufnehmen.
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 zusammengefassten Tabelle übereinstimmen, kann Looker genaue Daten für unterschiedliche Zählungen liefern, ohne dass eine Schätzung erforderlich ist. In diesem Fall sehen Sie auf dem SQL-Tab des Explores, dass für die Aggregat-Awareness Measures für die Anzahl unterschiedlicher Werte verwendet werden, ohne dass der HyperLogLog-Algorithmus zum Einsatz kommt.
Beispiel
Der in diesem Beispiel gezeigte Messwert apx_unique_count ist auf allow_approximate_optimization: yes festgelegt. Das bedeutet, dass der Messwert 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 unterschiedliche Zählungen mit aggregierter Erkennung
Looker kann eindeutige Zählungen für die aggregierte Erfassung mit Datenbankdialekten verwenden, die HyperLogLog-Skizzen unterstützen. In der aktuellen Version von Looker werden die folgenden SQL-Dialekte für eindeutige Zählungen 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 | |
| ClickHouse 26+ | |
| 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+ | |
| Dremio 26+ with Arrow Flight SQL | |
| 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 bei dieser Methode.