帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 查询与分析
  6. 通过索引模式查询和分析日志
  7. SQL分析语法与功能
  8. SQL函数
  9. HyperLogLog函数

HyperLogLog函数

  • SQL函数
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

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

相关文章

聚合函数 2025-04-22 10:58

聚合函数用于对目标数值执行计算并返回结果。本文介绍聚合函数的基本语法及示例。

字符串函数 2025-04-22 10:58

本文介绍字符串函数的基本语法和示例。 日志服务支持如下字符串函数。

日期和时间函数 2025-04-22 10:58

日志服务提供时间函数、日期函数、日期和时间提取函数、时间间隔函数和时序补全函数,支持对日志中的日期和时间进行格式转换,分组聚合等处理。本文介绍日期和时间函数的基本语法及示例。 日期和时间函数概览 日志服务支持如下日期和时间函数。

JSON函数 2025-04-22 10:58

本文介绍JSON函数的基本语法及示例。 日志服务支持如下JSON函数。

正则式函数 2025-04-22 10:58

本文介绍正则式函数的基本语法及示例。 正则式函数概览 日志服务支持如下正则式函数(正则表达式采用RE2语法)。

同比和环比函数 2025-04-22 10:58

本文介绍同比和环比函数的基础语法和示例。 日志服务支持如下同比和环比函数。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1