「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
テーブル、データベース、およびデータカタログの理解
Athena では、テーブルとデータベースはメタデータ定義のコンテナです。これにより、基になるソースデータのスキーマを定義します。Athena では、データセットごとにテーブルが必要です。テーブルのメタデータは、Amazon S3 内のデータの保存先を Athena に指示し、列名、データ型、テーブル名などのデータの構造を指定します。データベースは、テーブルを論理的なグループにまとめたものであり、データセットのメタデータおよびスキーマ情報のみを保持します。
Athena では、クエリ対象のデータセットごとに基になるテーブルが必要です。このテーブルに、取得したクエリの結果が返されます。したがって、データをクエリする前に、Athena にテーブルを登録しておく必要があります。登録は、テーブルの自動作成または手動作成に伴って行われます。
テーブルの作成方法に関係なく、テーブル作成プロセスに伴ってデータセットが Athena に登録されます。登録先は AWS Glue データカタログです。この登録によって Athena はデータに対するクエリを実行できます。
-
テーブルを自動作成するには、Athena 内から AWS Glue クローラを使用します。AWS Glue およびクローラの詳細については、「AWS Glue との統合」を参照してください。AWS Glue で作成したテーブルは、独自の AWS Glue Data Catalog に登録されます。Athena は、AWS Glue Data Catalog を使用して、このメタデータを保存および取得したり、クエリを実行して基となるデータセットを分析したりします。
テーブルを作成したら、SQL SELECT ステートメントを使用してクエリを実行できます。たとえば、ソースデータの特定のファイルの場所を取得できます。クエリ結果は、Amazon S3指定したクエリ結果の場所の に保存されます。
AWS Glue Data Catalog は、AWS アカウント全体でアクセスできます。その他の AWS サービスが AWS Glue Data Catalog を共有できるため、Athena を使用して組織全体で作成されたデータベースやテーブルを確認でき、その逆もできます。さらに、AWS Glue ではデータスキーマを自動検出し、データの抽出、変換、ロード (ETL) を行うことができます。
-
テーブルを手動で作成するには
-
Athena コンソールを使用してテーブル作成ウィザードを実行します。
-
Athena コンソールを使用して Hive DDL ステートメントをクエリエディタに書き込みます。
-
API または CLI で DDL ステートメントを使用して SQL クエリ文字列を実行します。Athena
-
Athena JDBC または ODBC ドライバーを使用します。
-
テーブルやデータベースを手動で作成すると、Athena では内部で HiveQL、CREATE TABLE
、CREATE
DATABASE
などの DROP TABLE
データ定義言語 (DDL) ステートメントを使用して、AWS Glue データカタログにテーブルやデータベースを作成します。
2017 年 8 月 14 日より前に作成されたテーブルが Athena にある場合、これらは Athena が管理する内部データカタログ内に作成されたものであり、更新するまでは AWS Glue データカタログと併存します。詳細については、「AWS Glue データカタログへのステップバイステップのアップグレード」を参照してください。
内部で既存のテーブルをクエリする場合、Amazon Athena は分散 SQL エンジンの Presto を使用します。Athena 内には、Athena を使用してテーブルを作成してクエリを実行する方法を示すために、サンプルデータを使用した例が用意されています。Athena コンソールには Amazon S3 の保存済みデータに基づいてテーブルの作成を開始するチュートリアルも用意されています。
-
テーブルの作成と Athena クエリエディタへのクエリの書き込みに関する詳細なチュートリアルについては、「開始方法」を参照してください。
-
コンソールで Athena チュートリアルを実行します。このチュートリアルは、https://console.aws.amazon.com/athena/
に初めてログインしたときに自動的に起動します。コンソールで [Tutorial] を選択して起動することもできます。