数据类型 - Amazon Simple Storage Service

数据类型

Amazon S3 Select 支持多个基元数据类型。

数据类型转换

一般规则是遵循 CAST 函数(如果已定义)。如果未定义 CAST,则将所有输入数据视为字符串。在这种情况下,必要时,您必须将输入数据强制转换为相关的数据类型。

有关 CAST 函数的更多信息,请参阅CAST

支持的数据类型

Amazon S3 Select 支持以下这组基元数据类型。

名称

说明

示例

bool

一个布尔值,可以是 TRUEFALSE

FALSE

int, integer

范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的 8 字节有符号整数。

100000

string

UTF8 编码的长度可变的字符串。原定设置限制为 1 个字符。最大字符限制为 2,147,483,647。

'xyz'

float

8 字节浮点数。

CAST(0.456 AS FLOAT)

decimal, numeric

Base-10 数字,最大精度为 38(即最大有效位数),取值范围在 -231 到 231-1 之间(即以 10 为底的指数)。

注意

如果您同时提供数值范围和精度,则 Amazon S3 Select 会全部忽略。

123.456

timestamp

时间戳表示特定的时刻,始终包括本地偏移,并且能够支持任意精度。

在文本格式中,时间戳遵循关于日期和时间格式的 W3C 注释,但它们必须以文本 T 结尾(如果时间戳不是最低限度全天精度)。允许使用小数秒,具有至少一位精度,以及无限的最大值。本地时间偏移可以表示为与 UTC 相比的小时:分钟偏移量,或表示为文本 Z 以指示 UTC 的本地时间。本地时间偏移对于具有时间的时间戳是必需的,但对于日期值是不允许的。

CAST('2007-04-05T14:30Z' AS TIMESTAMP)

支持的 Parquet 类型

Amazon S3 Select 支持以下 Parquet 类型。

  • DATE

  • DECIMAL

  • ENUM

  • INT(8)

  • INT(16)

  • INT(32)

  • INT(64)

  • LIST

    注意

    对于 LIST Parquet 类型输出,Amazon S3 Select 仅支持 JSON 格式。但是,如果查询将数据限定为简单值,还可以用 CSV 格式查询 LIST Parquet 类型。

  • STRING

  • TIMESTAMP 支持的精度(MILLIS/MICROS/NANOS)

    注意

    不支持保存为 INT(96) 的时间戳。

    由于 INT(64) 类型的范围,使用 NANOS 单位的时间戳只能表示介于 1677-09-21 00:12:432262-04-11 23:47:16 之间的值。超出此范围的值不能用 NANOS 单位表示。

将 Parquet 类型映射到 Amazon S3 Select 中支持的数据类型

Parquet 类型

支持的数据类型

DATE

timestamp

DECIMAL

decimal, numeric

ENUM

string

INT(8)

int, integer

INT(16)

int, integer

INT(32)

int, integer

INT(64)

decimal, numeric

LIST

列表中的每个 Parquet 类型都映射到相应的数据类型。

STRING

string

TIMESTAMP

timestamp