

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Funzioni Hyperloglog
<a name="hyperloglog-functions"></a>

Le funzioni HyperLogLog (HLL) di SQL forniscono un modo per stimare in modo efficiente il numero di elementi unici (cardinalità) in un set di dati di grandi dimensioni, anche quando l'insieme effettivo di elementi unici non è archiviato. 

I principali vantaggi dell'utilizzo delle funzioni HLL sono:
+ **Efficienza della memoria**: gli schizzi HLL richiedono molta meno memoria rispetto all'archiviazione dell'intero set di elementi unici, il che li rende adatti a set di dati di grandi dimensioni.
+ **Calcolo distribuito**: gli schizzi HLL possono essere combinati su più fonti di dati o nodi di elaborazione, consentendo una stima efficiente e distribuita del conteggio.
+ **Risultati approssimativi**: HLL fornisce una stima approssimativa del conteggio univoca, con un compromesso regolabile tra precisione e utilizzo della memoria (tramite il parametro di precisione).

Queste funzioni sono particolarmente utili in scenari in cui è necessario stimare il numero di elementi unici, ad esempio nelle applicazioni di analisi, data warehousing e elaborazione di flussi in tempo reale.

AWS Clean Rooms supporta le seguenti funzioni HLL.

**Topics**
+ [funzione HLL\$1SKETCH\$1AGG](HLL_SKETCH_AGG.md)
+ [Funzione HLL\$1SKETCH\$1ESTIMATE](HLL_SKETCH_ESTIMATE.md)
+ [Funzione HLL\$1UNION](HLL_UNION.md)
+ [Funzione HLL\$1UNION\$1AGG](HLL_UNION_AGG.md)

# funzione HLL\$1SKETCH\$1AGG
<a name="HLL_SKETCH_AGG"></a>

La funzione di aggregazione HLL\$1SKETCH\$1AGG crea uno sketch HLL dai valori nella colonna specificata. Restituisce un tipo di dati HLLSKETCH che incapsula i valori delle espressioni di input. 

La funzione di aggregazione HLL\$1SKETCH\$1AGG funziona con qualsiasi tipo di dati e ignora i valori NULL. 

Quando non ci sono righe in una tabella o tutte le righe sono NULL, lo schizzo risultante non ha coppie indice-valore come `{"version":1,"logm":15,"sparse":{"indices":[],"values":[]}}`.

## Sintassi
<a name="HLL_SKETCH_AGG-synopsis"></a>

```
HLL_SKETCH_AGG (aggregate_expression[, lgConfigK ] )
```

## Argomento
<a name="HLL_SKETCH_AGG-argument"></a>

 *aggregate\$1expression*   
Qualsiasi espressione di tipo INT, BIGINT, STRING o BINARY rispetto alla quale verrà eseguito un conteggio univoco. Tutti i `NULL` valori vengono ignorati.

*LGConfigK*  
Una costante INT opzionale compresa tra 4 e 21 inclusi con 12 di default. Il log-base-2 di K, dove K è il numero di bucket o slot per lo schizzo.

## Tipo restituito
<a name="HLL_SKETCH_AGG-return-type"></a>

La funzione HLL\$1SKETCH\$1AGG restituisce un buffer BINARY non NULL contenente lo sketch calcolato poiché consuma e aggrega tutti i valori di input nel gruppo di aggregazione. HyperLogLog 

## Esempi
<a name="HLL_SKETCH_AGG-examples"></a>

Gli esempi seguenti utilizzano l'algoritmo HyperLogLog (HLL) per stimare il numero distinto di valori nella colonna. `col` La `hll_sketch_agg(col, 12)` funzione aggrega i valori nella colonna col, creando uno schizzo HLL con una precisione di 12. La `hll_sketch_estimate()` funzione viene quindi utilizzata per stimare il numero distinto di valori in base allo schizzo HLL generato. Il risultato finale della query è 3, che rappresenta il conteggio distinto stimato di valori nella `col` colonna. In questo caso, i valori distinti sono 1, 2 e 3. 

```
SELECT hll_sketch_estimate(hll_sketch_agg(col, 12))
    FROM VALUES (1), (1), (2), (2), (3) tab(col);
  3
```

L'esempio seguente utilizza anche l'algoritmo HLL per stimare il numero distinto di valori nella `col` colonna, ma non specifica un valore di precisione per lo sketch HLL. In questo caso, utilizza la precisione predefinita di 14. La `hll_sketch_agg(col)` funzione prende i valori nella `col` colonna e crea uno schizzo HyperLogLog (HLL), che è una struttura di dati compatta che può essere utilizzata per stimare il numero distinto di elementi. La `hll_sketch_estimate(hll_sketch_agg(col))` funzione utilizza lo schizzo HLL creato nel passaggio precedente e calcola una stima del numero distinto di valori nella colonna. `col` Il risultato finale della query è 3, che rappresenta il numero distinto stimato di valori nella colonna. `col` In questo caso, i valori distinti sono 1, 2 e 3. 

```
SELECT hll_sketch_estimate(hll_sketch_agg(col))
FROM VALUES (1), (1), (2), (2), (3) tab(col);
3
```

# Funzione HLL\$1SKETCH\$1ESTIMATE
<a name="HLL_SKETCH_ESTIMATE"></a>

La funzione HLL\$1SKETCH\$1ESTIMATE esegue uno schizzo HLL e stima il numero di elementi unici rappresentati dallo schizzo. Utilizza l'algoritmo HyperLogLog (HLL) per contare un'approssimazione probabilistica del numero di valori univoci in una determinata colonna, utilizzando una rappresentazione binaria nota come buffer di sketch generata in precedenza dalla funzione HLL\$1SKETCH\$1AGG e restituendo il risultato come un numero intero grande. 

L'algoritmo di disegno HLL fornisce un modo efficiente per stimare il numero di elementi unici, anche per set di dati di grandi dimensioni, senza dover memorizzare l'intero set di valori univoci.

Le `hll_union_agg` funzioni `hll_union` and possono anche combinare gli schizzi utilizzando e unendo questi buffer come input.

## Sintassi
<a name="HLL_SKETCH_ESTIMATE-synopsis"></a>

```
HLL_SKETCH_ESTIMATE (hllsketch_expression)
```

## Argomento
<a name="HLL_SKETCH_ESTIMATE-argument"></a>

 *hllsketch\$1expression*   
Un'`BINARY`espressione contenente uno schizzo generato da HLL\$1SKETCH\$1AGG

## Tipo restituito
<a name="HLL_SKETCH_ESTIMATE-return-type"></a>

La funzione HLL\$1SKETCH\$1ESTIMATE restituisce un valore BIGINT che è il conteggio distinto approssimativo rappresentato dallo schizzo di input.

## Esempi
<a name="HLL_SKETCH_ESTIMATE-examples"></a>

Gli esempi seguenti utilizzano l'algoritmo di disegno HyperLogLog (HLL) per stimare la cardinalità (conteggio univoco) dei valori nella colonna. `col` La `hll_sketch_agg(col, 12)` funzione prende la `col` colonna e crea uno schizzo HLL con una precisione di 12 bit. Lo sketch HLL è una struttura di dati approssimativa in grado di stimare in modo efficiente il numero di elementi unici in un set. La `hll_sketch_estimate()` funzione prende lo schizzo HLL creato da `hll_sketch_agg` e stima la cardinalità (conteggio univoco) dei valori rappresentati dallo schizzo. `FROM VALUES (1), (1), (2), (2), (3) tab(col);`Genera un set di dati di test con 5 righe, in cui la `col` colonna contiene i valori 1, 1, 2, 2 e 3. Il risultato di questa query è il conteggio univoco stimato dei valori nella `col` colonna, che è 3.

```
SELECT hll_sketch_estimate(hll_sketch_agg(col, 12))
    FROM VALUES (1), (1), (2), (2), (3) tab(col);
  3
```

La differenza tra l'esempio seguente e quello precedente è che il parametro di precisione (12 bit) non è specificato nella chiamata di `hll_sketch_agg` funzione. In questo caso, viene utilizzata la precisione predefinita di 14 bit, che può fornire una stima più accurata del conteggio unico rispetto all'esempio precedente che utilizzava 12 bit di precisione.

```
SELECT hll_sketch_estimate(hll_sketch_agg(col))
FROM VALUES (1), (1), (2), (2), (3) tab(col);
3
```

# Funzione HLL\$1UNION
<a name="HLL_UNION"></a>

La funzione HLL\$1UNION combina due schizzi HLL in un unico schizzo unificato. Utilizza l'algoritmo HyperLogLog (HLL) per combinare due schizzi in un unico schizzo. Le query possono utilizzare i buffer risultanti per calcolare conteggi univoci approssimativi sotto forma di numeri interi lunghi con la funzione. `hll_sketch_estimate`

## Sintassi
<a name="HLL_UNION-syntax"></a>

```
HLL_UNION (( expr1, expr2 [, allowDifferentLgConfigK ] ))
```

## Argomento
<a name="HLL_UNION-argument"></a>

 *Exprn*   
Un'`BINARY`espressione contenente uno schizzo generato da HLL\$1SKETCH\$1AGG.

*allowDifferentLgConfigK*  
Un'espressione BOOLEAN opzionale che controlla se consentire l'unione di due schizzi con valori LGConfigK diversi. Il valore predefinito è `false`.

## Tipo restituito
<a name="HLL_UNION-return-type"></a>

La funzione HLL\$1UNION restituisce un buffer BINARY contenente lo HyperLogLog schizzo calcolato come risultato della combinazione delle espressioni di input. Quando il `allowDifferentLgConfigK` parametro è`true`, lo schizzo del risultato utilizza il più piccolo dei due valori forniti. `lgConfigK`

## Esempi
<a name="HLL_UNION-examples"></a>

Gli esempi seguenti utilizzano l'algoritmo di disegno HyperLogLog (HLL) per stimare il conteggio univoco dei valori su due colonne `col1` e `col2` in un set di dati.

 La `hll_sketch_agg(col1)` funzione crea uno schizzo HLL per i valori univoci nella colonna. `col1` 

La `hll_sketch_agg(col2)` funzione crea uno schizzo HLL per i valori univoci nella colonna col2. 

La `hll_union(...)` funzione combina i due schizzi HLL creati nei passaggi 1 e 2 in un unico schizzo HLL unificato.

La `hll_sketch_estimate(...)` funzione utilizza lo schizzo HLL combinato e stima il conteggio univoco dei valori per entrambi e. `col1` `col2`

La `FROM VALUES` clausola genera un set di dati di test con 5 righe, dove `col1` contiene i valori 1, 1, 2, 2 e 3 e `col2` contiene i valori 4, 4, 5, 5 e 6. 

Il risultato di questa query è il conteggio unico stimato di valori per entrambi `col1` e`col2`, che è 6. L'algoritmo di disegno HLL offre un modo efficiente per stimare il numero di elementi unici, anche per set di dati di grandi dimensioni, senza dover memorizzare l'intero set di valori univoci. In questo esempio, la `hll_union` funzione viene utilizzata per combinare gli schizzi HLL delle due colonne, il che consente di stimare il conteggio univoco per l'intero set di dati, anziché solo per ogni colonna singolarmente.

```
SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1),
    hll_sketch_agg(col2)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
  6
```

La differenza tra l'esempio seguente e quello precedente è che il parametro di precisione (12 bit) non è specificato nella chiamata alla funzione. `hll_sketch_agg` In questo caso, viene utilizzata la precisione predefinita di 14 bit, che può fornire una stima più accurata del conteggio unico rispetto all'esempio precedente che utilizzava 12 bit di precisione.

```
SELECT hll_sketch_estimate(
  hll_union(
    hll_sketch_agg(col1, 14),
    hll_sketch_agg(col2, 14)))
  FROM VALUES
    (1, 4),
    (1, 4),
    (2, 5),
    (2, 5),
    (3, 6) AS tab(col1, col2);
```

# Funzione HLL\$1UNION\$1AGG
<a name="HLL_UNION_AGG"></a>

La funzione HLL\$1UNION\$1AGG combina più schizzi HLL in un unico schizzo unificato. Utilizza l'algoritmo HyperLogLog (HLL) per combinare un gruppo di schizzi in uno solo. Le query possono utilizzare i buffer risultanti per calcolare conteggi univoci approssimativi con la funzione. `hll_sketch_estimate`

## Sintassi
<a name="HLL_UNION_AGG-syntax"></a>

```
HLL_UNION_AGG ( expr [, allowDifferentLgConfigK ] )
```

## Argomento
<a name="HLL_UNION_AGG-argument"></a>

 *expr*   
Un'`BINARY`espressione contenente uno schizzo generato da HLL\$1SKETCH\$1AGG.

*allowDifferentLgConfigK*  
Un'espressione BOOLEAN opzionale che controlla se consentire l'unione di due schizzi con valori LGConfigK diversi. Il valore predefinito è `false`.

## Tipo restituito
<a name="HLL_UNION_AGG-return-type"></a>

La funzione HLL\$1UNION\$1AGG restituisce un buffer BINARY contenente lo HyperLogLog sketch calcolato come risultato della combinazione delle espressioni di input dello stesso gruppo. Quando il `allowDifferentLgConfigK` parametro è, lo schizzo del risultato utilizza il più `true` piccolo dei due valori forniti. `lgConfigK`

## Esempi
<a name="HLL_UNION_AGG-examples"></a>

I seguenti esempi utilizzano l'algoritmo di sketch HyperLogLog (HLL) per stimare il conteggio univoco dei valori su più schizzi HLL.

Il primo esempio stima il conteggio univoco dei valori in un set di dati.

```
SELECT hll_sketch_estimate(hll_union_agg(sketch, true))
    FROM (SELECT hll_sketch_agg(col) as sketch
            FROM VALUES (1) AS tab(col)
          UNION ALL
          SELECT hll_sketch_agg(col, 20) as sketch
            FROM VALUES (1) AS tab(col));
  1
```

L'interrogazione interna crea due sketch HLL:
+ La prima istruzione SELECT crea uno schizzo a partire da un singolo valore di 1. 
+ La seconda istruzione SELECT crea uno schizzo a partire da un altro valore singolo di 1, ma con una precisione di 20. 

La query esterna utilizza la funzione HLL\$1UNION\$1AGG per combinare i due schizzi in un unico schizzo. Quindi applica la funzione HLL\$1SKETCH\$1ESTIMATE a questo sketch combinato per stimare il conteggio univoco dei valori.

Il risultato di questa query è il conteggio univoco stimato dei valori nella colonna, che è. `col` `1` Ciò significa che i due valori di input pari a 1 sono considerati unici, anche se hanno lo stesso valore.

Il secondo esempio include un parametro di precisione diverso per la funzione HLL\$1UNION\$1AGG. In questo caso, entrambi gli schizzi HLL vengono creati con una precisione di 14 bit, il che consente di combinarli con successo utilizzando il parametro. `hll_union_agg` `true`

```
SELECT hll_sketch_estimate(hll_union_agg(sketch, true))
    FROM (SELECT hll_sketch_agg(col, 14) as sketch
            FROM VALUES (1) AS tab(col)
          UNION ALL
          SELECT hll_sketch_agg(col, 14) as sketch
            FROM VALUES (1) AS tab(col));
  1
```

Il risultato finale della query è il conteggio univoco stimato, che anche in questo caso è. `1` Ciò significa che i due valori di input pari a 1 sono considerati unici, anche se hanno lo stesso valore.