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

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

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のマッピング

同期プロセス中に、Amazon S3を介してAWS Glue Data Catalogデータベースおよび表から導出された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データの問合せが含まれます。

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

データベース・データ・カタログ問合せ管理者またはデータベース管理者が、生成された外部表へのREADアクセス権を付与するため、データ・アナリストや他のデータベース・ユーザーは、外部データ・ソースのスキーマを手動で導出して外部表を作成することなく、Autonomous Databaseを参照および問合せできます。

ユーザー

次の表では、ユーザーワークフローアクションを実行するさまざまなタイプのユーザーについて説明します。

ユーザー 説明
データベース・データ・カタログ管理者 DCAT_SYNCロールを持つデータベース・ユーザー。
データベース・データ・カタログ問合せ管理者 データベース・ユーザーは、自動的に作成された外部表に対するアクセス権を他のユーザーに付与できます。
データ・アナリスト Autonomous Databaseのデータベース・ユーザーは、自動的に作成された外部表を問い合せるか、AWS Glueデータ・カタログと直接対話することで、AWS S3のデータを問い合せます。

AWS Glueデータカタログユーザー

AWS Glue Data CatalogにアクセスできるAWSユーザー。

AWS S3オブジェクト・ストレージ・ユーザー

AWS S3に保存されたデータにアクセスできるAWSユーザー

ユーザー・ワークフロー

次の表では、ワークフローに含まれる各アクションと、アクションを実行できるユーザーのタイプについて説明します。

ノート

DBMS_DCATパッケージは、AWS Glueデータ・カタログを使用してAWS S3オブジェクト・ストレージを問い合せるために必要なタスクを実行するために使用できます。DBMS_DCAT Packageを参照してください。
アクション ユーザー 説明
ポリシーの作成 データベース・データ・カタログ管理者

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

Autonomous DatabaseインスタンスとAWS Glue Data Catalogインスタンス間の接続を開始するには、次のようにします。
  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データ・カタログ・メタデータを削除し、同期された外部表をAutonomous Databaseインスタンスから削除します。

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

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

この例では、AWS Glueデータ・カタログを使用して、Amazon Simple Storage Service (Amazon S3)に格納されているデータセットに対して問合せを実行するプロセスを順を追って説明します。

この例では、AWS Glue Data Catalogのメタデータが検査され、以前にクロールされてデータカタログに存在していた 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の説明が続きます
    2. データ・カタログ、データベースおよび表に移動して、既存のオブジェクトを検索します。

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

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

      次のプロシージャ・コールには、Autonomous DatabaseがAmazon S3の基礎となるデータにアクセスできるようにするためのアクセス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データ・カタログ内のデータベースを見つけます。
      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の説明が続きます

    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の説明が続きます

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