Amazon Athena 中的数据类型
运行 CREATE TABLE 时,您可以指定列名以及每列可以包含的数据类型。所创建的表存储在 Amazon Glue Data Catalog 中。
为了促进与其他查询引擎的互操作性,Athena 对 DDL 语句(例如 CREATE TABLE)使用 Apache HiveSELECT、CTAS 和 INSERT INTO 这样的 DML 查询,Athena 则使用 Trino
| DDL | DML | 描述 |
|---|---|---|
| BOOLEAN | 值包括 true 和 false。 |
|
| 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) |
是总位数;(可选)是小数部分的位数,默认值为 0。例如,使用以下类型定义:decimal(11,5)、decimal(15)。最大精度值为 38,最大标度值为 38。 |
|
CHAR、CHAR(length) |
固定长度字符数据,指定长度介于 1 到 255 之间,例如 char(10)。如果指定了 有关更多信息,请参阅 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 字符串、true、false 或 null。 |
| 不可用 | UUID | UUID,全称通用唯一标识符。 |
| 不可用 | IPADDRESS | IPv4 或 IPv6 地址。 |
| 不可用 | HyperLogLog |
这些数据类型支持近似的函数内部构成。有关各种类型的更多信息,请访问 Trino 文档中相应条目的链接。 |
| P4HyperLogLog |
||
| SetDigest |
||
| QDigest |
||
| TDigest |
||