

# Athena コンソールでフォームを使用して AWS Glue テーブルを追加する
<a name="data-sources-glue-manual-table"></a>

以下の手順で、テーブルの追加のために、Athena コンソールの **[Create Table From S3 bucket data]** (S3 バケットデータからテーブルを作成) フォームを使用する方法を説明します。

**フォームによりテーブルを追加してスキーマ情報を入力するには**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. クエリエディタで、**[Tables and views]** (テーブルとビュー) の横にある **[Create]** (作成) をクリックし、次に **[S3 bucket data]** (S3 バケットデータ) をクリックします。

1. **[Create Table From S3 bucket data]** (S3 バケットデータからテーブルを作成) フォームで、**[Table name]** (テーブル名) にテーブルの名前を入力します。Athena のデータベース名、テーブル名、および列名で使用できる文字については、「[データベース、テーブル、列に名前を付ける](tables-databases-columns-names.md)」を参照してください。

1. **[Database configuration]** (データベース設定) で既存のデータベースを選択するか、新しいデータベースを作成します。

1. **[Location of Input Data Set]** (入力データセットの場所) に、処理するデータセットが含まれるフォルダへの Amazon S3 のパスを指定します。パスにはファイル名を含めないでください。Athena で、指定したフォルダ内のすべてのファイルがスキャンされます。データが既に分割されている場合 (例: 

    s3://amzn-s3-demo-bucket/logs/year=2004/month=12/day=11/)、ベースパスのみを入力します (例: s3://amzn-s3-demo-bucket/logs/)。

1. **[Data Format]** (データ形式) で、次のオプションから選択します。
   + **[Table type]** (テーブルタイプ) には、**[Apache Hive]** (アパッチハイブ)、**[Apache Iceberg]** (アパッチアイスバーグ)、または **[Delta Lake]** (デルタレイク) を選択してください。Athena では Apache Hive テーブルタイプがデフォルトとして使用されます。Athena での Apache Iceberg テーブルのクエリについては、「[Apache Iceberg テーブルをクエリする](querying-iceberg.md)」を参照してください。Athena での Delta Lake テーブルの使用に関する情報は、「[Linux Foundation Delta Lake テーブルをクエリする](delta-lake-tables.md)」を参照してください。
   + **[File format]** (ファイル形式) で、データに適用されているファイル形式またはログ形式を選択します。
     + [**Text File with Custom Delimiters (カスタム区切り記号のあるテキストファイル)**] オプションでは、[**Field terminator (フィールドターミネータ)**]（列区切り記号）を指定します。オプションで、配列型の終わりを示す **[Collection terminator]** (コレクションターミネータ) またはマッピングデータタイプの終わりを示す **[Collection terminator]** (コレクションターミネータ) を指定できます。
   + **[SerDe library]** (SerDe ライブラリ) – SerDe (シリアライザー/デシリアライザー) ライブラリは特定のデータ形式を解析して、Athena でそのデータ形式のテーブルを作成できるようにします。ほとんどの形式では、デフォルトの SerDe ライブラリが自動的に選択されます。次の形式については、要件に応じてライブラリを選択してください。
     + **[Apache Web Logs]** (Apache ウェブログ) – **[RegexSerDe]** または **[GrokSerDe]** ライブラリのどちらかを選択します。RegexSerDe の場合は、**[Regex definition]** (Regex の定義) ボックスに正規表現を入力します。GrokSerDe の場合は、`input.format` SerDe プロパティに一連の名前付き正規表現を入力します。名前付き正規表現は、正規表現よりも読みやすく、管理しやすいです。詳細については、「[Amazon S3 に保存されている Apache ログをクエリする](querying-apache-logs.md)」を参照してください。
     + **[CSV]** – カンマ区切り (CSV) データに二重引用符で囲まれた値が含まれていない場合、または `java.sql.Timestamp` 形式を使用している場合は、**[LazySimpleSerDe]** を選択します。引用符で囲まれた部分がデータに含まれている場合や、`TIMESTAMP` に UNIX の数値形式 (例: `1564610311`) を使用している場合は、**[OpenCSVSerDe]** を選択します。詳細については、「[CSV、TSV、カスタム区切りファイル用の Lazy Simple SerDe](lazy-simple-serde.md)」および「[CSV を処理するための Open CSV SerDe](csv-serde.md)」を参照してください。
     + **[JSON]** – **[OpenX]** または **[Hive]** JSON SerDe ライブラリのどちらかを選択します。どちらの形式でも、各 JSON ドキュメントが、1 行のテキストに存在し、フィールドが改行文字で区切られていないことが想定されます。OpenX SerDe にはいくつかの追加プロパティがあります。これらのプロパティの詳細については、「[OpenX JSON SerDe](openx-json-serde.md)」を参照してください。Hive SerDe については、「[Hive JSON SerDe](hive-json-serde.md)」を参照してください。

     Athena で SerDe ライブラリを使用する方法の詳細については、「[データ用に SerDe を選択する](supported-serdes.md)」を参照してください。

1. **[SerDe properties]** (SerDe プロパティ) で、使用している SerDe ライブラリと要件に従って、プロパティと値を追加、編集、または削除します。
   + SerDe プロパティを追加するには、**[Add SerDe property]** (SerDe プロパティを追加) を選択します。
   + **[Name]** (名前) フィールドに、プロパティの名前を入力します。
   + **[Value]** (値) フィールドに、プロパティの値を入力します。
   + SerDe プロパティを削除するには、**[Remove]** (削除) を選択します。

1. **[Table properties]** (テーブルプロパティ) で、要件に従ってテーブルプロパティを選択または編集します。
   + **[Write compression]** (書き込み圧縮) で、圧縮オプションを選択します。書き込み圧縮オプションが使用可能かどうかと、使用可能な圧縮オプションは、データ形式によって異なります。詳細については、「[Athena で圧縮を使用する](compression-formats.md)」を参照してください。
   + **[Encryption]** (暗号化) で、元のデータが Amazon S3 で暗号化されていれば **[Encrypted data set]** (暗号化されたデータセット) を選択します。このオプションで、`CREATE TABLE` ステートメント内の `has_encrypted_data` テーブルプロパティが true に設定されます。

1. **[Column details]** (列の詳細) に、テーブルに追加する列の名前とデータ型を入力します。
   + 列を 1 つずつ追加するには、[**Add a column (列の追加)**] を選択します。
   + すばやく列を追加するには、[**Bulk add columns (列を一括追加)**] を選択します。テキストボックスに、列のカンマ区切りのリストを {{column\_name}}{{data\_type}}, {{column\_name}}{{data\_type}}[, ...], の形式で入力し、**[Add]** (追加) を選択します。

1. (オプション) **[Partition details]** (パーティションの詳細) に、1 つ以上の列名とデータ型をそれぞれ追加します。パーティションでは、関連するデータが列の値に基づいてまとめられるため、クエリごとにスキャンされるデータ量を減らすことができます。パーティショニングについては、「[データのパーティション化](partitions.md)」を参照してください。

1. (オプション) **[Bucketing]** (バケット化) で、グループ化する行を含む 1 つまたは複数の列を指定し、それらの行を複数のバケットに入れることができます。これにより、バケット化された列の値が指定されている場合に、読み込むバケットのみをクエリできます。
   + **[Buckets]** (バケット) で、一意の値 (プライマリキーなど) が多く、クエリ内のデータのフィルタリングによく使用される列を 1 つまたは複数選択します。
   + **[Number of buckets]** (バケット数) に、ファイルを最適なサイズにすることができる数値を入力します。詳細については、AWS Big Data ブログの「[Amazon Athena のパフォーマンスチューニング Tips トップ 10](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)」を参照してください。
   + バケット列を指定するには、`CREATE TABLE` ステートメントで次の構文を使用します。

     ```
     CLUSTERED BY ({{bucketed_columns}}) INTO {{number_of_buckets}} BUCKETS
     ```
**注記**  
**[Bucketing]** (バケット化) オプションは、**[Iceberg]** テーブルタイプでは使用できません。

1. **[Preview table query]** (テーブルクエリのプレビュー) ボックスに、フォームで入力した情報を基に生成された `CREATE TABLE` ステートメントが表示されます。プレビューでのステートメントを、直接編集することはできません。ステートメントを変更するには、プレビューの上にあるフォームのフィールドを変更します。あるいは、フォームを使用する代わりに、クエリエディタで[ステートメントを直接作成](creating-tables-how-to.md#to-create-a-table-using-hive-ddl)します。

1. **[Create table]** (テーブルの作成) をクリックして、そこで生成されたステートメントをクエリエディタ内で実行し、テーブルを作成します。