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

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

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

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

クローラのセットアップ

Athena コンソールを起動し、その後 AWS Glue コンソールを統合的に使用してクローラをセットアップできます。クローラを作成するときに、クロールするデータストアを選択したり、クローラを既存のカタログテーブルを参照したりできます。

注記

クローラを設定するためのステップは、Athena コンソールで使用できるオプションに応じて異なります。オプション A の [Connect data source] (データソースを接続する) リンクを利用できない場合は、オプション B の手順を使用してください。

オプション A

オプション A: データソースを接続するリンクを使用して AWS Glue でクローラをセットアップする

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

  2. [Connect data source] (データソースを接続する) をクリックします。[Connect data source (データソースの接続)] リンクがない場合、オプション B を使用します。

    
                            [Connect data source] (データソースを接続する) をクリックします。
  3. [データソースを接続する] ページで、[AWS Glue データカタログ] を選択します。

  4. [Next] をクリックします。

  5. [Connection details (コレクションの詳細)] ページで、[Set up crawler in AWS Glue to retrieve schema information automatically (クローラをセットアップして自動でスキーマ情報を取得)] を選択します。

  6. [AWS Glue への接続] をクリックします。

  7. AWS Glue コンソールの [Add crawler (クローラの追加)] ページで、次の手順に従いクローラを作成します。

    詳細については、「AWS Glue Data Catalog の作成」を参照してください。

オプション B

Athena コンソールで オプション A の [データソースを接続する] リンクを利用できない場合は、以下の手順を使用して AWS Glue クローラをセットアップします。

オプション B: AWS Glue Data Catalog リンクから AWS Glue のクローラをセットアップする

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

  2. を選択します。。AWS Glue Data Catalog

    
                            を選択します。。AWS Glue Data Catalog
  3. AWS Glue コンソールの [Table (テーブル)] ページで、[Add tables using a crawler (クローラを使用してテーブルを追加)] を選択します。

    
                            [Add tables using a crawler] (クローラを使用してテーブルを追加) をクリックします。
  4. AWS Glue コンソールの [Add crawler (クローラの追加)] ページで、次の手順に従いクローラを作成します。

    詳細については、「AWS Glue Data Catalog の作成」を参照してください。

注記

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

スキーマテーブルを手動で追加する

以下の手順は、Athena コンソールを使用してテーブルを手動で追加する方法を説明しています。

手動でテーブルを追加してスキーマ情報を入力する

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

  2. [Connect data source] (データソースを接続する) をクリックします。

  3. [データソースを接続する] ページで、[AWS Glue データカタログ] を選択します。

  4. [Next] をクリックします。

  5. [Connection details (コレクションの詳細)] ページで、[Add a table and enter schema information manually (テーブルを追加して手動でスキーマ情報を入力)] を選択します。

  6. [Continue to add table (続行してテーブルを追加)] をクリックします。

  7. Athena コンソールの [Add table] (テーブルの追加) ページで、[Database] (データベース) に既存のデータベースを選択するか、新しいデータベースを作成します。

  8. テーブル名を入力または選択します。

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

  10. [Next] をクリックします。

  11. [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 キーターミネータ)] を指定できます。

  12. [] で、列名と列のデータ型を指定します。

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

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

  13. [Next] を選択します。

  14. (オプション)[Partitions (パーティション)] で、[Add a partition (パーティションの追加)] をクリックして列名とデータ型を追加します。

  15. [Create table] を選択します。指定したテーブルの DDL が [Query Editor (クエリエディタ)] に表示されます。以下の例は CSV 形式の 2 カラムのテーブルに対して生成された DDL を示しています。

    CREATE EXTERNAL TABLE IF NOT EXISTS MyManualDB.MyManualTable ( `cola` string, `colb` string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = ',', 'field.delim' = ',' ) LOCATION 's3://bucket_name/' TBLPROPERTIES ('has_encrypted_data'='false');
  16. [Run query (クエリを実行)] を選択してテーブルを作成します。