Athena でのテーブル、データベース、およびデータカタログの理解
Athena では、カタログ、データベース、およびテーブルは、基盤となるソースデータのスキーマを定義するメタデータ定義のコンテナです。
Athena はデータオブジェクトの階層を指すのに次の用語を使います。
-
データソース — データベースのグループ
-
データベース — テーブルのグループ
-
テーブル — 行または列のグループとして整理されたデータ
これらのオブジェクトは、次のように代替だが同等の名前で呼ばれることもあります。
-
データソースはカタログと呼ばれることもあります。
-
データベースはスキーマと呼ばれることもあります。
注記
この用語は、Athena で使用するフェデレーションデータソースによって異なる場合があります。詳細については、「フェデレーテッドテーブル名修飾子を理解する」を参照してください。
Athena では、データセットごとにテーブルが存在する必要があります。テーブルのメタデータは、Amazon S3 のどこにデータがあるかを Athena に伝え、列名、データ型、およびテーブルの名前などのデータの構造を指定します。データベースは、テーブルを論理的なグループにまとめたものであり、データセットのメタデータおよびスキーマ情報のみを保持します。
Athena では、クエリするデータセットごとに、クエリ結果を取得して返すために Athena が使用する基盤となるテーブルが必要です。このため、データをクエリする前に、Athena にテーブルを登録しておく必要があります。登録は、テーブルの自動作成または手動作成に伴って行われます。
AWS Glue クローラーを使用してテーブルを自動的に作成できます。AWS Glue およびクローラーの詳細については、「AWS Glue Data Catalog を使用してデータに接続する」を参照してください。AWS Glue がテーブルを作成するときは、独自の AWS Glue データカタログにテーブルを登録します。Athena は、AWS Glue データカタログを使用してこのメタデータの保存と取得を行い、基盤となるデータセットを分析するためのクエリを実行するときにそれを使用します。
テーブルの作成方法にかかわらず、テーブル作成プロセスによってデータセットが Athena に登録されます。登録は AWS Glue Data Catalog で行われ、Athena がデータをクエリすることを可能にします。Athena クエリエディタでは、このカタログ (またはデータソース) は、ラベル AwsDataCatalog
で参照されます。
テーブルの作成後は、SQL SELECT ステートメントを使用してテーブルをクエリすることができます。これには、ソースデータの特定のファイルの場所の取得が含まれます。クエリの結果は、Amazon S3 にあるユーザー指定のクエリ結果の場所に保存されます。
Amazon Web Services アカウント全体で AWS Glue データカタログにアクセスできます。AWS Glue データカタログは他の AWS のサービス と共有できるため、Athena を使用して組織全体で作成されたデータベースやテーブルを確認できます。また、その逆も可能です。
-
テーブルを手動で作成する方法は以下のとおりです。
-
Athena コンソールを使用して、テーブル作成ウィザードを実行する。
-
Athena コンソールを使用して、クエリエディタに Hive DDL ステートメントを記述する。
-
Athena API または CLI を使用して、DDL ステートメントで SQL クエリ文字列を実行する。
-
Athena JDBC または ODBC ドライバーを使用する。
-
テーブルとデータベースを手動で作成すると、Athena が内部で CREATE TABLE
、CREATE DATABASE
、DROP TABLE
などの HiveQL データ定義言語 (DDL) ステートメントを使用して、AWS Glue Data Catalog にテーブルとデータベースを作成します。
始めるには、Athena コンソールのチュートリアルを使用するか、Athena ドキュメントのステップバイステップガイドで作業することができます。
-
Athena コンソールでチュートリアルを使用するには、コンソールの右上にある情報アイコンを選択し、[チュートリアル]タブを選択します。
-
テーブルの作成と Athena クエリエディタでのクエリの記述に関するステップバイステップのチュートリアルについては、「使用を開始する」を参照してください。