AWS Glue を使用した Amazon S3 内のデータソースへの接続 - Amazon Athena

AWS Glue を使用した Amazon S3 内のデータソースへの接続

Athena は、テーブルや列の名前などのメタデータを保存するために、AWS Glue Data Catalog を使用して Amazon S3 に保存されたデータに接続できます。接続が確立されると、データベース、テーブル、およびビューが Athena のクエリエディタに表示されます。

AWS Glue が使用するスキーマ情報を定義するには、情報を自動的に取得する AWS Glue クローラを作成するか、手動でテーブルを追加してそこにスキーマ情報を入力します。

AWS Glue クローラの作成

クローラの作成には、まず Athena コンソールを起動し、それと合わせて AWS Glue コンソールを使用します。クローラーを作成する際には、Amazon S3 内にあるクロール対象のデータの場所を指定します。

Athena コンソールから AWS Glue のクローラを作成するには

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

  2. クエリエディタで、[Tables and views] (テーブルとビュー) の横にある [Create] (作成) をクリックし、次に [AWS Glue crawler] (AWS Glue クローラ) をクリックします。

  3. AWS Glue コンソールの [Add crawler (クローラの追加)] ページで、次の手順に従いクローラを作成します。詳細については、このガイドの「AWS Glue クローラの使用」、ならびに「AWS Glue デベロッパーガイド」の「AWS Glue Data Catalog の入力」を参照してください。

注記

Athena は、AWS Glue クローラに指定した除外パターンを認識しません。例えば、.csv.json ファイルの両方が含まれる Amazon S3 バケットがある場合、.json ファイルをクローラから除外しても、Athena は両方のファイルのグループをクエリします。これを回避するには、除外するファイルを別の場所に配置します。

フォームを使用したテーブルの追加

以下の手順で、テーブルの追加のために、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] (テーブル名) にテーブルの名前を入力します。

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

  5. [Location of Input Data Set] (入力データセットの場所) に、処理するデータセットが含まれるフォルダへの Amazon S3 のパスを指定します。

  6. [Data Format (データ形式)] で、データ形式(Apache Web LogsCSVTSVText File with Custom DelimitersJSONParquet、または ORC)を選択します。

    • [Apache Web Logs] オプションでは、[Regex (正規表現)] ボックスに正規表現を入力する必要もあります。

    • [Text File with Custom Delimiters (カスタム区切り記号のあるテキストファイル)] オプションでは、[Field terminator (フィールドターミネータ)](列区切り記号)を指定します。オプションで、配列型の [Collection terminator (コレクションターミネータ)] または [Map key terminator (Map キーターミネータ)] を指定できます。

  7. [Column details] (列の詳細) で、列の名前とデータ型を指定します。

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

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

  8. (オプション) [Partition details] (パーティションの詳細) に、1 つ以上の列名とデータ型をそれぞれ追加します。

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

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