Athena コンソールでフォームを使用して AWS Glue テーブルを追加する
以下の手順で、テーブルの追加のために、Athena コンソールの [Create Table From S3 bucket data] (S3 バケットデータからテーブルを作成) フォームを使用する方法を説明します。
フォームによりテーブルを追加してスキーマ情報を入力するには
https://console.aws.amazon.com/athena/
で Athena コンソールを開きます。 -
クエリエディタで、[Tables and views] (テーブルとビュー) の横にある [Create] (作成) をクリックし、次に [S3 bucket data] (S3 バケットデータ) をクリックします。
-
[Create Table From S3 bucket data] (S3 バケットデータからテーブルを作成) フォームで、[Table name] (テーブル名) にテーブルの名前を入力します。Athena のデータベース名、テーブル名、および列名で使用できる文字については、「データベース、テーブル、列に名前を付ける」を参照してください。
-
[Database configuration] (データベース設定) で既存のデータベースを選択するか、新しいデータベースを作成します。
-
[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/)。
-
[Data Format] (データ形式) で、次のオプションから選択します。
-
[Table type] (テーブルタイプ) には、[Apache Hive] (アパッチハイブ)、[Apache Iceberg] (アパッチアイスバーグ)、または [Delta Lake] (デルタレイク) を選択してください。Athena では Apache Hive テーブルタイプがデフォルトとして使用されます。Athena での Apache Iceberg テーブルのクエリについては、「Apache Iceberg テーブルをクエリする」を参照してください。Athena での Delta Lake テーブルの使用に関する情報は、「Linux Foundation Delta Lake テーブルをクエリする」を参照してください。
-
[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 ログをクエリする」を参照してください。 -
[CSV] – カンマ区切り (CSV) データに二重引用符で囲まれた値が含まれていない場合、または
java.sql.Timestamp
形式を使用している場合は、[LazySimpleSerDe] を選択します。引用符で囲まれた部分がデータに含まれている場合や、TIMESTAMP
に UNIX の数値形式 (例:1564610311
) を使用している場合は、[OpenCSVSerDe] を選択します。詳細については、CSV、TSV、カスタム区切りファイル用の Lazy Simple SerDeおよびCSV を処理するための Open CSV SerDeを参照してください。 -
[JSON] – [OpenX] または [Hive] JSON SerDe ライブラリのどちらかを選択します。どちらの形式でも、各 JSON ドキュメントが、1 行のテキストに存在し、フィールドが改行文字で区切られていないことが想定されます。OpenX SerDe にはいくつかの追加プロパティがあります。これらのプロパティの詳細については、「OpenX JSON SerDe」を参照してください。Hive SerDe については、「Hive JSON SerDe」を参照してください。
Athena で SerDe ライブラリを使用する方法の詳細については、「データ用に SerDe を選択する」を参照してください。
-
-
-
[SerDe properties] (SerDe プロパティ) で、使用している SerDe ライブラリと要件に従って、プロパティと値を追加、編集、または削除します。
-
SerDe プロパティを追加するには、[Add SerDe property] (SerDe プロパティを追加) を選択します。
-
[Name] (名前) フィールドに、プロパティの名前を入力します。
-
[Value] (値) フィールドに、プロパティの値を入力します。
-
SerDe プロパティを削除するには、[Remove] (削除) を選択します。
-
-
[Table properties] (テーブルプロパティ) で、要件に従ってテーブルプロパティを選択または編集します。
-
[Write compression] (書き込み圧縮) で、圧縮オプションを選択します。書き込み圧縮オプションが使用可能かどうかと、使用可能な圧縮オプションは、データ形式によって異なります。詳細については、「Athena で圧縮を使用する」を参照してください。
-
[Encryption] (暗号化) で、元のデータが Amazon S3 で暗号化されていれば [Encrypted data set] (暗号化されたデータセット) を選択します。このオプションで、
CREATE TABLE
ステートメント内のhas_encrypted_data
テーブルプロパティが true に設定されます。
-
-
[Column details] (列の詳細) に、テーブルに追加する列の名前とデータ型を入力します。
-
列を 1 つずつ追加するには、[Add a column (列の追加)] を選択します。
-
すばやく列を追加するには、[Bulk add columns (列を一括追加)] を選択します。テキストボックスに、列のカンマ区切りのリストを
column_name
data_type
,column_name
data_type
[, ...], の形式で入力し、[Add] (追加) を選択します。
-
-
(オプション) [Partition details] (パーティションの詳細) に、1 つ以上の列名とデータ型をそれぞれ追加します。パーティションでは、関連するデータが列の値に基づいてまとめられるため、クエリごとにスキャンされるデータ量を減らすことができます。パーティショニングについては、「データのパーティション化」を参照してください。
-
(オプション) [Bucketing] (バケット化) で、グループ化する行を含む 1 つまたは複数の列を指定し、それらの行を複数のバケットに入れることができます。これにより、バケット化された列の値が指定されている場合に、読み込むバケットのみをクエリできます。
-
[Buckets] (バケット) で、一意の値 (プライマリキーなど) が多く、クエリ内のデータのフィルタリングによく使用される列を 1 つまたは複数選択します。
-
[Number of buckets] (バケット数) に、ファイルを最適なサイズにすることができる数値を入力します。詳細については、AWS Big Data ブログの「Amazon Athena のパフォーマンスチューニング Tips トップ 10
」を参照してください。 -
バケット列を指定するには、
CREATE TABLE
ステートメントで次の構文を使用します。CLUSTERED BY (
bucketed_columns
) INTOnumber_of_buckets
BUCKETS
注記
[Bucketing] (バケット化) オプションは、[Iceberg] テーブルタイプでは使用できません。
-
-
[Preview table query] (テーブルクエリのプレビュー) ボックスに、フォームで入力した情報を基に生成された
CREATE TABLE
ステートメントが表示されます。プレビューでのステートメントを、直接編集することはできません。ステートメントを変更するには、プレビューの上にあるフォームのフィールドを変更します。あるいは、フォームを使用する代わりに、クエリエディタでステートメントを直接作成します。 -
[Create table] (テーブルの作成) をクリックして、そこで生成されたステートメントをクエリエディタ内で実行し、テーブルを作成します。