数据类型 - Amazon Kinesis Data Analytics SQL 参考
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

数据类型

下表汇总了 Amazon Kinesis Data Analytics 支持的数据类型。

SQL 数据类型 JSON 数据类型 说明 备注

BIGINT

数字

64 位有符号整数

BINARY

BASE64-编码后的字符串

二进制(非字符)数据

子字符串适用于 BINARY。联接对 BINARY 不起作用。

BOOLEAN

布尔值

TRUE、FALSE 或 NULL

计算结果为 TRUE、FALSE 和 UNKNOWN。

CHAR (n)

字符串

固定长度 n 的字符串。也可指定为 CHARACTER

n 必须大于 0 且小于 65535。

DATE

字符串

日期是日历日 (year/month/day)。

精度是日。范围介于最大值 [大约 +229(以年为单位)] 到最小值 -229 之间。

DECIMAL

DEC

NUMERIC

数字

一个固定点,最多包含 19 位有效数字。

可以用 DECIMAL、DEC 或 NUMERIC 指定。

DOUBLE

DOUBLE PRECISION

数字

64 位浮点数

64 位近似值;-1.79E+308 至 1.79E+308。采用 ISO DOUBLE PRECISION 数据类型,53 位用于科学计数法中的数字尾数,表示 15 位数的精度和 8 字节的存储空间。

INTEGER

INT

数字

32 位带符号的整数。范围介于 -2147483648 到 2147483647 [ 2**(31) to 2**(31)- 1] 之间

INTERVAL <timeunit> [TO <timeunit>]

字符串

支持日-时间间隔,不支持年-月间隔

在采用日期算法的表达式中允许,但不可用作表或流中列的数据类型。

<timeUnit>

字符串

INTERVAL 值的单位

支持的单位为 YEAR、MONTH、DAY、HOUR、MINUTE 和 SECOND

SMALLINT

数字

16 位有符号整数

范围介于 -32768 到 32767 之间

[2**(15) to 2**(15)-1]

REAL

数字

32 位浮点数

采用 ISO REAL 数据类型,24 位用于科学计数法中的数字尾数,表示 7 位数的精度和 4 字节的存储空间。最小值为 -3.40E+38;最大值为 3.40E+38。

TIME

字符串

TIME 是一天中的时间 (hour:minute:second)。

其精度是毫秒;其范围是 00:00:00.000 到 23:59:59.999。由于系统时钟采用 UTC,因此不考虑用于 TIME 或 TIMESTAMP 列中存储的值的时区。

用于 TIME 或 TIMESTAMP 列中存储的值。

TIMESTAMP

字符串

TIMESTAMP 是 DATE 和 TIME 的组合。

TIMESTAMP 值的精度始终为 1 毫秒。没有特定的时区。由于系统时钟采用 UTC,因此不考虑用于 TIME 或 TIMESTAMP 列中存储的值的时区。范围介于最大值 [大约 +229(以年为单位)] 到最小值 -229 之间。每个时间戳都存储为带符号的 64 位整数,其中 0 表示 Unix 时代 (1970 年 1 月 1 日零点)。这意味着最大的 TIMESTAMP 值代表 1970 年之后的大约 3 亿年,最小的值代表 1970 年之前的大约 3 亿年。根据 SQL 标准,TIMESTAMP 值的时区未定义。

TINYINT

数字

8 位有符号整数

范围介于 -128 到 127 之间

VARBINARY (n)

BASE64-编码后的字符串

也可指定为 BINARY VARYING

n 必须大于 0 且小于 65535。

VARCHAR (n)

字符串

也可指定为 CHARACTER VARYING

n 必须大于 0 且小于 65535。

备注

关于字符:

  • 亚马逊 Kinesis Data Analytics 仅支持 Java 单字节字符 SETs。

  • 不支持隐式类型转换。也就是说,当且仅当字符取自相同的字符库并且是数据类型为 CHARACTER 或 CHARACTER VARYING 的值时,字符才可以相互分配。

关于数字:

  • 如果数字是数据类型为 NUMERIC、DECIMAL、INTEGER、BIGINT、SMALLINT、TINYINT、REAL 和 DOUBLE PRECISION 的值,则可以相互比较和相互分配。

以下数据类型集是同义词:

  • DEC 和 DECIMAL

  • DOUBLE PRECISION 和 DOUBLE

  • CHARACTER 和 CHAR

  • CHAR VARYING 或 CHARACTER VARYING 和 VARCHAR

  • BINARY VARYING 和 VARBINARY

  • INT 和 INTEGER

  • 二进制值(数据类型为 BINARY 和 BINARY VARYING)始终可以相互比较,并且可以相互分配。

关于日期、时间和时间戳:

  • 不支持隐式类型转换(也就是说,只有当分配的源和目标都是 DATE、TIME 或 TIMESTAMP 类型时,日期时间值才可以相互分配)。

  • Amazon Kinesis Data Analytics 时区始终采用 UTC。时间函数,包括 Amazon Kinesis Data Analytics 扩展 CURRENT_ROW_TIMESTAMP,以 UTC 返回时间。