AWS Glueデータ・カタログを使用した外部データの問合せ
Autonomous Databaseは、Amazon AWS Glue Data Catalogインスタンスと同期するためのシステムをサポートします。
AWS Glueデータ・カタログを使用した問合せについて
Autonomous Databaseでは、Amazon Web Service (AWS) Glueデータ・カタログ・メタデータと同期できます。 データベース外部表は、Amazon Simple Storage Service (S3)に格納されたデータについて、AWS Glueが収集したすべての表に対してAutonomous Databaseによって自動的に作成されます。 ユーザーは、外部データソースのスキーマを手動で導出して外部表を作成することなく、Autonomous DatabaseからS3に格納されているデータを問い合せることができます。
Amazon AWS Glue Data Catalogは、データ・プロフェッショナルがAWSクラウドでデータを検出し、データ・ガバナンスをサポートする一元化されたメタデータ管理サービスです。 Autonomous Databaseインスタンスには、自動的にデータ・カタログ・メタデータをAWS Glueデータ・カタログと同期する機能があり、データベース・ユーザーはAutonomous Databaseを使用して、AWSクラウドに格納されているデータをすぐに問い合せることができます。
AWS Glueデータ・カタログとの同期には、OCIデータ・カタログとの同期と同じプロパティがあります。 同期は動的で、基礎となるデータの変更に関してデータベースを常に最新の状態に保ち、数百から数千の表を自動的に保持するため、管理コストを削減できます。
AWS Glueデータ・カタログを使用した問合せに関連する概念
Amazon Web Service (AWS) Glueデータ・カタログで問い合せるには、次の概念を理解する必要があります。
- AWS Glueデータ・カタログ: データベース
-
AWS Glueデータベースは、リレーショナル表定義のコレクションを表し、論理グループに編成されています。 各AWS Glueデータ・カタログ・インスタンスは、複数のデータベースを管理します。
- 「AWS Glueデータ・カタログ: 表」
-
「AWS Glue」表は、AWSクラウドに格納されているデータに対するリレーショナル表を表します。 「AWS Glue」表は、基礎となるデータのスキーマを定義し、列情報、パーティション情報、シリアライズ情報、記憶域情報、統計、ユーザー定義メタデータおよびその他のメタデータで構成されます。 AWS Glueデータ・カタログの表は、手動で作成することも、AWS Glueクローラを使用して自動的に作成することもできます。
- 「Glueデータ・カタログ: クローラ」
-
クローラを使用して、AWS Glueデータ・カタログに表を移入できます。 これは、ほとんどのAWS Glueユーザーが使用する主なメソッドです。 クローラは、1回の実行で複数のデータ・ストアをクロールできます。 完了すると、クローラはデータ・カタログ内の1つ以上の表を作成または更新します。 AWS Glueで定義した抽出、変換およびロード(ETL)ジョブでは、これらのデータ・カタログ表がソースおよびターゲットとして使用されます。 ETLジョブは、ソースおよびターゲットのデータ・カタログ表に指定されたデータ・ストアに対して読取りおよび書込みを行います。
「AWS Glue」表は、ユーザーが手動で作成することも、事前定義済クローラまたはカスタム・クローラを使用して自動的に作成することもできます。 クローラは、基礎となるデータ・ストア(Amazon S3など)に接続し、データのスキーマを導出するための分類子を起動し、推測メタデータを格納するための「AWS Glue」表を作成します。 AWS Glueには、CSV、JSON、Parquet、AVROなどの一般的なファイル・タイプの分類子が用意されています。
Autonomous Databaseと「AWS Glue」間のマッピング
同期プロセス中、外部表は、「AWS Glue」データ・カタログ・データベースおよびAmazon S3上の表から導出されたAutonomous Databaseに作成されます。
「AWS Glue」は、収集されたメタデータをデータベースおよび表に編成します。 AWS Glueデータベースは、リレーショナル表定義の集合です。 共通スキーマおよび表に関連付けられたファイルのプロパティを記述する「AWS Glue」表。
AWS Glueは、属性を表すリレーショナル・モデルに従います。 「階層スキーマからリレーショナル・スキーマへのマッピング」の場合、AWS Glueは半構造化データのスキーマを推測し、ETLプロセスを使用してデータをリレーショナル・スキーマにフラット化します。
次の表は、OCIデータ・カタログの概念とAWS Glueデータ・カタログの概念のマッピングを示しています。
表3-5 OCIデータ・カタログからAWS Glueデータ・カタログへのマッピング
| OCIデータ・カタログ | AWS Glueデータ・カタログ | Oracle Database |
|---|---|---|
| データ・アセット | データベース | スキーマ |
| フォルダ | (バケット) | スキーマ |
| 論理エンティティ | 表 | 表 |
AWS Glueデータ・カタログを使用した問合せのユーザー・ワークフロー
AWS Glueデータ・カタログでAWS S3データを問い合せるための基本的なユーザー・ワークフローには、AWS Glueデータ・カタログへの接続、Autonomous Databaseとの同期による外部表の自動作成、およびS3データの問合せが含まれます。
データベースの「データ・カタログ」問合せ管理またはデータベース管理者は、生成された外部表へのREADアクセス権を付与します。これにより、データ・アナリストおよびその他のデータベース・ユーザーは、外部データ・ソースのスキーマを手動で導出して外部表を作成することなく、Autonomous Databaseを参照および問合せできます。
ユーザー
次の表では、ユーザー・ワークフロー・アクションを実行するさまざまなタイプのユーザーについて説明します。
| ユーザー | 説明 |
|---|---|
| データベース・データ・カタログ管理者 | DCAT_SYNCロールを持つデータベース・ユーザー。
|
| データベース・データ・カタログ問合せ管理者 | 自動的に作成された外部表へのアクセス権を他のユーザーに付与できるデータベース・ユーザー。 |
| データ・アナリスト | Autonomous Databaseのデータベース・ユーザーは、自動的に作成された外部表を問い合せるか、AWS Glueデータ・カタログと直接やり取りすることによって、AWS S3のデータを問い合せます。 |
|
AWS Glueデータ・カタログ・ユーザー |
AWS Glueデータ・カタログへのアクセス権を持つAWSユーザー。 |
|
AWS S3 Object Storageユーザー |
AWSに保存されているデータへのアクセス権を持つAWS S3ユーザー |
ユーザー・ワークフロー
次の表に、ワークフローに含まれる各処理と、その処理を実行できるユーザーのタイプを示します。
ノート:
DBMS_DCATパッケージは、AWS Glueデータ・カタログを使用してAWS S3オブジェクト・ストレージを問い合せるのに必要なタスクを実行するために使用できます。 「DBMS_DCATパッケージ」を参照してください。
| アクション | ユーザー | 説明 |
|---|---|---|
| ポリシーの作成 | データベース「データ・カタログ」管理者 |
Autonomous Databaseユーザー資格証明には、AWS Glue 「データ・カタログ」にアクセスし、S3オブジェクト・ストレージから読み取るための適切な権限が必要です。 詳細情報: 必要な資格証明とIAMポリシー。 |
| 資格証明を作成 | データベース「データ・カタログ」管理者 |
AWS Glue 「データ・カタログ」にアクセスし、S3オブジェクト・ストレージを問い合せるためのデータベース資格証明が配置されていることを確認します。 ユーザーは
DBMS_CLOUD.CREATE_CREDENTIALをコールして、ユーザー資格証明を作成します。
ノート: Amazon Web Services (AWS)資格証明のみがサポートされています。 AWS Amazon Resource Names (ARN)の資格証明はサポートされていません。 |
|
接続 |
データベース「データ・カタログ」管理者 |
Autonomous DatabaseインスタンスとAWS Glueデータ・カタログ・インスタンス間の接続を確立します。 この接続は、AWS Glueデータ・カタログ・ユーザーの権限を使用します。 Autonomous Databaseインスタンスから複数のAWS Glueデータ・カタログ・インスタンスへの接続がサポートされています。 Autonomous DatabaseインスタンスとAWS Glueデータ・カタログ・インスタンス間の接続を開始するには、次のようにします:
接続が行われると、Autonomous Databaseは、関連するメタデータ(AWS GlueカタログID、リージョン、エンドポイント、資格証明オブジェクトなど)を格納します。 詳細情報: SET_DATA_CATALOG_CONNプロシージャ、UNSET_DATA_CATALOG_CONNプロシージャ、SET_DATA_CATALOG_CREDENTIALプロシージャ、SET_OBJECT_STORE_CREDENTIALプロシージャ。 |
|
同期化 |
データベース「データ・カタログ」管理者 |
ユーザーは、 同期では次のことが実行されます:
詳細情報: RUN_SYNCプロシージャ、CREATE_SYNC_JOBプロシージャ、DROP_SYNC_JOBプロシージャ、同期マッピングを参照してください
|
|
同期のモニター |
データベース「データ・カタログ」管理者 |
ユーザーは、USER_LOAD_OPERATIONSビューを問い合せて同期ステータスを表示できます。 同期プロセスの完了後、ユーザーは、外部表へのマッピングの詳細など、同期結果のログを表示できます。
詳細情報: 負荷のモニタリングとトラブルシューティング |
|
権限の付与 |
データベース「データ・カタログ」問合せ管理者、データベース管理者 |
データベースの「データ・カタログ」問合せ管理者またはデータベース管理者は、生成された外部表に対するREAD権限をデータ・アナリスト・ユーザーに付与する必要があります。 これにより、データ・アナリストは生成された外部表を問い合せることができます。 |
|
問合せ |
データ・アナリスト |
データ・アナリストは、GLUE$*スキーマ内の同期されたスキーマおよび表を確認し、Oracle SQLをサポートする任意のツールまたはアプリケーションを介して外部表に問い合せることができます。 S3のデータには、AWS S3オブジェクト・ストレージ・ユーザーの権限を使用してアクセスします。 |
|
接続の終了 |
データベース「データ・カタログ」管理者 |
既存の「データ・カタログ」関連付けを削除するには、ユーザーが このアクションは、接続されたAWS Glue 「データ・カタログ」およびカタログから導出された外部表の使用を計画していない場合にのみ実行されます。 このアクションは、AWS Glue 「データ・カタログ」メタデータを削除し、同期された外部表をAutonomous Databaseインスタンスから削除します。 |
例: AWS Glueデータ・カタログを使用した問合せ
この例では、AWS Glueデータ・カタログを使用して、Amazon Simple Storage Service (Amazon S3)に格納されているデータセットに対して問合せを実行するプロセスを段階的に説明します。
この例では、AWS Glueデータ・カタログのメタデータが調査され、以前にクロールされてデータ・カタログに存在するAmazon S3オブジェクトを確認します。 Autonomous Databaseは、AWS Glue Data CatalogおよびAmazon S3に関連付けられます。 データ・カタログはAutonomous Databaseと同期され、Amazon S3に格納されているデータセット上に外部表が作成されます。 外部表は、Amazon S3のデータセットの問合せに使用されます。
- AWS Glueデータ・カタログでメタデータを検査します。
- AWS Glueコンソールを起動します。

「図glue_console.pngの説明」 - データ・カタログ、データベースおよび表に移動して、既存のオブジェクトを検索します。
この例では、AWS Glueが以前にクロールして表を作成したAmazon S3に、次のオブジェクトが存在します:

図glue_tables.pngの説明
- AWS Glueコンソールを起動します。
- AWS GlueをAutonomous Databaseに関連付けます。
- Autonomous Databaseに資格証明を作成します。
次のプロシージャ・コールには、Amazon S3のベースとなるデータへのアクセス権をAutonomous Databaseに提供するためのアクセスIDおよび秘密キーが含まれます。
exec dbms_cloud.create_credential('CRED_AWS','<access id>', '<access key>'); - 資格証明をAWS Glue Data CatalogおよびAmazon S3オブジェクト・ストレージに関連付けます。
これらのプロシージャ・コールは、それぞれデータ・カタログとオブジェクト・ストレージを資格証明に関連付けます。
exec dbms_dcat.set_data_catalog_credential('CRED_AWS'); exec dbms_dcat.set_object_store_credential('CRED_AWS'); - Glueが実行されているAWSリージョンを設定します。
exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
- Autonomous Databaseに資格証明を作成します。
- メタデータを同期して、AWS Glueデータベースおよび表から導出されたAutonomous Databaseに外部表を作成します。
- 関連付けが完了したので、
all_glue_databasesビューを使用して、AWS Glueデータ・カタログ内のデータベースを検索します。select * from all_glue_databases order by name; all_glue_tablesビューを使用して、同期に使用できる表のリストを取得します。select * from all_glue_tables order by database_name, name;- Autonomous Databaseを、
parqデータベースにある2つの表storeおよびitemと同期します。begin dbms_dcat.run_sync( synced_objects => ' { "database_list": [ { "database": "parq", "table_list": ["store","item"] } ] }', error_semantics => 'STOP_ON_ERROR'); end; /
- 関連付けが完了したので、
- Autonomous Databaseの新しいオブジェクトを調べて、S3の上部で問合せを実行します。
- SQL Developerを使用して、前の同期操作で作成された新しいオブジェクトを表示します。
GLUE$PARQ_TPCDS_ORACLE_PARQスキーマが生成され、dbms_dcat.run_syncプロシージャ・コールによって自動的に名前が付けられました。
図glue_sql_dev.pngの説明 - Amazon S3のデータセット・ストアに対してSQL問合せを実行します。
SELECT * FROM glue$parq_tpcds_oracle_parq.store;
- SQL Developerを使用して、前の同期操作で作成された新しいオブジェクトを表示します。
