HyperLogLog croquis - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. Pour plus d'informations, consultez le billet de blog.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

HyperLogLog croquis

Cette rubrique explique comment utiliser les HyperLogLog esquisses dans Amazon Redshift. HyperLogLog est un algorithme pour le problème du nombre distinct, qui donne une approximation du nombre d'éléments distincts dans un ensemble de données. HyperLogLog les esquisses sont des tableaux de données d'unicité concernant un ensemble de données.

HyperLogLogest un algorithme utilisé pour estimer la cardinalité d'un multiset. La cardinalité fait référence au nombre de valeurs distinctes dans un multi-ensemble. Par exemple, dans l'ensemble {4,3,6,2,2,6,4,3,6,2,2,3}, la cardinalité est 4 et les valeurs représentées sont 4, 3, 6 et 2.

La précision de l' HyperLogLog algorithme (également appelée valeur m) peut affecter la précision de la cardinalité estimée. Pour estimer la cardinalité, Amazon Redshift utilise une valeur de précision par défaut de 15. Cette valeur peut aller jusqu'à 26 pour les jeux de données plus petits. Ainsi, l'erreur relative moyenne se situe entre 0,01 et 0,6 %.

Lors du calcul de la cardinalité d'un multiensemble, l' HyperLogLog algorithme génère une construction appelée esquisse HLL. Une esquisse HLL encapsule des informations sur les valeurs distinctes d'un multi-ensemble. Le type de données Amazon Redshift HLLSKETCH représente ces valeurs d'esquisse. Ce type de données peut être utilisé pour stocker des esquisses dans une table Amazon Redshift. De plus, Amazon Redshift prend en charge les opérations pouvant être appliquées aux valeurs HLLSKETCH en tant que fonctions d'agrégation et scalaires. Vous pouvez utiliser ces fonctions pour extraire la cardinalité d'un HLLSKETCH et combiner plusieurs valeurs HLLSKETCH.

Le type de données HLLSKETCH offre des avantages significatifs quant aux performances des requêtes lors de l'extraction de la cardinalité à partir de grands jeux de données. Vous pouvez pré-agréger ces jeux de données à l'aide des valeurs HLLSKETCH et les stocker dans des tables. Amazon Redshift peut extraire la cardinalité directement à partir des valeurs HLLSKETCH stockées sans accéder aux jeux de données sous-jacents.

Lors du traitement des esquisses HLL, Amazon Redshift effectue des optimisations qui minimisent l'empreinte mémoire de l'esquisse et maximisent la précision de la cardinalité extraite. Amazon Redshift utilise deux représentations pour les esquisses HLL : fragmentées et denses. Une HLLSKETCH démarre dans un format fragmenté. Sa taille augmente à mesure de l'insertion de nouvelles valeurs. Dès que la taille atteint celle de la représentation dense, Amazon Redshift convertit automatiquement l'esquisse du format fragmenté au format dense.

Amazon Redshift importe, exporte et imprime une HLLSKETCH au format JSON lorsque l'esquisse est dans un format fragmenté. Amazon Redshift importe, exporte et imprime une HLLSKETCH en tant que chaîne Base64 lorsque l'esquisse est dans un format dense. Pour plus d'informations sur la commande UNLOAD, consultez Déchargement du type de données HLLSKETCH. Pour importer du texte ou des données CSV dans Amazon Redshift, utilisez la commande COPY. Pour de plus amples informations, veuillez consulter Chargement du type de données HLLSKETCH.

Pour plus d'informations sur les fonctions utilisées avec HyperLogLog, consultezHyperLogLog fonctions.