Uso
measure: field_name {
allow_aproximate_optimization: sí
}
}
Jerarquía
allow_approximate_optimization |
Tipos de campos posibles
MedirValor predeterminado
no Acepta
Un valor booleano (sí o no) |
Definición
Para los dialectos que admiten bocetos de HyperLogLog, Looker puede aprovechar el algoritmo HyperLogLog a fin de aproximar distintas cantidades para tablas agregadas.
La declaración allow_approximate_optimization: yes
permite que Looker almacene bocetos de HyperLogLog en tablas conjuntas, lo que significa que Looker puede usar aproximaciones para recuentos diferentes a fin de conocer en conjunto.
Consulta la sección Compatibilidad de dialectos para diferentes recuentos con reconocimiento agregado en esta página a fin de obtener la lista de dialectos que admiten recuentos distintos para tablas de agregación con bocetos de HyperLogLog.
En general, los recuentos distintos no pueden admitirse mediante el reconocimiento agregado, ya que no puedes obtener datos precisos si intentas agregar recuentos distintos. Por ejemplo, si cuenta los distintos usuarios de un sitio web, puede haber un usuario que llegó al sitio dos veces, con tres semanas de diferencia. Si intentó aplicar una tabla agregada semanal para obtener un recuento mensual de los distintos usuarios de su sitio web, ese usuario se registrará dos veces en su consulta de recuento distinto mensual y los datos serán incorrectos.
Una solución alternativa para esto es crear una tabla agregada que coincida exactamente con una búsqueda de Explorar, como se describe en la página de documentación Conocimiento total. Cuando la consulta de exploración y una consulta de tabla agregada son iguales, las distintas medidas de recuento proporcionan datos precisos, por lo que se pueden usar para el reconocimiento agregado.
La otra opción es utilizar aproximaciones para recuentos distintos. Se sabe que el algoritmo HyperLogLog tiene alrededor de un 2% de errores potenciales. El parámetro allow_approximate_optimization
requiere que los desarrolladores de Looker reconozcan que está bien usar los datos aproximados para que la medida se pueda calcular a partir de tablas agregadas.
Con el conocimiento agregado, existen dos casos en los que entran en juego diferentes recuentos:
- El primer caso es con medidas de
type: count_distinct
. - El segundo caso corresponde a las mediciones de
type: count
que Looker procesa como tipos de medicióncount_distinct
. Como se analizó en la página de documentación Conocimiento total, Looker renderiza medidascount
comocount_distinct
para evitar errores de distribución en las exploraciones que se unen a varias tablas de base de datos.
En ambos casos, si tu dialecto admite esbozos de HyperLogLog, puedes agregar la sentencia allow_approximate_optimization: yes
a las medidas para habilitar valores aproximados. Luego, puedes incluir estas medidas en las tablas conjuntas.
Incluso para las medidas definidas con
allow_approximate_optimization: yes
, Looker mostrará datos exactos cuando sea posible. Por ejemplo, si las dimensiones de una consulta de exploración son la coincidencia perfecta de las dimensiones de una tabla agregada, Looker puede proporcionar datos exactos para recuentos distintos, sin tener que aproximarse. En este caso, verá en la pestaña SQL de Explorar que se están usando distintas medidas de conteo para el reconocimiento total sin utilizar el algoritmo HyperLogLog.
Ejemplo
La medida apx_unique_count
que se muestra en este ejemplo se establece para allow_approximate_optimization: yes
, lo que significa que la medida se puede usar en un aggregate_table
.
measure: apx_unique_count {
type: count_distinct
allow_approximate_optimization: yes # default value is no
sql: ${id} ;;
}
Compatibilidad telefónica para distintos recuentos con reconocimiento agregado
Looker puede usar recuentos distintos para usar el reconocimiento total con dialectos de base de datos que admitan esbozos de HyperLogLog. En la versión más reciente de Looker, se admiten los siguientes dialectos de SQL para recuentos distintos con reconocimiento agregado:
Consulta la documentación de tu dialecto SQL para comprender las ventajas y desventajas de este método.