数据类型
Amazon S3 Select 和 S3 Glacier Select 支持多个基元数据类型。
数据类型转换
一般规则是遵循 CAST
函数 (如果已定义)。如果未定义 CAST
,则将所有输入数据视为字符串。必要时,必须将其转换为相关的数据类型。
有关 CAST
函数的更多信息,请参阅CAST。
受支持数据类型
Amazon S3 Select 和 S3 Glacier Select 支持下面这组基元数据类型。
名称 | 说明 | 示例 |
---|---|---|
bool | TRUE 或 FALSE | FALSE |
INT、INTEGER | 范围 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 中的 8 字节有符号整数。 | 100000 |
字符串 | UTF8 编码的长度可变的字符串。默认限制为一个字符。最大字符限制为 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 注释 |
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:43
和2262-04-11 23:47:16
之间的值。超出此范围的值不能用 NANOS 单位表示。
将 Parquet 类型映射到 Amazon S3 Select 中支持的数据类型
Parquet 类型 | 支持的数据类型 |
---|---|
DATE |
timestamp |
DECIMAL |
DECIMAL、NUMERIC |
ENUM |
字符串 |
INT(8) |
INT、INTEGER |
INT(16) |
INT、INTEGER |
INT(32) | INT、INTEGER |
INT(64) |
DECIMAL、NUMERIC |
LIST |
列表中的每个 Parquet 类型都已映射到相应的数据类型 |
STRING |
字符串 |
TIMESTAMP |
timestamp |