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

Amazon Athena 中的数据类型

运行 CREATE TABLE 时,您可以指定列名以及每列可以包含的数据类型。所创建的表存储在 Amazon Glue Data Catalog 中。

为了促进与其他查询引擎的互操作性,Athena 对 DDL 语句(例如 CREATE TABLE)使用 Apache Hive 数据类型名称。对于像 SELECTCTASINSERT INTO 这样的 DML 查询,Athena 则使用 Trino 数据类型名称。下表显示了 Athena 支持的数据类型。如果 DDL 和 DML 类型在名称、可用性或语法方面存在差异,则会显示在不同的列中。

DDL DML 描述
BOOLEAN 值包括 truefalse
TINYINT 一个 8 位有符号的整数,采用二进制补码格式,最小值为 -27,最大值为 27-1。
SMALLINT 一个 16 位有符号的整数,采用二进制补码格式,最小值为 -215,最大值为 215-1。
INT,INTEGER 一个 32 位有符号的值,采用二进制补码格式,最小值为 -231,最大值为 231-1。
BIGINT 一个 64 位有符号的整数,采用二进制补码格式,最小值为 -263,最大值为 263-1。
FLOAT REAL 一个 32 位有符号的单精度浮点数。范围为 1.40129846432481707e-45 至 3.40282346638528860e+38,可以为正数,也可以为负数。遵循 IEEE 浮点运算标准(IEEE 754)。
DOUBLE 一个 64 位有符号的双精度浮点数。范围为 4.94065645841246544e-324d 至 1.79769313486231570e+308d,可以为正数,也可以为负数。遵循 IEEE 浮点运算标准(IEEE 754)。
DECIMAL(precision, scale) precision 是总位数;scale(可选)是小数部分的位数,默认值为 0。例如,使用以下类型定义:decimal(11,5)decimal(15)。最大精度值为 38,最大标度值为 38。
CHAR、CHAR(length)

固定长度字符数据,指定长度介于 1 到 255 之间,例如 char(10)。如果指定了 length,则读取字符串时,字符串将按指定长度进行截断。如果底层数据字符串较长,则底层数据字符串将保持不变。

有关更多信息,请参阅 CHAR Hive 数据类型

string VARCHAR 长度可变的字符数据。
VARCHAR(length) 具有最大读取长度的长度可变的字符数据。读取字符串时,字符串将按指定长度进行截断。如果底层数据字符串较长,则底层数据字符串将保持不变。
BINARY VARBINARY 长度可变的二进制数据。
不可用 TIME 一天中的某个时间,精确到毫秒。
不可用 TIME(precision) 一天中的某个时间,具有具体精度。TIME(3) 等同于 TIME
不可用 带时区的时间 某个时区一天中的某个时间。应将时区指定为 UTC 的偏移量。
DATE 包含年、月、日的某个日历日期。
TIMESTAMP TIMESTAMP、TIMESTAMP WITHOUT TIME ZONE 某个日历日期一天中的某个时间,精确到毫秒。
不可用 TIMESTAMP(precision)、TIMESTAMP(precision) WITHOUT TIME ZONE 某个日历日期一天中的某个时间,具有具体精度。TIMESTAMP(3) 等同于 TIMESTAMP
不可用 TIMESTAMP(有时区) 在某个时区中,某个日历日期一天中的某个时间。可以将时区指定为 UTC 的偏移量、IANA 时区名称或使用 UTC、UT、Z 或 GMT。
不可用 TIMESTAMP(precision) WITH TIME ZONE 在某个时区中,某个日历日期一天中的某个时间,具有具体精度。
不可用 INTERVAL YEAR TO MONTH 间隔为一个月或数个整月
不可用 INTERVAL DAY TO SECOND 间隔为一或数秒/分钟/小时/日
ARRAY<element_type> ARRAY[element_type] 值的数组。所有值都必须具有相同数据类型。
MAP<key_type, value_type> MAP(key_type, value_type) 可以通过键查找值的映射。所有密钥和所有值都必须具有相同数据类型。例如,map<string, integer>
STRUCT<field_name_1:field_type_1, field_name_2:field_type_2, …> ROW(field_name_1 field_type_1, field_name_2 field_type_2, …) 包含命名字段及其值的数据结构。
不可用 JSON JSON 值类型,可以是 JSON 对象、JSON 数组、JSON 数字、JSON 字符串、truefalsenull
不可用 UUID UUID,全称通用唯一标识符。
不可用 IPADDRESS IPv4 或 IPv6 地址。
不可用 HyperLogLog 这些数据类型支持近似的函数内部构成。有关各种类型的更多信息,请访问 Trino 文档中相应条目的链接。
P4HyperLogLog
SetDigest
QDigest
TDigest