

# データ型
<a name="s3-select-sql-reference-data-types"></a>

**重要**  
新規のお客様への Amazon S3 Select の提供は終了しました。Amazon S3 Select をご利用の既存のお客様は、今後も通常どおり使用できます。[詳細情報](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select は、複数のプリミティブデータ型をサポートします。

## データ型変換
<a name="s3-select-sql-reference-data-conversion"></a>

一般的なルールは、`CAST` 関数 (定義されている場合) に従うことです。`CAST` が定義されていない場合、すべての入力データが文字列として扱われます。その場合、必要に応じて入力データを関連するデータ型にキャストする必要があります。

`CAST` 関数の詳細については、「[CAST](s3-select-sql-reference-conversion.md#s3-select-sql-reference-cast)」を参照してください。

## サポートされているデータ型
<a name="s3-select-sql-reference-supported-data-types"></a>

Amazon S3 Select では、プリミティブデータ型の以下のセットがサポートされています。


|  名前  |  説明  |  例  | 
| --- | --- | --- | 
| `bool` | ブール値 (`TRUE` または `FALSE`)。 | `FALSE` | 
| `int`, `integer` | 範囲が -9,223,372,036,854,775,808～9,223,372,036,854,775,807 の 8 バイトの符号付き整数。 | `100000` | 
| `string` | UTF8 でエンコードされた可変長文字列。デフォルトの制限は 1 文字です。最大文字数制限は 2,147,483,647 文字です。 | `'xyz'` | 
| `float` | 8 バイトの浮動小数点数。 | `CAST(0.456 AS FLOAT)` | 
| `decimal`, `numeric` |  10 を底とする数字、最大精度 38 (有効桁の最大数)、かつ -231 から 231-1 までの範囲のスケール (10 を底とするべき指数)。  Amazon S3 Select では、スケールと精度を同時に指定すると、それらは両方とも無視されます。   | `123.456 ` | 
| `timestamp` |  タイムスタンプは特定の時点を表し、常にローカルオフセットを含み、任意の精度が可能です。 テキスト形式では、タイムスタンプは[日時形式に関する W3C の注記](https://www.w3.org/TR/NOTE-datetime)に従いますが、少なくともまる 1 日の精度でなければ、リテラル `T` で終わる必要があります。小数秒は、精度が少なくとも 1 桁また最大は無制限で許可されています。現地時間オフセットは、UTC からの hour:minute オフセットとして、または UTC の現地時刻を示すリテラル `Z` として表すことができます。ローカルタイムオフセットは、時刻のあるタイムスタンプでは必須であり、日付値では許可されていません。  | `CAST('2007-04-05T14:30Z' AS TIMESTAMP)` | 

### サポートされている Parquet 型
<a name="s3-select-sql-reference-supported-data-types-parquet"></a>

Amazon S3 Select では、以下の Parquet 型がサポートされています。
+ `DATE`
+ `DECIMAL`
+ `ENUM`
+ `INT(8)`
+ `INT(16)`
+ `INT(32)`
+ `INT(64)`
+ `LIST`
**注記**  
`LIST` Parquet 型の出力に関しては、Amazon S3 Select がサポートしているのは JSON 形式のみです。ただし、単純な値のデータに制限してクエリする場合は、CSV 形式で `LIST` Parquet 型をクエリすることもできます。
+ `STRING`
+ `TIMESTAMP` のサポートされている精度 (`MILLIS`/`MICROS`/`NANOS`)
**注記**  
`INT(96)` としてのタイムスタンプの保存は、サポートされていません。  
`INT(64)` 型の範囲により、`NANOS` 単位を使用するタイムスタンプのみが、`1677-09-21 00:12:43` から `2262-04-11 23:47:16` までの範囲の値を表すことができます。この範囲外の値は、`NANOS` 単位で表すことはできません。

### Amazon S3 Select でサポートされているデータ型への Parquet 型のマッピング
<a name="s3-select-sql-reference-supported-data-types-parquet-mapping"></a>


| Parquet タイプ | サポートされているデータ型 | 
| --- | --- | 
| `DATE` |  `timestamp`  | 
|  `DECIMAL`  |  `decimal`, `numeric`  | 
|  `ENUM`  |  `string`  | 
|  `INT(8)`  |  `int`, `integer`  | 
|  `INT(16)`  | `int`, `integer` | 
| `INT(32)` | `int`, `integer` | 
|  `INT(64)`  |  `decimal`, `numeric`  | 
|  `LIST`  |  リスト内の各 Parquet 型は、対応するデータ型にマッピングされます。  | 
|  `STRING`  |  `string`  | 
|  `TIMESTAMP`  |  `timestamp`  | 