Amazon Athena
ユーザーガイド

Amazon Athena とは

Amazon Athena は、標準 SQL を使用して Amazon Simple Storage Service (Amazon S3) でのデータの直接分析を簡易化するインタラクティブなクエリサービスです。AWS マネジメントコンソールでいくつかアクションを実行するだけで、Athena にデータの保存先の Amazon S3 を設定し、標準 SQL を使用してアドホッククエリの実行を開始できます。結果は数秒で返ります。

Athena はサーバーレスであるため、インフラストラクチャの設定や管理は不要です。また、実行したクエリにのみ課金されます。Athena は自動的にスケールして—クエリを並列実行する—ため大規模なデータセットや複雑なクエリでも結果がすぐに返ります。

Athena が適している用途

Athena では、Amazon S3 に保存された非構造化データ、半構造化データ、および構造化データを分析できます。たとえば、CSV 形式、JSON 形式、列データ形式 (Apache Parquet や Apache ORC など) に対応しています。Athena では、ANSI SQL を使用してアドホッククエリを実行できます。データを Athena 内に集約またはロードする必要はありません。

Athena は AWS Glue データカタログを統合することで、Amazon S3 のデータに対する永続的なメタデータストアを提供します。これにより、AWS アカウント全体で、AWS Glue の ETL およびデータ探索機能が統合された一元的なメタデータストアに基づいて、Athena でのテーブルの作成とデータのクエリを行うことができます。詳細については、AWS Glue 開発者ガイドの「AWS Glue との統合」および「AWS Glue とは」を参照してください。

Athena では Amazon QuickSight との統合により、データを簡単に可視化できます。

Athena では、JDBC や ODBC ドライバーを介してビジネスインテリジェンスツールや SQL クライアントに接続し、レポートの生成やデータの探索を行うことができます。詳細については、「Amazon QuickSight にようこそ」 (Amazon QuickSight ユーザーガイド) および「ODBC および JDBC ドライバーを使用した Amazon Athena への接続」を参照してください。

Athena では、AWS CloudFormation で作成した名前付きクエリを実行できます。名前付きクエリを使用すると、クエリにマッピングしたクエリ名で参照することで、クエリを複数回呼び出すことができます。詳細については、「CreateNamedQuery」 (Amazon Athena API リファレンス) および「AWS::Athena::NamedQuery」 (AWS CloudFormation ユーザーガイド) を参照してください。

Athena へのアクセス

Athena にアクセスするには、AWS マネジメントコンソール (JDBC 接続経由)、Athena API、または Athena CLI を使用できます。

テーブル、データベース、およびデータカタログの理解

Athena では、テーブルとデータベースはメタデータ定義のコンテナです。これにより、基になるソースデータのスキーマを定義します。Athena では、データセットごとにテーブルが必要です。テーブルのメタデータは、Amazon S3 内のデータの保存先を Athena に指示し、列名、データ型、テーブル名などのデータの構造を指定します。データベースは、テーブルを論理的なグループにまとめたものであり、データセットのメタデータおよびスキーマ情報のみを保持します。

Athena では、クエリ対象のデータセットごとに基になるテーブルが必要です。このテーブルに、取得したクエリの結果が返されます。したがって、データをクエリする前に、Athena にテーブルを登録しておく必要があります。登録は、テーブルの自動作成または手動作成に伴って行われます。

テーブルの作成方法に関係なく、テーブル作成プロセスに伴ってデータセットが Athena に登録されます。登録先は AWS Glue データカタログまたは Athena 内のデータカタログです。この登録によって Athena はデータに対するクエリを実行できます。

  • テーブルを自動作成するには、Athena 内から AWS Glue クローラを使用します。AWS Glue およびクローラの詳細については、「AWS Glue との統合」を参照してください。AWS Glue で作成したテーブルは、独自の AWS Glue データカタログに登録されます。Athena は、AWS Glue データカタログを使用して、このメタデータを保存および取得したり、クエリを実行して基になるデータセットを分析したりします。

AWS Glue データカタログには、AWS アカウント全体でアクセスできます。AWS Glue データカタログは、AWS のすべてのサービスで共有できるため、Athena を使用して組織全体で作成されたデータベースやテーブルを確認できます。さらに、AWS Glue ではデータスキーマを自動検出し、データの抽出、変換、ロード (ETL) を行うことができます。

注記

AWS Glue が提供されていないリージョンや AWS Glue データカタログが使用できないリージョンでは、Athena の内部データカタログを使用します。

  • テーブルを手動で作成するには

    • Athena コンソールを使用してテーブル作成ウィザードを実行します。

    • Athena コンソールを使用して Hive DDL ステートメントをクエリエディタに書き込みます。

    • Athena API または CLI で DDL ステートメントを使用して SQL クエリ文字列を実行します。

    • Athena JDBC または ODBC ドライバーを使用します。

テーブルやデータベースを手動で作成すると、Athena では内部で HiveQL データ定義言語 (DDL) ステートメント (CREATE TABLECREATE DATABASEDROP TABLE など) を使用し、テーブルやデータベースを AWS Glue データカタログ内に作成します。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] を選択して起動することもできます。