日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

HyperLogLog函數

HyperLogLog函數為近似聚合函數,類似于approx_distinct函數。當計算的數據量非常大時,使用HyperLogLog函數可快速返回估算結果。本文介紹HyperLogLog函數的基本語法以及示例。

日志服務支持如下HyperLogLog函數。

重要 在日志服務分析語句中,表示字符串的字符必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status"status"表示日志字段status。

函數名稱

語法

說明

支持SQL

支持SPL

approx_set函數

approx_set(x)

估算x中不重復值的個數,最大標準誤差默認為0.01625。

×

cardinality函數

cardinality(x)

將HyperLogLog類型的內容轉換為bigint類型。

×

empty_approx_set函數

empty_approx_set()

返回一個HyperLogLog類型的空值。最大標準誤差默認為0.01625。

×

merge函數

merge(x)

聚合計算所有的HyperLogLog值。

×

approx_set函數

approx_set函數用于估算x中不重復值的個數,最大標準誤差默認為0.01625。

語法

approx_set(x)

參數說明

參數

說明

x

參數值為任意數據類型。

返回值類型

HyperLogLog類型。

示例

使用approx_set函數估算每分鐘的網站訪問UV,返回結果為HyperLogLog編碼格式。

  • 查詢和分析語句

    * |
    SELECT
      date_trunc('minute', __time__) AS Time,
      approx_set(client_ip) AS UV
    FROM  website_log
    GROUP BY
      Time
    ORDER BY
      Time
  • 查詢和分析結果approx_set

cardinality函數

cardinality函數用于將HyperLogLog類型的內容轉換為bigint類型。

語法

cardinality(x)

參數說明

參數

說明

x

參數值為HyperLogLog類型。

返回值類型

bigint類型。

示例

使用approx_set函數估算每分鐘的網站訪問UV,返回結果為HyperLogLog類型。然后使用cardinality函數將HyperLogLog類型轉換為bigint類型。

  • 查詢和分析語句

    * |
    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
  • 查詢和分析結果cardinality

empty_approx_set函數

empty_approx_set函數用于返回一個HyperLogLog類型的空值。最大標準誤差默認為0.01625。

語法

empty_approx_set()

返回值類型

HyperLogLog類型。

示例

返回一個HyperLogLog類型的空值。

  • 查詢和分析語句

    * | SELECT  empty_approx_set()
  • 查詢和分析結果empty_approx_set

merge函數

merge函數用于聚合計算所有的HyperLogLog值。

語法

merge(x)

參數說明

參數

說明

x

參數值為HyperLogLog類型。

返回值類型

HyperLogLog類型。

示例

使用approx_set函數估算每分鐘的網站訪問UV,使用merge函數聚合計算15分鐘內所有的UV,然后使用cardinality函數將HyperLogLog類型轉換為bigint類型。

  • 查詢和分析語句

    * |
    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
      )
  • 查詢和分析結果merge