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に格納されているデータを問い合せることができます。 - AWS Glueデータ・カタログを使用した問合せに関連する概念
Amazon Web Service (AWS) Glueデータ・カタログを使用した問合せには、次の概念を理解する必要があります。 - Autonomous DatabaseとAWS Glueの間のマッピング
同期プロセス中に、Amazon S3を介してAWS Glue Data Catalogデータベースおよび表から導出されたAutonomous Databaseに外部表が作成されます。 - AWS Glueデータ・カタログを使用した問合せのユーザー・ワークフロー
AWS Glueデータ・カタログを使用してAWS S3データを問い合せるための基本的なユーザー・ワークフローには、AWS Glueデータ・カタログへの接続、Autonomous Databaseとの同期による外部表の自動作成、およびS3データの問合せが含まれます。 - 例: AWS Glueデータ・カタログを使用した問合せ
この例では、AWS Glueデータ・カタログを使用して、Amazon Simple Storage Service (Amazon S3)に格納されているデータセットに対する問合せを実行するプロセスを順を追って説明します。
AWS Glueデータカタログを使用したクエリーについて
Autonomous Databaseでは、Amazon Web Service (AWS) Glue Data Catalogメタデータと同期できます。データベース外部表は、Amazon Simple Storage Service (S3)に格納されたデータについてAWS Glueによって収集されたすべての表に対して、Autonomous Databaseによって自動的に作成されます。ユーザーは、外部データ・ソースのスキーマを手動で導出して外部表を作成することなく、Autonomous DatabaseからS3に格納されているデータを問い合せることができます。
Amazon AWS Glue Data Catalogは、データ専門家がデータを発見し、AWSクラウドでのデータガバナンスをサポートするのに役立つ、一元化されたメタデータ管理サービスです。Autonomous Databaseインスタンスには、自動データ・カタログ・メタデータをAWS Glue Data Catalogと同期する機能があり、データベース・ユーザーは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間のマッピング
同期プロセス中に、外部表はAmazon S3を介してAWS Glue Data Catalogデータベースおよび表から導出されたAutonomous Databaseに作成されます。
AWS Glueは、収集したメタデータをデータベースやテーブルに整理します。AWS Glueデータベースは、リレーショナルテーブル定義のコレクションです。AWS Glueテーブル。テーブルに関連付けられたファイルの共通スキーマとプロパティーを記述します。
AWS Glueは、属性を表すリレーショナルモデルに従います。階層スキーマをリレーショナル・スキーマにマップする場合、AWS Glueは、半構造化データのスキーマを推測し、ETLプロセスを使用してデータをリレーショナル・スキーマにフラット化します。
次の表に、OCIデータ・カタログの概念とAWS Glue Data Catalogの概念の間のマッピングを示します。
表3-5 OCIデータ・カタログからAWS Glueデータ・カタログへのマッピング
OCIデータ・カタログ | AWS Glueデータ・カタログ | Oracle Database |
---|---|---|
データ・アセット | データベース | スキーマ |
フォルダ | (バケット) | スキーマ |
論理的なエンティティ | 表 | 表 |
AWS Glueデータカタログでクエリーするためのユーザーワークフロー
AWS Glue Data Catalogを使用してAWS S3データを問い合せるための基本的なユーザー・ワークフローでは、AWS Glue Data Catalogに接続し、Autonomous Databaseと同期して外部表を自動的に作成し、S3データを問い合せます。
データベース・データ・カタログ問合せ管理またはデータベース管理では、生成された外部表へのREADアクセス権が付与されるため、データ・アナリストや他のデータベース・ユーザーは、外部データ・ソースのスキーマを手動で導出して外部表を作成することなく、Autonomous Databaseを参照および問合せできます。
ユーザー
次の表では、ユーザーワークフローアクションを実行するさまざまなタイプのユーザーについて説明します。
ユーザー | 摘要 |
---|---|
データベース・データ・カタログ管理者 | DCAT_SYNC ロールを持つデータベース・ユーザー。
|
データベース・データ・カタログ問合せ管理者 | 自動的に作成された外部表に対するアクセス権を他のユーザーに付与できるデータベース・ユーザー。 |
データ・アナリスト | Autonomous Databaseのデータベース・ユーザーは、自動的に作成された外部表を問い合せるか、AWS Glue Data Catalogと直接対話することで、AWS S3のデータを問い合せます。 |
AWS Glueデータ・カタログ・ユーザー |
AWS GlueデータカタログにアクセスできるAWSユーザー。 |
AWS S3オブジェクト・ストレージ・ユーザー |
AWS S3に保存されたデータにアクセスできるAWSユーザー |
ユーザー・ワークフロー
次の表では、ワークフローに含まれる各アクション、およびアクションを実行できるユーザーのタイプについて説明します。
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 Name (ARN)資格証明はサポートされていません。 |
接続 |
データベース・データ・カタログ管理者 |
Autonomous DatabaseインスタンスとAWS Glue Data Catalogインスタンス間の接続を確立します。この接続では、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 Data Catalogメタデータを削除し、同期された外部表を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 Data Catalogでメタデータを検査します。
- 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 Data Catalog内のデータベースを検索します。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を使用して、前の同期操作によって作成された新しいオブジェクトを表示します。