本文介绍日志服务支持的类型转换函数语法及常见场景的使用示例。
说明
'time'
代表字符串,time
或 "time"
代表字段名或列名。函数名称 | 语法 | 说明 |
---|---|---|
APPROX_SET(KEY) | 估算 KEY 字段中不重复的值个数。 | |
EMPTY_APPROX_SET() | 构造一个 HyperLogLog 数据类型的空值 | |
MERGE(KEY) | 将多个 HyperLogLog 合并为一个 HyperLogLog。 |
APPROX_SET 函数用于估算 KEY 字段中不重复的值个数,最大标准误差的值默认为 0.01625。
语法格式
APPROX_SET(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,值为任意数据类型。 |
返回值说明
返回值为 HyperLogLog 类型。
场景
通过请求 ID 估算请求数量,返回结果为 HyperLogLog 编码。
检索和分析语句
* | SELECT CAST(APPROX_SET(ReqID) AS varbinary)
检索和分析结果
EMPTY_APPROX_SET 函数用于构造一个 HyperLogLog 数据类型的空值。
语法格式
EMPTY_APPROX_SET()
返回值说明
返回值为 HyperLogLog 类型。
场景
构造一个 HyperLogLog 类型的空值。
检索和分析语句
* | SELECT CAST(EMPTY_APPROX_SET() AS varbinary) LIMIT 1
检索和分析结果
MERGE 函数用于将多个 HyperLogLog 合并为一个 HyperLogLog。
语法格式
MERGE(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,值为 HyperLogLog 类型。 |
返回值说明
返回值为 HyperLogLog 类型。
场景
使用 APPROX_SET 函数估算每小时的请求数量(HyperLogLog 类型),再使用 MERGE 函数将所有的请求数量合并为一个 HyperLogLog。
检索和分析语句
* | SELECT CAST(MERGE(UV) AS varbinary) FROM ( SELECT DATE_TRUNC('hour', __time__) AS time, APPROX_SET(ReqID) AS UV GROUP BY time ORDER BY time )
检索和分析结果