AWS Glueデータ・カタログを使用した外部データの問合せ

Autonomous Databaseは、Amazon AWS Glue Data Catalogインスタンスと同期するためのシステムをサポートしています。

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データを問い合せます。

データベース・データ・カタログ管理者は、Autonomous DatabaseインスタンスとAWS Glueデータ・カタログ・インスタンス間の接続を作成し、AWS Glueデータ・カタログとAutonomous Database間の同期(同期)を構成および実行します。Autonomous Databaseでは、S3に格納されているデータについて、AWS Glueによって収集された表の外部表が自動的に作成されます。

データベース・データ・カタログ問合せ管理またはデータベース管理では、生成された外部表への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)資格証明はサポートされていません。

詳細情報: DBMS_CLOUD CREATE_CREDENTIALプロシージャ

接続

データベース・データ・カタログ管理者

Autonomous DatabaseインスタンスとAWS Glue Data Catalogインスタンス間の接続を確立します。この接続では、AWS Glueデータカタログユーザーの権限が使用されます。Autonomous Databaseインスタンスから複数のAWS Glueデータ・カタログ・インスタンスへの接続がサポートされています。

Autonomous DatabaseインスタンスとAWS Glueデータ・カタログ・インスタンス間の接続を開始するには:
  1. AWS資格証明(CREATE_CREDENTIALプロシージャ)を使用してDBMS_DCAT.SET_DATA_CATALOG_CREDENTIALをコールし、ターゲットのAWS Glueデータ・カタログ・インスタンスを指定します。
  2. AWS資格証明(CREATE_CREDENTIALプロシージャ)を使用してDBMS_DCAT.SET_OBJECT_STORE_CREDENTIALをコールし、AWS S3オブジェクト・ストレージにアクセスします。
  3. AWS Glueサービス・エンドポイントを使用してDBMS_DCAT.SET_DATA_CATALOG_CONNをコールします

接続が完了すると、Autonomous Databaseには、AWS GlueカタログID、リージョン、エンドポイント、資格証明オブジェクトなどの関連メタデータが格納されます。

詳細情報: SET_DATA_CATALOG_CONNプロシージャUNSET_DATA_CATALOG_CONNプロシージャSET_DATA_CATALOG_CREDENTIALプロシージャSET_OBJECT_STORE_CREDENTIALプロシージャ

同期

データベース・データ・カタログ管理者

ユーザーは、DBMS_DCAT.RUN_SYNCを使用して接続されたAWS Glueデータ・カタログとの同期を手動で開始するか、DBMS_DCAT.CREATE_SYNC_JOBを使用して自動同期を作成できます。

同期では、次の処理が実行されます。
  • 接続されたAWS Glueデータ・カタログから導出された外部表をAutonomous Databaseに作成します。
  • ユーザーは、AWS Glueデータベースおよびテーブルのメタデータをプレビューできます。
  • AWS Glueメタデータが変更された場合、既存の同期された外部表を変更または削除します。
詳細情報: RUN_SYNCプロシージャCREATE_SYNC_JOBプロシージャDROP_SYNC_JOBプロシージャ同期マッピングを参照してください

同期の監視

データベース・データ・カタログ管理者

ユーザーは、USER_LOAD_OPERATIONSビューを問い合せて同期ステータスを表示できます。同期プロセスが完了すると、ユーザーは、外部表へのマッピングの詳細を含む同期結果のログを表示できます。

詳細情報: ロードの監視およびトラブルシューティング

権限を付与

データベース・データ・カタログ問合せ管理者、データベース管理者

データベースのデータ・カタログ問合せ管理者またはデータベース管理者は、生成された外部表に対するREAD権限をデータ・アナリスト・ユーザーに付与する必要があります。これにより、データ・アナリストは生成された外部表を問い合せることができます。

クエリー

データ・アナリスト

データ・アナリストは、GLUE$*スキーマ内の同期されたスキーマおよび表を確認し、Oracle SQLをサポートする任意のツールまたはアプリケーションを介して外部表を問い合せることができます。

S3のデータには、AWS S3オブジェクト・ストレージ・ユーザーの権限を使用してアクセスします。

詳細情報: 例: AWS Glueデータ・カタログを使用した問合せ

接続の終了

データベース・データ・カタログ管理者

既存のデータ・カタログ・アソシエーションを削除するには、UNSET_DATA_CATALOG_CONNプロシージャをコールします。

このアクションは、接続されたAWS Glueデータカタログおよびカタログから導出された外部テーブルの使用を計画しなくなった場合にのみ実行されます。このアクションは、AWS Glue Data Catalogメタデータを削除し、同期された外部表をAutonomous Databaseインスタンスから削除します。

詳細情報: UNSET_DATA_CATALOG_CONNプロシージャ

例: 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のデータセットを問い合せるために使用されます。

  1. AWS Glue Data Catalogでメタデータを検査します。
    1. AWS Glueコンソールを起動します。glue_console.pngの説明が続きます
      図glue_console.pngの説明
    2. 既存のオブジェクトを検索するには、データ・カタログ、データベースおよび表に移動します。

      この例では、次に示すように、AWS Glueが以前にクロールしてテーブルを作成したオブジェクトが Amazon S3に存在します。

      glue_tables.pngの説明が続きます
      図glue_tables.pngの説明
  2. AWS GlueをAutonomous Databaseに関連付けます。
    1. Autonomous Databaseで資格証明を作成します。

      次のプロシージャ・コールには、Amazon S3の基礎となるデータへのアクセスをAutonomous Databaseに提供するためのアクセスIDおよび秘密キーが含まれます。

      exec dbms_cloud.create_credential('CRED_AWS','<access id>', '<access key>');

    2. 資格証明をAWS Glue Data CatalogおよびAmazon S3オブジェクト・ストレージに関連付けます。
      これらのプロシージャ・コールは、それぞれデータ・カタログとオブジェクト・ストレージを資格証明に関連付けます。
      exec dbms_dcat.set_data_catalog_credential('CRED_AWS');
      exec dbms_dcat.set_object_store_credential('CRED_AWS');

    3. Glueが動作しているAWSリージョンを設定します。
      exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
  3. メタデータを同期して、AWS Glueデータベースおよび表から導出されたAutonomous Databaseに外部表を作成します。
    1. 関連付けが完了したら、all_glue_databasesビューを使用して、AWS Glue Data Catalog内のデータベースを検索します。
      select * from all_glue_databases order by name;

    2. all_glue_tablesビューを使用して、同期可能な表のリストを取得します。
      select * from all_glue_tables order by database_name, name;

      glue_table_list.pngの説明が続きます
      図glue_table_list.pngの説明

    3. 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;
          /

  4. Autonomous Databaseで新しいオブジェクトを検査し、S3上で問合せを実行します。
    1. SQL Developerを使用して、前の同期操作によって作成された新しいオブジェクトを表示します。

      GLUE$PARQ_TPCDS_ORACLE_PARQスキーマは、dbms_dcat.run_syncプロシージャ・コールによって自動的に生成され、名前が付けられました。

      glue_sql_dev.pngの説明が続きます
      図glue_sql_dev.pngの説明

    2. Amazon S3のデータセット・ストアに対してSQL問合せを実行します。
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;