

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fungsi hyperloglog
<a name="hyperloglog-functions"></a>

Fungsi HyperLogLog (HLL) di SQL menyediakan cara untuk memperkirakan secara efisien jumlah elemen unik (kardinalitas) dalam kumpulan data besar, bahkan ketika kumpulan elemen unik yang sebenarnya tidak disimpan. 

Manfaat utama menggunakan fungsi HLL adalah:
+ **Efisiensi memori**: Sketsa HLL membutuhkan memori jauh lebih sedikit daripada menyimpan set lengkap elemen unik, membuatnya cocok untuk kumpulan data besar.
+ **Komputasi terdistribusi**: Sketsa HLL dapat digabungkan di beberapa sumber data atau node pemrosesan, memungkinkan estimasi hitungan unik terdistribusi yang efisien.
+ **Hasil perkiraan**: HLL memberikan perkiraan estimasi hitungan unik, dengan trade-off yang dapat disetel antara akurasi dan penggunaan memori (melalui parameter presisi).

Fungsi-fungsi ini sangat berguna dalam skenario di mana Anda perlu memperkirakan jumlah item unik, seperti dalam analitik, pergudangan data, dan aplikasi pemrosesan aliran waktu nyata.

AWS Clean Rooms mendukung fungsi HLL berikut.

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

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

Fungsi agregat HLL\$1SKETCH\$1AGG membuat sketsa HLL dari nilai-nilai di kolom yang ditentukan. Ia mengembalikan tipe data HLLSKETCH yang merangkum nilai ekspresi input. 

Fungsi agregat HLL\$1SKETCH\$1AGG bekerja dengan tipe data apa pun dan mengabaikan nilai NULL. 

Ketika tidak ada baris dalam tabel atau semua baris adalah NULL, sketsa yang dihasilkan tidak memiliki pasangan nilai indeks seperti. `{"version":1,"logm":15,"sparse":{"indices":[],"values":[]}}`

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

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

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

 *aggregate\$1expression*   
Setiap ekspresi tipe INT, BIGINT, STRING, atau BINARY yang dengannya penghitungan unik akan terjadi. `NULL`Nilai apa pun diabaikan.

*LGConfigk*  
Konstanta INT opsional antara 4 dan 21 inklusif dengan default 12. Log-base-2 dari K, di mana K adalah jumlah ember atau slot untuk sketsa.

## Jenis pengembalian
<a name="HLL_SKETCH_AGG-return-type"></a>

Fungsi HLL\$1SKETCH\$1AGG mengembalikan buffer BINARY non-NULL yang berisi HyperLogLog sketsa yang dihitung karena mengkonsumsi dan menggabungkan semua nilai input dalam grup agregasi.

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

Contoh berikut menggunakan algoritma HyperLogLog (HLL) untuk memperkirakan jumlah nilai yang berbeda dalam `col` kolom. `hll_sketch_agg(col, 12)`Fungsi agregat nilai-nilai dalam kolom col, membuat sketsa HLL menggunakan presisi 12. `hll_sketch_estimate()`Fungsi ini kemudian digunakan untuk memperkirakan jumlah nilai yang berbeda berdasarkan sketsa HLL yang dihasilkan. Hasil akhir dari kueri adalah 3, yang mewakili perkiraan jumlah nilai yang berbeda di `col` kolom. Dalam hal ini, nilai yang berbeda adalah 1, 2, dan 3. 

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

Contoh berikut juga menggunakan algoritma HLL untuk memperkirakan jumlah nilai yang berbeda di `col` kolom, tetapi tidak menentukan nilai presisi untuk sketsa HLL. Dalam hal ini, ia menggunakan presisi default 14. `hll_sketch_agg(col)`Fungsi mengambil nilai-nilai dalam `col` kolom dan membuat sketsa HyperLogLog (HLL), yang merupakan struktur data kompak yang dapat digunakan untuk memperkirakan jumlah elemen yang berbeda. `hll_sketch_estimate(hll_sketch_agg(col))`Fungsi ini mengambil sketsa HLL yang dibuat pada langkah sebelumnya dan menghitung perkiraan jumlah nilai yang berbeda di kolom. `col` Hasil akhir dari kueri adalah 3, yang mewakili perkiraan jumlah nilai yang berbeda di `col` kolom. Dalam hal ini, nilai yang berbeda adalah 1, 2, dan 3. 

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

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

Fungsi HLL\$1SKETCH\$1ESTIMATE mengambil sketsa HLL dan memperkirakan jumlah elemen unik yang diwakili oleh sketsa. Ini menggunakan algoritma HyperLogLog (HLL) untuk menghitung perkiraan probabilistik dari jumlah nilai unik dalam kolom tertentu, menggunakan representasi biner yang dikenal sebagai buffer sketsa yang sebelumnya dihasilkan oleh fungsi HLL\$1SKETCH\$1AGG dan mengembalikan hasilnya sebagai bilangan bulat besar. 

Algoritma sketsa HLL menyediakan cara yang efisien untuk memperkirakan jumlah elemen unik, bahkan untuk kumpulan data besar, tanpa harus menyimpan set lengkap nilai unik.

`hll_union_agg`Fungsi `hll_union` dan juga dapat menggabungkan sketsa bersama-sama dengan mengkonsumsi dan menggabungkan buffer ini sebagai input.

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

```
HLL_SKETCH_ESTIMATE (hllsketch_expression)
```

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

 *hllsketch\$1expression*   
`BINARY`Ekspresi yang memegang sketsa yang dihasilkan oleh HLL\$1SKETCH\$1AGG

## Jenis pengembalian
<a name="HLL_SKETCH_ESTIMATE-return-type"></a>

Fungsi HLL\$1SKETCH\$1ESTIMATE mengembalikan nilai BIGINT yang merupakan perkiraan jumlah berbeda yang diwakili oleh sketsa masukan.

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

Contoh berikut menggunakan algoritma sketsa HyperLogLog (HLL) untuk memperkirakan kardinalitas (jumlah unik) nilai dalam kolom. `col` `hll_sketch_agg(col, 12)`Fungsi mengambil `col` kolom dan membuat sketsa HLL menggunakan presisi 12 bit. Sketsa HLL adalah struktur data perkiraan yang dapat secara efisien memperkirakan jumlah elemen unik dalam satu set. `hll_sketch_estimate()`Fungsi mengambil sketsa HLL yang dibuat oleh `hll_sketch_agg` dan memperkirakan kardinalitas (jumlah unik) dari nilai yang diwakili oleh sketsa. `FROM VALUES (1), (1), (2), (2), (3) tab(col);`Menghasilkan dataset uji dengan 5 baris, di mana `col` kolom berisi nilai 1, 1, 2, 2, dan 3. Hasil dari kueri ini adalah perkiraan jumlah unik dari nilai-nilai di `col` kolom, yaitu 3.

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

Perbedaan antara contoh berikut dan yang sebelumnya adalah bahwa parameter presisi (12 bit) tidak ditentukan dalam panggilan `hll_sketch_agg` fungsi. Dalam hal ini, presisi default 14 bit digunakan, yang dapat memberikan perkiraan yang lebih akurat untuk hitungan unik dibandingkan dengan contoh sebelumnya yang menggunakan 12 bit presisi.

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

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

Fungsi HLL\$1UNION menggabungkan dua sketsa HLL menjadi satu sketsa terpadu. Ini menggunakan algoritma HyperLogLog (HLL) untuk menggabungkan dua sketsa menjadi satu sketsa. Kueri dapat menggunakan buffer yang dihasilkan untuk menghitung perkiraan jumlah unik sebagai bilangan bulat panjang dengan fungsi tersebut. `hll_sketch_estimate`

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

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

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

 *ExPRN*   
`BINARY`Ekspresi yang memegang sketsa yang dihasilkan oleh HLL\$1SKETCH\$1AGG.

*allowDifferentLgConfigK*  
Ekspresi BOOLEAN opsional yang mengontrol apakah akan mengizinkan penggabungan dua sketsa dengan nilai LGConfigk yang berbeda. Nilai default-nya adalah `false`.

## Jenis pengembalian
<a name="HLL_UNION-return-type"></a>

Fungsi HLL\$1UNION mengembalikan buffer BINARY yang berisi HyperLogLog sketsa dihitung sebagai hasil dari menggabungkan ekspresi input. Ketika `allowDifferentLgConfigK` parameternya`true`, sketsa hasil menggunakan yang lebih kecil dari dua `lgConfigK` nilai yang disediakan.

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

Contoh berikut menggunakan algoritma sketsa HyperLogLog (HLL) untuk memperkirakan jumlah nilai unik di dua kolom, `col1` dan`col2`, dalam kumpulan data.

 `hll_sketch_agg(col1)`Fungsi ini membuat sketsa HLL untuk nilai unik di kolom. `col1` 

`hll_sketch_agg(col2)`Fungsi ini membuat sketsa HLL untuk nilai unik di kolom col2. 

`hll_union(...)`Fungsi ini menggabungkan dua sketsa HLL yang dibuat dalam langkah 1 dan 2 menjadi satu sketsa HLL terpadu.

`hll_sketch_estimate(...)`Fungsi ini mengambil sketsa HLL gabungan dan memperkirakan jumlah nilai unik di keduanya `col1` dan. `col2`

`FROM VALUES`Klausa menghasilkan kumpulan data uji dengan 5 baris, yang `col1` berisi nilai 1, 1, 2, 2, dan 3, dan `col2` berisi nilai 4, 4, 5, 5, dan 6. 

Hasil dari kueri ini adalah perkiraan jumlah nilai unik di keduanya `col1` dan`col2`, yaitu 6. Algoritma sketsa HLL menyediakan cara yang efisien untuk memperkirakan jumlah elemen unik, bahkan untuk kumpulan data besar, tanpa harus menyimpan set lengkap nilai unik. Dalam contoh ini, `hll_union` fungsi ini digunakan untuk menggabungkan sketsa HLL dari dua kolom, yang memungkinkan hitungan unik diperkirakan di seluruh kumpulan data, bukan hanya untuk setiap kolom satu per satu.

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

Perbedaan antara contoh berikut dan yang sebelumnya adalah bahwa parameter presisi (12 bit) tidak ditentukan dalam panggilan `hll_sketch_agg` fungsi. Dalam hal ini, presisi default 14 bit digunakan, yang dapat memberikan perkiraan yang lebih akurat untuk hitungan unik dibandingkan dengan contoh sebelumnya yang menggunakan 12 bit presisi.

```
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);
```

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

Fungsi HLL\$1UNION\$1AGG menggabungkan beberapa sketsa HLL menjadi satu sketsa terpadu. Ini menggunakan algoritma HyperLogLog (HLL) untuk menggabungkan sekelompok sketsa menjadi satu. Kueri dapat menggunakan buffer yang dihasilkan untuk menghitung perkiraan jumlah unik dengan fungsi tersebut. `hll_sketch_estimate`

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

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

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

 *expr*   
`BINARY`Ekspresi yang memegang sketsa yang dihasilkan oleh HLL\$1SKETCH\$1AGG.

*allowDifferentLgConfigK*  
Ekspresi BOOLEAN opsional yang mengontrol apakah akan mengizinkan penggabungan dua sketsa dengan nilai LGConfigk yang berbeda. Nilai default-nya adalah `false`.

## Jenis pengembalian
<a name="HLL_UNION_AGG-return-type"></a>

Fungsi HLL\$1UNION\$1AGG mengembalikan buffer BINARY yang berisi HyperLogLog sketsa dihitung sebagai hasil dari menggabungkan ekspresi masukan dari grup yang sama. Ketika `allowDifferentLgConfigK` parameternya`true`, sketsa hasil menggunakan yang lebih kecil dari dua `lgConfigK` nilai yang disediakan.

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

Contoh berikut menggunakan algoritma sketsa HyperLogLog (HLL) untuk memperkirakan jumlah nilai unik di beberapa sketsa HLL.

Contoh pertama memperkirakan jumlah unik nilai dalam kumpulan data.

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

Kueri bagian dalam membuat dua sketsa HLL:
+ Pernyataan SELECT pertama membuat sketsa dari satu nilai 1. 
+ Pernyataan SELECT kedua membuat sketsa dari nilai tunggal lain dari 1, tetapi dengan presisi 20. 

Kueri luar menggunakan fungsi HLL\$1UNION\$1AGG untuk menggabungkan dua sketsa menjadi sketsa tunggal. Kemudian menerapkan fungsi HLL\$1SKETCH\$1ESTIMATE ke sketsa gabungan ini untuk memperkirakan jumlah nilai yang unik.

Hasil dari kueri ini adalah perkiraan jumlah unik dari nilai-nilai di `col` kolom, yaitu`1`. Ini berarti bahwa dua nilai input dari 1 dianggap unik, meskipun mereka memiliki nilai yang sama.

Contoh kedua mencakup parameter presisi yang berbeda untuk fungsi HLL\$1UNION\$1AGG. Dalam hal ini, kedua sketsa HLL dibuat dengan presisi 14 bit, yang memungkinkan mereka untuk berhasil `hll_union_agg` digabungkan menggunakan parameter. `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
```

Hasil akhir dari kueri adalah perkiraan jumlah unik, yang dalam hal ini juga`1`. Ini berarti bahwa dua nilai input dari 1 dianggap unik, meskipun mereka memiliki nilai yang sama.