Uso de bocetos de HyperLogLog en Amazon Redshift - Amazon Redshift

Uso de bocetos de HyperLogLog en Amazon Redshift

HyperLogLog es un algoritmo que se utiliza para estimar la cardinalidad de un conjunto múltiple. Cardinalidad se refiere al número de valores distintos en un conjunto múltiple. Por ejemplo, en el conjunto de {4,3,6,2,2,6,4,3,6,2,2,3}, la cardinalidad es 4 con valores distintos de 4, 3, 6 y 2.

La precisión del algoritmo HyperLogLog (que también se conoce como valor m) puede afectar la precisión de la cardinalidad estimada. Durante la estimación de la cardinalidad, Amazon Redshift utiliza un valor de precisión predeterminado de 15. Este valor puede ser de hasta 26 para conjuntos de datos más pequeños. Por lo tanto, el error relativo promedio oscila entre 0,01 y 0,6 %.

Al calcular la cardinalidad de un conjunto múltiple, el algoritmo HyperLogLog genera una construcción denominada boceto HLL. Un boceto HLL encapsula información sobre los valores distintos en un conjunto múltiple. El tipo de datos de Amazon Redshift HLLSKETCH representa dichos valores de boceto. Este tipo de datos se puede utilizar para almacenar bocetos en una tabla de Amazon Redshift. Además, Amazon Redshift es compatible con operaciones que se pueden aplicar a valores HLLSKETCH como funciones de agrupación y escalares. Puede utilizar estas funciones para extraer la cardinalidad de un HLLSKETCH y combinar varios valores HLLSKETCH.

El tipo de datos HLLSKETCH ofrece importantes beneficios de rendimiento de la consulta al extraer la cardinalidad de conjuntos de datos grandes. Puede agrupar previamente estos conjuntos de datos utilizando valores HLLSKETCH y almacenarlos en tablas. Amazon Redshift puede extraer la cardinalidad de manera directa de los valores HLLSKETCH almacenados sin acceder a los conjuntos de datos subyacentes.

Al procesar bocetos HLL, Amazon Redshift realiza optimizaciones que minimizan la huella de memoria del boceto y maximizan la precisión de la cardinalidad extraída. Amazon Redshift utiliza dos representaciones para bocetos HLL, dispersos y densos. Un HLLSKETCH comienza en formato disperso. A medida que se insertan nuevos valores en él, su tamaño aumenta. Una vez que su tamaño alcance el de la representación densa, Amazon Redshift convierte automáticamente el boceto de disperso a denso.

Amazon Redshift importa, exporta e imprime un HLLSKETCH como JSON cuando el boceto tiene un formato disperso. Amazon Redshift importa, exporta e imprime un HLLSKETCH como cadena Base64 cuando el boceto tiene un formato denso. Para obtener más información sobre UNLOAD, consulte Descarga del tipo de datos HLLSKETCH. Para importar datos de valores separados por comas (CSV) o texto en Amazon Redshift, utilice el comando COPY. Para obtener más información, consulte Carga del tipo de datos HLLSKETCH.

Para obtener información acerca de las funciones utilizadas con HyperLogLog, consulte Funciones HyperLogLog.