Catégories :

Fonctions d’agrégation (Cardinality Estimation) , Syntaxe et utilisation des fonctions de fenêtre

DATASKETCHES_HLL_COMBINE

Combine (fusionne) les esquisses d’entrée en une seule esquisse de sortie.

Cette fonction est une version de la fonction HLL HyperLogLog qui peut lire des esquisses binaires dans le format utilisé par Apache DataSketches. Pour plus d’informations, consultez la documentation Apache DataSketches.

Cette fonction permet des scénarios dans lesquels la fonction DATASKETCHES_HLL_ACCUMULATE est exécutée sur des partitions horizontales de la même table, produisant une esquisse d’algorithme pour chaque partition de la table. Ces esquisses peuvent ensuite être combinées à l’aide de cette fonction, produisant la même sortie qu’une seule exécution de DATASKETCHES_HLL_ACCUMULATE sur la table entière.

Voir aussi :

DATASKETCHES_HLL_ACCUMULATE

Syntaxe

DATASKETCHES_HLL_COMBINE( [ DISTINCT ]  <state> [ , <max_log_k> ] )
Copy

Arguments obligatoires

state

Expression contenant des informations d’état générées par un appel à DATASKETCHES_HLL_ACCUMULATE.

Arguments facultatifs

max_log_k

La valeur maximale, en log2, de K pour cette union. Spécifiez une valeur INTEGER comprise entre 4 et 21 inclus. Pour plus d’informations, consultez la documentation Apache DataSketches.

Par défaut : 12

Renvoie

La fonction renvoie une valeur BINARY compatible avec la bibliothèque Apache Datasketches.

Notes sur l’utilisation

DISTINCT est pris en charge syntaxiquement, mais n’a aucun effet.

Exemples

Créer une table et insérer des valeurs :

CREATE OR REPLACE TABLE datasketches_demo(v INT, g INT);

INSERT INTO datasketches_demo SELECT 1, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 2, 1;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 1, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 4, 2;
INSERT INTO datasketches_demo SELECT 5, 2;
Copy

L’exemple ci-dessous effectue les actions suivantes :

  1. La fonction DATASKETCHES_HLL_ACCUMULATE crée deux esquisses binaires pour les données de la colonne v, regroupées par les valeurs 1 et 2 dans la colonne g.

  2. La fonction DATASKETCHES_HLL_COMBINE combine ces esquisses binaires.

WITH
  accumulated AS (
    SELECT g,
           DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
      FROM datasketches_demo
      GROUP BY g)
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS combined_sketches
  FROM accumulated;
Copy
+--------------------------------------------------+
| COMBINED_SKETCHES                                |
|--------------------------------------------------|
| 0201070C030804002BF2FB06862FF90D81BC5D067B65E608 |
+--------------------------------------------------+

Vous pouvez voir les valeurs des esquisses accumulées dans l’exemple de DATASKETCHES_HLL_ACCUMULATE.