字段类型

支持8种数据类型。

SQL_TIMESTAMP

时间戳类型。时间戳字段必须为该类型。数据可以是如下几种形式:

1) 毫秒为单位的整数时间戳,如: 1523427180123

2) 秒为单位的整数时间戳,如: 1523427180

3) 以及常见的字符串格式

下面是所支持的各种格式举例:

{"ts":1523427241000}
{"ts":1523427241}
{"ts":"1523427241000"}
{"ts":"1523427241"}
{"ts":"2018-03-25T07:05:26.847Z"}
{"ts":"2018-03-25 07:05:26.847Z"}
{"ts":"2018-03-25T07:05:26Z"}
{"ts":"2018-03-25 07:05:26Z"}
{"ts":"2018-03-25T07:05:26.847"}
{"ts":"2018-03-25 07:05:26.847"}
{"ts":"2018-03-25T07:05:26"}
{"ts":"2018-03-25 07:05:26"}

LONG

整数类型。SQL中需要将字符串转化成LONG类型的语法为: CAST(str AS BIGINT)。

STRING

字符串类型

DOUBLE

浮点数类型。SQL中需要将字符串转化成DOUBLE类型的语法为: CAST(str AS DOUBLE)。

ARRAY

对象数组类型。SQL中,通常用UNNEST语法将其展开。适用于类似如下JSON格式:

{
    "arr":[
    {
        "name":"dev01",
        "val": 12.3
    }]
}

LONG_ARRAY

整数数组类型。SQL中,可以通过UNNEST语法将其展开,也可以直接通过下标访问,如SELECT arr[1]。下标从1开始。适用类似如下JSON格式:

{
    "arr":[1, 5, 199]
}

通过UNNEST语句展开示例:

SELECT 
    Tumble_Start(rowtime, INTERVAL '1' MINUTE) AS ts,
    SUM(val) AS subtotal
FROM mysource, UNNEST(mysource.arr) AS A(val)
GROUP BY
    Tumble(rowtime, INTERVAL '1' MINUTE)

通过下标直接访问SQL示例:

SELECT arr[1] + arr[2] * arr[3] AS new_value

DOUBLE_ARRAY

浮点数数组类型。SQL中,可以通过UNNEST语法将其展开,也可以直接通过下标访问,如SELECT arr[1]。下标从1开始。适用类似如下JSON格式:

{
    "arr":[1.8, 2.1, 2.498]
}

STRING_ARRAY

字符串数组类型。SQL中,可以通过UNNEST语法将其展开,也可以直接通过下标访问,如SELECT arr[1]。下标从1开始。适用类似如下JSON格式:

{
    "arr":["apple", "orange", "pear"]
}

其他

对于其他类型数据,比如JSON中的boolean,可以按照STRING来处理。