本文介绍日志服务支持的类型转换函数语法及常见场景的使用示例。
说明
在日志服务分析语句(SQL 语句)中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。例如'time'
代表字符串,time
或 "time"
代表字段名或列名。
函数名称 | 语法 | 说明 |
---|---|---|
CAST(KEY AS type) | 转换 KEY 的数据类型。 | |
TRY_CAST(KEY AS type) | 转换 KEY 的数据类型。 | |
TYPEOF(KEY) | 查询 KEY 的数据类型。 |
CAST 函数用于转换 KEY 的数据类型。使用 CAST 函数转换数据类型时,如果某个值的数据类型转换失败,系统将终止整个检索分析操作。
语法格式
CAST(KEY AS type)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,值为任意数据类型。 |
type | SQL 数据类型,可选值为 bigint、varchar、double、boolean、timestamp、decimal、array 或者 map。例如 |
返回值说明
返回值数据类型与 type
参数一致。
场景child_type
字段值为 varchar 类型,通过 CAST 函数将 child_type
字段值转换为 MAP(varchar, varchar) 类型。
说明
本示例中的 child_type
字段的索引数据类型为 text,如果索引数据类型为 json,执行如下语句将报错。
日志样例
检索和分析语句
* | SELECT CAST(JSON_PARSE(child_type) AS MAP(varchar, varchar))
检索和分析结果
TRY_CAST 函数用于转换 KEY 的数据类型。使用 TRY_CAST 函数转换数据类型时,如果某个值的数据类型转换失败,系统将返回 NULL,并跳过该值继续处理。
语法格式
TRY_CAST(KEY AS type)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,值为任意数据类型。 |
type | SQL 数据类型,可选值为 bigint、varchar、double、boolean、timestamp、decimal、array 或者 map。例如 |
返回值说明
返回值数据类型与 type
参数一致。
场景
将 ReqTime
字段值转换为 varchar 类型并返回该数据类型。
检索和分析语句
* | SELECT ReqTime,TYPEOF(TRY_CAST(ReqTime AS varchar))
检索和分析结果
TYPEOF 函数用于查询 KEY 的数据类型。
语法格式
TYPEOF(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 日志字段、表达式,其值可以为任意数据类型。 |
返回值说明
返回值为 Varchar 类型。
场景
查看 Method
字段值的数据类型。
日志样例
检索和分析语句
* | SELECT TYPEOF(Method)
检索和分析结果
索引数据类型和 SQL 数据类型的对应关系如下表所示:
索引数据类型 | SQL 数据类型 |
---|---|
long | bigint |
text | varchar |
double | double |
json | varchar |