- Kategorien:
Aggregatfunktionen (Cardinality Estimation) , Syntax und Verwendung von Fensterfunktionen
DATASKETCHES_HLL_ESTIMATE¶
Gibt die Kardinalitätsschätzung für die angegebene Skizze zurück.
Diese Funktion ist eine Version der Funktion HLL HyperLogLog, die binäre Skizzen in dem von Apache DataSketches verwendeten Format lesen kann. Weitere Informationen finden Sie in der Dokumentation zu Apache DataSketches.
Eine mit der Funktion DATASKETCHES_HLL_COMBINE erstellte Skizze kann verwendet werden, um mit der Funktion DATASKETCHES_HLL_ESTIMATE eine Kardinalitätsschätzung zu berechnen.
Syntax¶
DATASKETCHES_HLL_ESTIMATE( <binary_sketch> )
Argumente¶
binary_sketch
Ein Ausdruck, der Skizzeninformationen im Binärformat enthält.
Rückgabewerte¶
Die Funktion gibt einen Wert vom Typ DOUBLE zurück.
Wenn die Eingabe leer ist, lautet die Ausgabe 0.0
.
Bemerkung
Diese Funktion gibt einen Wert eines anderen Typs zurück als die Funktion HLL_ESTIMATE, die einen INTEGER-Wert zurückgibt.
Beispiele¶
Erstellen Sie eine Tabelle, und fügen Sie Zeilen ein:
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;
Die folgenden Beispiele verwenden die Daten aus der Tabelle.
Kardinalitätsschätzung für kumulierte binäre Skizzen zurückgeben¶
Das folgende Beispiel führt die folgenden Aktionen aus:
Die Funktion DATASKETCHES_HLL_ACCUMULATE erstellt zwei binäre Skizzen für die Daten in Spalte
v
, gruppiert nach den Werten1
und2
in Spalteg
.Die Funktion DATASKETCHES_HLL_ESTIMATE gibt die Kardinalitätsschätzung für jede kumulierte Skizze zurück.
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g)
SELECT g, DATASKETCHES_HLL_ESTIMATE(accumulated_sketches) AS accumulated_estimate
FROM accumulated;
+---+----------------------+
| G | ACCUMULATED_ESTIMATE |
|---+----------------------|
| 1 | 2.000000005 |
| 2 | 3.000000015 |
+---+----------------------+
Sie können die Werte der akkumulierten Skizzen im Beispiel unter DATASKETCHES_HLL_ACCUMULATE sehen.
Kardinalitätsschätzung für kombinierte binäre Skizzen zurückgeben¶
Das folgende Beispiel führt die folgenden Aktionen aus:
Die Funktion DATASKETCHES_HLL_ACCUMULATE erstellt zwei binäre Skizzen für die Daten in Spalte
v
, gruppiert nach den Werten1
und2
in Spalteg
.Die Funktion DATASKETCHES_HLL_COMBINE kombiniert diese binären Skizzen, um sie zu vereinheitlichen.
Die Funktion DATASKETCHES_HLL_ESTIMATE gibt die Kardinalitätsschätzung für die vereinheitlichte Skizze zurück.
WITH
accumulated AS (
SELECT g,
DATASKETCHES_HLL_ACCUMULATE(v) AS accumulated_sketches
FROM datasketches_demo
GROUP BY g),
combined AS (
SELECT DATASKETCHES_HLL_COMBINE(accumulated_sketches) AS unified
FROM accumulated)
SELECT DATASKETCHES_HLL_ESTIMATE(unified) AS unified_estimate
FROM combined;
+------------------+
| UNIFIED_ESTIMATE |
|------------------|
| 4.00000003 |
+------------------+
Sie können den Wert der kombinierten Skizzen im Beispiel in DATASKETCHES_HLL_COMBINE sehen.