Tüm Ürünler
Search
Belge Merkezi

Simple Log Service:HyperLogLog işlevleri

Son Güncelleme:Sep 30, 2026

HyperLogLog işlevleri, approx_distinct işlevine benzer şekilde yaklaşık toplama işlevleridir. Büyük veri kümelerini analiz ederken hızlıca tahmini sonuçlar döndürür.

Aşağıdaki HyperLogLog işlevleri kullanılabilir.

Önemli

Analiz deyimlerinde dizeler kullanmak istiyorsanız dizeleri tek tırnak içine ('') almanız gerekir. Tek tırnak içine alınmamış veya çift tırnak ("") içine alınmış ifadeler alan adlarını veya sütun adlarını belirtir. Örneğin,

'status'

status dizesini belirtirken,

status

veya

"status"

status günlük alanını belirtir.


İşlev


Sözdizimi


Açıklama


SQL desteği


SPL desteği


approx_set işlevi


approx_set(x)

x içindeki farklı değerlerin sayısını tahmin eder. Varsayılan maksimum standart hata 0,01625'tir.


√


×


cardinality işlevi


cardinality(x)

Bir HyperLogLog değerini bigint değerine dönüştürür.


√


×


empty_approx_set işlevi


empty_approx_set()

Boş bir HyperLogLog kümesi döndürür. Varsayılan maksimum standart hata 0,01625'tir.


√


×


merge işlevi


merge(x)

Birden çok HyperLogLog kümesini tek bir kümede birleştirir.


√


×

approx_set işlevi

approx_set işlevi, x içindeki farklı değerlerin sayısını tahmin eder. Varsayılan maksimum standart hata 0,01625'tir.

Syntax

approx_set(x)

Parameters


Parametre


Açıklama


x

Herhangi bir veri türünde ifade.

Return value type

HyperLogLog

Examples

Bir web sitesi için dakika başına benzersiz ziyaretçi (UV) sayısını tahmin edin. Sonuç HyperLogLog biçimindedir.

  • Sorgu ve analiz deyimi

    * |
    SELECT
      date_trunc('minute', __time__) AS Time,
      approx_set(client_ip) AS UV
    FROM  website_log
    GROUP BY
      Time
    ORDER BY
      Time
  • Sorgu ve analiz sonuçları: Time (dakikaya yuvarlanmış zaman damgası) ve UV (approx_set işlevinden elde edilen kodlanmış yaklaşık küme) döndürür. Toplam: 16 kayıt.

cardinality işlevi

cardinality işlevi, bir HyperLogLog değerini bigint değerine dönüştürür.

Syntax

cardinality(x)

Parameters


Parametre


Açıklama


x

Bir HyperLogLog ifadesi.

Return value type

bigint

Examples

Dakika başına UV'leri tahmin etmek için approx_set işlevini (bir HyperLogLog değeri döndürür) kullanın, ardından bu değeri bigint'e dönüştürmek için cardinality işlevini kullanın.

  • Sorgu ve analiz deyimi

    * |
    SELECT
      Time,
      cardinality(UV) AS UV
    FROM  (
        SELECT
          date_trunc('minute', __time__) AS Time,
          approx_set(client_ip) AS UV
        FROM      website_log
        GROUP BY
          Time
        ORDER BY
          Time
      ) AS UV
  • Sonuçlar, Time ve UV sütunlarında dakika başına UV sayılarını gösterir. Örneğin, 2021-09-09 15:12:00 tarihinde 78 UV ve 15:13:00 tarihinde 561 UV bulunmaktadır.

empty_approx_set işlevi

empty_approx_set işlevi boş bir HyperLogLog kümesi döndürür. Varsayılan maksimum standart hata 0,01625'tir.

Syntax

empty_approx_set()

Return value type

HyperLogLog

Examples

Boş bir HyperLogLog kümesi döndürür.

  • Sorgu ve analiz deyimi

    * | SELECT  empty_approx_set()
  • Değeri AgwAAA== olan tek bir _col0 sütunu döndürür; bu, Base64 ile kodlanmış boş bir yaklaşık kümedir.

merge işlevi

merge işlevi, birden çok HyperLogLog kümesini tek bir kümede birleştirir.

Syntax

merge(x)

Parameters


Parametre


Açıklama


x

Bir HyperLogLog ifadesi.

Return value type

HyperLogLog

Examples

Dakika başına UV'leri tahmin etmek için approx_set işlevini, UV kümelerini toplamak için merge işlevini ve nihai değeri bigint'e dönüştürmek için cardinality işlevini kullanın.

  • Sorgu ve analiz deyimi

    * |
    SELECT
      Time,
      cardinality(UV) AS UV,
      cardinality(merge(UV) over()) AS Total_UV
    FROM  (
        SELECT
          date_trunc('minute', __time__) AS Time,
          approx_set(client_ip) AS UV
        FROM      log
        GROUP BY
          Time
        ORDER BY
          Time
      )
  • Sorgu ve analiz sonuçları: Dakika başına UV sayıları değişkenlik gösterir (561, 658, 625), Total_UV ise tüm satırlardaki kümülatif toplamı (8564) gösterir.