Athena コンソールでフォームを使用して AWS Glue テーブルを追加する - Amazon Athena

Athena コンソールでフォームを使用して AWS Glue テーブルを追加する

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

フォームによりテーブルを追加してスキーマ情報を入力するには
  1. https://console.aws.amazon.com/athena/ で Athena コンソールを開きます。

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

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

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

  5. [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/)。

  6. [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 を選択する」を参照してください。

  7. [SerDe properties] (SerDe プロパティ) で、使用している SerDe ライブラリと要件に従って、プロパティと値を追加、編集、または削除します。

    • SerDe プロパティを追加するには、[Add SerDe property] (SerDe プロパティを追加) を選択します。

    • [Name] (名前) フィールドに、プロパティの名前を入力します。

    • [Value] (値) フィールドに、プロパティの値を入力します。

    • SerDe プロパティを削除するには、[Remove] (削除) を選択します。

  8. [Table properties] (テーブルプロパティ) で、要件に従ってテーブルプロパティを選択または編集します。

    • [Write compression] (書き込み圧縮) で、圧縮オプションを選択します。書き込み圧縮オプションが使用可能かどうかと、使用可能な圧縮オプションは、データ形式によって異なります。詳細については、「Athena で圧縮を使用する」を参照してください。

    • [Encryption] (暗号化) で、元のデータが Amazon S3 で暗号化されていれば [Encrypted data set] (暗号化されたデータセット) を選択します。このオプションで、CREATE TABLE ステートメント内の has_encrypted_data テーブルプロパティが true に設定されます。

  9. [Column details] (列の詳細) に、テーブルに追加する列の名前とデータ型を入力します。

    • 列を 1 つずつ追加するには、[Add a column (列の追加)] を選択します。

    • すばやく列を追加するには、[Bulk add columns (列を一括追加)] を選択します。テキストボックスに、列のカンマ区切りのリストを column_namedata_type, column_namedata_type[, ...], の形式で入力し、[Add] (追加) を選択します。

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

  11. (オプション) [Bucketing] (バケット化) で、グループ化する行を含む 1 つまたは複数の列を指定し、それらの行を複数のバケットに入れることができます。これにより、バケット化された列の値が指定されている場合に、読み込むバケットのみをクエリできます。

    • [Buckets] (バケット) で、一意の値 (プライマリキーなど) が多く、クエリ内のデータのフィルタリングによく使用される列を 1 つまたは複数選択します。

    • [Number of buckets] (バケット数) に、ファイルを最適なサイズにすることができる数値を入力します。詳細については、AWS Big Data ブログの「Amazon Athena のパフォーマンスチューニング Tips トップ 10」を参照してください。

    • バケット列を指定するには、CREATE TABLE ステートメントで次の構文を使用します。

      CLUSTERED BY (bucketed_columns) INTO number_of_buckets BUCKETS
    注記

    [Bucketing] (バケット化) オプションは、[Iceberg] テーブルタイプでは使用できません。

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

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