La fonction HLL_COUNT_MERGE_PARTIAL accepte un ou plusieurs sketches HyperLogLog++ (HLL++) en entrée et fusionne les sketches de même classe de stockage pour former un nouveau sketch.
Notes
HLL_COUNT_EXTRACT/HLL_COUNT_MERGE/HLL_COUNT_MERGE_PARTIAL Les données BINARY utilisées par ces fonctions doivent provenir exclusivement de la fonction HLL_COUNT_INIT ; elles ne peuvent pas être issues d'autres systèmes ou méthodes.
Syntaxe
BINARY HLL_COUNT_MERGE_PARTIAL(BINARY <sketch>)
Paramètres
sketch : Obligatoire. Valeur BINARY représentant un sketch HLL++ généré par la fonction HLL_COUNT_INIT.
Toutes les valeurs sketch en entrée doivent être initialisées avec le même type de données. Le système renvoie une erreur si vous tentez de fusionner des sketches de types différents. Par exemple, il est impossible de fusionner des sketches générés à partir de données BIGINT avec des sketches générés à partir de données STRING.
Si vous fusionnez des objets sketch ayant des précisions différentes, la précision est abaissée au niveau le plus faible parmi les sketches fusionnés. Par exemple, si vous fusionnez des objets sketch dont les précisions sont 14 et 15, un nouveau sketch avec une précision de 14 est renvoyé.
Valeur de retour
Renvoie un nouveau sketch de type BINARY. Si l'entrée est NULL, la valeur NULL est renvoyée.
Exemple
La requête suivante renvoie un sketch HLL++ qui compte le nombre d'utilisateurs distincts disposant d'au moins une facture, tous pays confondus.
SELECT HLL_COUNT_MERGE_PARTIAL(HLL_sketch) AS distinct_customers_with_open_invoice
FROM
(
SELECT
country,
HLL_COUNT_INIT(customer_id) AS hll_sketch
FROM values
('UA', 'customer_id_1', 'invoice_id_11'),
('BR', 'customer_id_3', 'invoice_id_31'),
('CZ', 'customer_id_2', 'invoice_id_22'),
('CZ', 'customer_id_2', 'invoice_id_23'),
('BR', 'customer_id_3', 'invoice_id_31'),
('UA', 'customer_id_2', 'invoice_id_24')
t(country, customer_id, invoice_id)
GROUP BY country
);
Le résultat suivant est renvoyé :
+--------------------------------------+
| distinct_customers_with_open_invoice |
+--------------------------------------+
| =02=01=0F=00=03=00=00=00=20s=8E=00=F0=8B=DD=00=98_$=03 |
+--------------------------------------+
Fonctions associées
HLL_COUNT_MERGE_PARTIAL est une fonction HyperLogLog++. MaxCompute propose une série de fonctions HyperLogLog++ pour l'agrégation approximative. Pour plus d'informations, consultez la rubrique Présentation des fonctions HyperLogLog++.