如果您在查询与分析数据时需要区分更细维度的数据类型,您可以在查询与分析语句中使用类型转换函数转换数据的数据类型。

函数名称 语法 说明
cast函数 cast(x as type) 转换x的数据类型。

使用cast函数转换数据类型时,如果某个值转换失败,将终止整个查询与分析操作。

try_cast函数 try_cast(x as type) 转换x的数据类型。

使用try_cast函数转换数据类型时,如果某个值转换失败,该值返回NULL,并跳过该值继续处理。

说明 日志中可能有脏数据,建议使用try_cast函数,避免因脏数据造成整个查询与分析操作失败。
typeof函数 typeof(x) 返回x的数据类型。

cast函数

cast函数用于转换x的数据类型。使用cast函数转换数据类型时,如果某个值转换失败,将终止整个查询与分析操作。

语法

cast(x as type)

参数说明

参数 说明
x 参数值可以为任意类型。
type SQL数据类型,可选值为bigint、varchar、double、boolean、timestamp、decimal、array或map。

例如cast(json_parse(key) as array(varchar))

索引数据类型和SQL数据类型的映射关系,请参见附录:数据类型映射关系

返回值类型

由您配置的type参数决定。

示例

将数字1转换为boolean格式。

  • 查询和分析语句
    * | select cast(1 as boolean)
  • 查询和分析结果cast

try_cast函数

try_cast函数用于转换x的数据类型。使用try_cast函数转换数据类型时,如果某个值转换失败,该值返回NULL,并跳过该值继续处理。

语法

try_cast(x as type)

参数说明

参数 说明
x 参数值可以为任意类型。
type SQL数据类型,可选值为bigint、varchar、double、boolean、timestamp、decimal、array或map。

例如try_cast(json_parse(key) as map(varchar, varchar))

索引数据类型和SQL数据类型的映射关系,请参见附录:数据类型映射关系

返回值类型

由您配置的type参数决定。

示例

uid字段值转换为varchar类型。

  • 查询和分析语句
    * | select try_cast(uid as varchar)
  • 查询和分析结果try_cast

typeof函数

typeof函数用于返回x的数据类型。

语法

typeof(x)

参数说明

参数 说明
x 参数值可以为任意数据类型。

返回值类型

varchar类型。

示例

判断request_time字段值的数据类型。

  • 查询和分析语句
    * |SELECT typeof(request_time)
  • 查询和分析结果typeof

附录:数据类型映射关系

索引数据类型和SQL数据类型的对应关系如下表所示:

索引的数据类型 SQL的数据类型
long bigint
text varchar
double double
json varchar