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> )
Copy

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;
Copy

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:

  1. Die Funktion DATASKETCHES_HLL_ACCUMULATE erstellt zwei binäre Skizzen für die Daten in Spalte v, gruppiert nach den Werten 1 und 2 in Spalte g.

  2. 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;
Copy
+---+----------------------+
| 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:

  1. Die Funktion DATASKETCHES_HLL_ACCUMULATE erstellt zwei binäre Skizzen für die Daten in Spalte v, gruppiert nach den Werten 1 und 2 in Spalte g.

  2. Die Funktion DATASKETCHES_HLL_COMBINE kombiniert diese binären Skizzen, um sie zu vereinheitlichen.

  3. 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;
Copy
+------------------+
| UNIFIED_ESTIMATE |
|------------------|
|       4.00000003 |
+------------------+

Sie können den Wert der kombinierten Skizzen im Beispiel in DATASKETCHES_HLL_COMBINE sehen.