Amazon Athena のデータ型 - Amazon Athena

Amazon Athena のデータ型

CREATE TABLE を実行するときは、列名と、各列に含めることができるデータ型を指定します。作成するテーブルは、AWS Glue Data Catalog に保存されます。

他のクエリエンジンとの相互運用性を促進するため、Athena は CREATE TABLE などの DDL ステートメントに Apache Hive データ型名を使用します。SELECTCTAS、および INSERT INTO などの DML クエリの場合、Athena は Trino データ型名を使用します。以下の表は、Athena でサポートされるデータ型を示しています。DDL 型と DML 型が名前、可用性、構文といった点で異なる場合は、個別の列に表示されます。

DDL DML 説明
BOOLEAN 値は、true および false です。
TINYINT 2 の補数形式の 8 ビット符号付き整数で、最小値は -27、最大値は 27-1 です。
SMALLINT 2 の補数形式の 16 ビット符号付き整数で、最小値は -215、最大値は 215-1 です。
INT, INTEGER 2 の補数形式の 32 ビット符号付き整数で、最小値は -231、最小値は -263、最大値は 231-1 です。
BIGINT 2 の補数形式の 64 ビット符号付き整数で、最小値は -263、最小値は -263、最大値は 263-1 です。
FLOAT REAL 32 ビットの符号付き単精度浮動小数点数です。範囲は、1.402846638528807e-45 から 3.40282348528860e+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) のタイプ定義を使用します。precision の最大値は 38 で、scale の最大値も 38 です。
CHAR, CHAR(length)

固定長の文字データで、char(10) のように、1 から 255 の長さが指定されています。length が指定されている場合、文字列は読み取り時に指定された長さで切り捨てられます。基盤となるデータ文字列がそれより長い場合、基盤となるデータ文字列はそのまま変更されません。

詳細については、「CHAR Hive データ型」を参照してください。

STRING VARCHAR 可変長文字データです。
VARCHAR(length) 最大読み取り長が設定された可変長文字データです。文字列は、読み取り時に指定された長さで切り捨てられます。基盤となるデータ文字列がそれより長い場合、基盤となるデータ文字列はそのまま変更されません。
BINARY VARBINARY 可変長バイナリデータです。
TIME ミリ秒精度の時刻です。
利用不可 TIME(precision) 特定の精度の時刻です。TIME(3)TIME と同等です。
利用不可 TIME WITH TIME ZONE タイムゾーン内の時刻です。タイムゾーンは、UTC からのオフセットとして指定する必要があります。
DATE 年、月、日を使用したカレンダー日付です。
TIMESTAMP TIMESTAMP WITHOUT TIME ZONE カレンダー日付とミリ秒精度の時刻です。
利用不可 TIMESTAMP(precision), TIMESTAMP(precision) WITHOUT TIME ZONE カレンダー日付と特定の精度の時刻です。TIMESTAMP(3)TIMESTAMP と同等です。
利用不可 TIMESTAMP WITH TIME ZONE タイムゾーン内のカレンダー日付と時刻です。タイムゾーンは、UTC からのオフセット、IANA タイムゾーン名、または UTC、UT、Z、GMT を使用して指定できます。
利用不可 TIMESTAMP(precision) WITH TIME ZONE タイムゾーン内のカレンダー日付と特定の精度の時刻です。
利用不可 INTERVAL YEAR TO MONTH 1 か月以上の間隔です。
利用不可 INTERVAL DAY TO SECOND 1 秒、1 分、1 時間、または 1 日以上の間隔です。
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 文字列、truefalse、または null にすることができます。
利用不可 UUID UUID (Universally Unique IDentifier) です。
利用不可 IPADDRESS IPv4 または IPv6 アドレスです。
利用不可 HyperLogLog これらのデータ型は、近似関数の内部をサポートします。各型の詳細については、Trino ドキュメント内の対応する項目へのリンクを参照してください。
P4HyperLogLog
SetDigest
QDigest
TDigest