

# Amazon Athena のデータ型
<a name="data-types"></a>

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

他のクエリエンジンとの相互運用性を促進するため、Athena は `CREATE TABLE` などの DDL ステートメントに [Apache Hive](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types) データ型名を使用します。`SELECT`、`CTAS`、および `INSERT INTO` などの DML クエリの場合、Athena は [Trino](https://trino.io/docs/current/language/types.html) データ型名を使用します。以下の表は、Athena でサポートされるデータ型を示しています。DDL 型と DML 型が名前、可用性、構文といった点で異なる場合は、個別の列に表示されます。


****  

<table>
<thead>
  <tr><th>DDL</th><th>DML</th><th>説明</th></tr>
</thead>
<tbody>
  <tr><td colspan="2">BOOLEAN</td><td>値は、true および false です。</td></tr>
  <tr><td colspan="2">TINYINT</td><td>2 の補数形式の 8 ビット符号付き整数で、最小値は -27、最大値は 27-1 です。</td></tr>
  <tr><td colspan="2">SMALLINT</td><td>2 の補数形式の 16 ビット符号付き整数で、最小値は -215、最大値は 215-1 です。</td></tr>
  <tr><td colspan="2">INT, INTEGER</td><td>2 の補数形式の 32 ビット符号付き整数で、最小値は -231、最小値は -263、最大値は 231-1 です。</td></tr>
  <tr><td colspan="2">BIGINT</td><td> 2 の補数形式の 64 ビット符号付き整数で、最小値は -263、最小値は -263、最大値は 263-1 です。</td></tr>
  <tr><td>FLOAT</td><td>REAL</td><td>32 ビットの符号付き単精度浮動小数点数です。範囲は、1.402846638528807e-45 から 3.40282348528860e\+38 (正または負) です。IEEE 浮動小数点数演算標準 (IEEE 754) に従います。</td></tr>
  <tr><td colspan="2">DOUBLE</td><td>64 ビットの符号付き倍精度浮動小数点数です。範囲は、4.94065645841246544e-324d から 1.79769313486231570e\+308d (正または負) です。IEEE 浮動小数点数演算標準 (IEEE 754) に従います。</td></tr>
  <tr><td colspan="2">DECIMAL({{precision}}, {{scale}})</td><td>{{precision}} は桁の合計数です。{{scale}} (オプション) は小数点以下の桁数で、デフォルトは 0 です。たとえば、decimal(11,5)、decimal(15) のタイプ定義を使用します。{{precision}} の最大値は 38 で、{{scale}} の最大値も 38 です。</td></tr>
  <tr><td colspan="2">CHAR, CHAR({{length}})</td><td>固定長の文字データで、char(10) のように、1 から 255 の長さが指定されています。{{length}} が指定されている場合、文字列は読み取り時に指定された長さで切り捨てられます。基盤となるデータ文字列がそれより長い場合、基盤となるデータ文字列はそのまま変更されません。<br />詳細については、「[CHAR Hive データ型](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-char)」を参照してください。</td></tr>
  <tr><td>STRING</td><td>VARCHAR</td><td>可変長文字データです。</td></tr>
  <tr><td colspan="2">VARCHAR({{length}})</td><td>最大読み取り長が設定された可変長文字データです。文字列は、読み取り時に指定された長さで切り捨てられます。基盤となるデータ文字列がそれより長い場合、基盤となるデータ文字列はそのまま変更されません。</td></tr>
  <tr><td>BINARY</td><td>VARBINARY</td><td>可変長バイナリデータです。</td></tr>
  <tr><td>利用不可</td><td>TIME</td><td>ミリ秒精度の時刻です。</td></tr>
  <tr><td>利用不可</td><td>TIME({{precision}})</td><td>特定の精度の時刻です。TIME(3) は TIME と同等です。</td></tr>
  <tr><td>利用不可</td><td>TIME WITH TIME ZONE</td><td>タイムゾーン内の時刻です。タイムゾーンは、UTC からのオフセットとして指定する必要があります。</td></tr>
  <tr><td colspan="2">DATE</td><td>年、月、日を使用したカレンダー日付です。</td></tr>
  <tr><td>TIMESTAMP</td><td>TIMESTAMP WITHOUT TIME ZONE</td><td>カレンダー日付とミリ秒精度の時刻です。</td></tr>
  <tr><td>利用不可</td><td>TIMESTAMP({{precision}}), TIMESTAMP({{precision}}) WITHOUT TIME ZONE</td><td>カレンダー日付と特定の精度の時刻です。TIMESTAMP(3) は TIMESTAMP と同等です。</td></tr>
  <tr><td>利用不可</td><td>TIMESTAMP WITH TIME ZONE</td><td>タイムゾーン内のカレンダー日付と時刻です。タイムゾーンは、UTC からのオフセット、IANA タイムゾーン名、または UTC、UT、Z、GMT を使用して指定できます。</td></tr>
  <tr><td>利用不可</td><td>TIMESTAMP({{precision}}) WITH TIME ZONE</td><td>タイムゾーン内のカレンダー日付と特定の精度の時刻です。</td></tr>
  <tr><td>利用不可</td><td>INTERVAL YEAR TO MONTH</td><td>1 か月以上の間隔です。</td></tr>
  <tr><td>利用不可</td><td>INTERVAL DAY TO SECOND</td><td>1 秒、1 分、1 時間、または 1 日以上の間隔です。</td></tr>
  <tr><td>ARRAY<{{element\_type}}></td><td>ARRAY[{{element\_type}}]</td><td>値の配列です。すべての値は同じデータ型である必要があります。</td></tr>
  <tr><td>MAP<{{key\_type}}, {{value\_type}}></td><td>MAP({{key\_type}}, {{value\_type}})</td><td>キーを使用して値を検索できるマップです。すべてのキーは同じデータ型で、すべての値は同じデータ型である必要があります。例えば、map<string, integer>。</td></tr>
  <tr><td>STRUCT<{{field\_name\_1}}:{{field\_type\_1}}, {{field\_name\_2}}:{{field\_type\_2}}, …></td><td>ROW({{field\_name\_1}} {{field\_type\_1}}, {{field\_name\_2}} {{field\_type\_2}}, …)</td><td>名前が付けられたフィールドとその値からなるデータ構造です。</td></tr>
  <tr><td>利用不可</td><td>JSON</td><td>JSON 値型です。これは、JSON オブジェクト、JSON 配列、JSON 番号、JSON 文字列、true、false、または null にすることができます。</td></tr>
  <tr><td>利用不可</td><td>UUID</td><td>UUID (Universally Unique IDentifier) です。</td></tr>
  <tr><td>利用不可</td><td>IPADDRESS</td><td>IPv4 または IPv6 アドレスです。</td></tr>
  <tr><td rowspan="5">利用不可</td><td>[HyperLogLog](https://trino.io/docs/current/language/types.html#hyperloglog-type)</td><td rowspan="5">これらのデータ型は、近似関数の内部をサポートします。各型の詳細については、Trino ドキュメント内の対応する項目へのリンクを参照してください。</td></tr>
  <tr><td>[P4HyperLogLog](https://trino.io/docs/current/language/types.html#p4hyperloglog)</td></tr>
  <tr><td>[SetDigest](https://trino.io/docs/current/language/types.html#setdigest)</td></tr>
  <tr><td>[QDigest](https://trino.io/docs/current/language/types.html#quantile-digest)</td></tr>
  <tr><td>[TDigest](https://trino.io/docs/current/language/types.html#t-digest)</td></tr>
</tbody>
</table>


**Topics**
+ [データ型の例](data-types-examples.md)
+ [データ型に関する考慮事項](data-types-considerations.md)
+ [タイムスタンプデータを使用する](data-types-timestamps.md)