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

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

Amazon Athena 中的数据类型

当您运行创建表,您可以指定列名和每列可以包含的数据类型。Athena 支持以下所列的数据类型。有关 JDBC 驱动程序在 Athena、JDBC 和 Java 之间支持的数据类型映射的信息,请参阅数据类型中的JDBC 驱动程序安装和配置指南。有关 Athena 和 SQL 之间 ODBC 驱动程序支持的数据类型映射的信息,请参阅数据类型中的ODBC 驱动程序安装和配置指南

  • BOOLEAN— 值包括truefalse

  • TINYINT— 8 位有符号的INTEGER的二进制补码格式,最小值为-27最大值为 27-1.

  • SMALLINT— 16 位有符号的INTEGER的二进制补码格式,最小值为-215最大值为 215-1.

  • INTINTEGER— Athena 结合了两个不同的整数据类型实现,如下所示:

    • INT— 在数据定义语言 (DDL) 查询中,Athena 使用INT数据类型。

    • INTEGER— 在 DML 查询中,Athena 使用INTEGER数据类型。INTEGER以二进制补码格式表示为 32 位有符号值,最小值为-231最大值为 231-1.

      • 为确保与业务分析应用程序兼容,JDBC 驱动程序返回 INTEGER 类型。

  • BIGINT— 64 位有符号的INTEGER的二进制补码格式,最小值为-263最大值为 263-1.

  • DOUBLE— 64 位双精度浮点数。

  • FLOAT— 32 位单精度浮点数。相当于 Presto 中的 REAL。在 Athena 中,使用FLOAT在 DDL 语句中,例如CREATE TABLEREAL在 SQL 函数中,例如SELECT CAST。这些区域有:Amazon Glue爬网程序返回FLOAT, Athena 翻译REALFLOAT类型(请参阅2018 年 5 月 6 日发行说明)。

  • DECIMAL(precision, scale)precision是总位数。scale(可选)是小数部分的位数,默认值为 0。例如,使用以下类型定义:DECIMAL(11,5)DECIMAL(15)

    要将十进制值指定为文字(例如在查询 DDL 表达式中选择具有特定十进制值的行时),请指定 DECIMAL 类型定义,并在查询中将十进制值列为文字(带单引号),如下例所示:decimal_value = DECIMAL '0.12'

  • CHAR— 固定长度字符数据,具有介于 1 和 255 之间的指定长度,例如,例如char(10)。有关更多信息,请参阅 CHAR Hive 数据类型

    注意

    要使用 substr 函数从 CHAR 数据类型返回指定长度的子字符串,您必须先将 CHAR 值转换为 VARCHAR,如以下示例所示。

    substr(cast(col1 as varchar), 1, 4)
  • VARCHAR— 可变长度字符数据,具有介于 1 和 65535 之间的指定长度,例如varchar(10)。有关更多信息,请参阅 VARCHAR Hive 数据类型

  • STRING— 用单引号或双引号括起的字符串文本。有关更多信息,请参阅 STRING Hive 数据类型

    注意

    无法将非字符串数据类型强制转换为STRING在 Athena; 将它们投射到VARCHAR相反。

  • BINARY— 用于 Parquet 中的数据。

  • DATE— ISO 格式的日期,如YYYY-MM-DD。例如:DATE '2008-09-15'

  • TIMESTAMP— 瞬间的日期和时间java.sql.Timestamp兼容的格式,例如yyyy-MM-dd HH:mm:ss[.f...]。例如:TIMESTAMP '2008-09-15 03:04:05.324'

  • ARRAY<data_type>

  • MAP<primitive_type, data_type>

  • STRUCT<col_name : data_type [COMMENT col_comment] , ...>