Kategorien:

Aggregatfunktionen (Cardinality Estimation) , Syntax und Verwendung von Fensterfunktionen

DATASKETCHES_HLL_COMBINE

Kombiniert (verschmilzt) Eingabeskizzen zu einer einzigen Ausgabeskizze.

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.

Diese Funktion ermöglicht Szenarien, in denen die Funktion DATASKETCHES_HLL_ACCUMULATE über horizontale Partitionen derselben Tabelle ausgeführt wird und eine Algorithmus-Skizze für jede Tabellenpartition erzeugt. Diese Skizzen können später mit dieser Funktion kombiniert werden und erzeugen dieselbe Ausgabe-Skizze wie ein einziger Durchlauf von DATASKETCHES_HLL_ACCUMULATE über die gesamte Tabelle.

Siehe auch:

DATASKETCHES_HLL_ACCUMULATE

Syntax

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

Erforderliche Argumente

state

Ein Ausdruck, der Statusinformationen enthält, die durch einen Aufruf von DATASKETCHES_HLL_ACCUMULATE generiert wurden.

Optionale Argumente

max_log_k

Der maximale Wert von K in log2 für diese Vereinigung. Geben Sie einen INTEGER-Wert zwischen 4 und 21 ein. Weitere Informationen finden Sie in der Dokumentation zu Apache DataSketches.

Standardeinstellung: 12

Rückgabewerte

Die Funktion gibt einen BINARY-Wert zurück, der mit der Apache Datasketches-Bibliothek kompatibel ist.

Nutzungshinweise

DISTINCT wird unterstützt, hat aber keine Auswirkungen.

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

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.

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 |
+--------------------------------------------------+

Sie können die Werte der akkumulierten Skizzen im Beispiel unter DATASKETCHES_HLL_ACCUMULATE sehen.