データ・カタログを使用した外部データの問合せ
Oracle Cloud Infrastructure Data Catalogは、データの検出およびデータ・ガバナンスのサポートに役立つOracle Cloudのメタデータ管理サービスです。資産のインベントリ、ビジネス用語集、データ・レイク用の共通メタストアを提供します。
Autonomous AI Databaseは、このメタデータを活用することで、データレイクのオブジェクトストアへのアクセス管理を大幅に簡素化できます。データ・レイクにアクセスするために外部表を手動で定義するかわりに、自動的に定義および管理される外部表を使用します。これらの表は、データ・カタログの変更で最新の状態に保たれるAutonomous AI Database保護スキーマにあります。
データ・カタログの詳細は、データ・カタログのドキュメントを参照してください。
データ・カタログを使用した問合せについて
データ・カタログ・メタデータと同期することで、Autonomous AI Databaseでは、データ・カタログによって収集された各論理エンティティの外部表が自動的に作成されます。これらの外部表は、メタデータ同期プロセスによって完全に管理されるデータベース・スキーマで定義されます。ユーザーは、外部データ・ソースのスキーマ(列およびデータ型)を手動で導出し、外部表を手動で作成しなくても、すぐにデータを問い合せることができます。
同期は動的であり、基盤となるデータの変更に関して自律型AIデータベースを最新の状態に保ち、数百から数千のテーブルを自動的に管理するため、管理コストを削減します。また、複数の自律型AIデータベース・インスタンスで同じデータ・カタログを共有できるため、管理コストをさらに削減し、ビジネス定義の共通セットを提供できます。
データ・カタログのフォルダ/バケットは、Autonomous AI Databaseスキーマと同期するコンテナです。これらのフォルダ/バケット内の論理エンティティは、Autonomous AI Database外部表にマップされます。これらのスキーマおよび外部表は、同期プロセスによって自動的に生成および保守されます。
-
フォルダ/バケットは、組織目的のみのデータベース・スキーマにマップされます。
-
組織は、データレイクとの一貫性を保ち、異なるパスからデータにアクセスする際の混乱を最小限に抑えることを目的としています。
-
データ・カタログは、スキーマ内に含まれる表の信頼できる情報源です。データ・カタログで行われた変更によって、後続の同期中にスキーマの表が更新されます。
この機能を使用するには、データベース・データ・カタログ管理者がデータ・カタログ・インスタンスへの接続を開始し、同期するデータ・アセットおよび論理エンティティを選択し、同期を実行します。同期プロセスでは、選択したデータ・カタログで収集されたデータ・アセットおよび論理エンティティに基づいてスキーマおよび外部表が作成されます。外部表が作成されるとすぐに、データ・アナリストは外部データ・ソースのスキーマを手動で導出して外部表を作成することなく、データの問合せを開始できます。
ノート
ノート: DBMS_DCATパッケージは、データ・カタログ・オブジェクト・ストア・データ・アセットの問合せに必要なタスクを実行するために使用できます。「DBMS_DCATパッケージ」を参照してください。
データ・カタログを使用した問合せに関連する概念
データ・カタログを使用した問合せには、次の概念を理解する必要があります。
データ・カタログ
データ・カタログは、Autonomous AI Databaseで問い合せるオブジェクト・ストア・データ・ソースを指すデータ・アセットを収集します。データ・カタログから、収集中のデータの編成方法を指定して、様々なファイル編成パターンをサポートできます。データ・カタログ収集プロセスの一環として、アセット内で管理するバケットおよびファイルを選択できます。詳細は、データ・カタログの概要を参照してください。
オブジェクト・ストア
オブジェクト・ストアには、様々なオブジェクトを含むバケットがあります。これらのバケットには、CSV、parquet、avro、jsonおよびORCファイルなどの一般的なタイプのオブジェクトがあります。通常、バケットには、含まれるオブジェクトに対する構造または設計パターンがあります。データの構造化には様々な方法があり、これらのパターンを解釈する様々な方法があります。
たとえば、一般的な設計パターンでは、表を表す最上位のフォルダを使用します。特定のフォルダ内のファイルは同じスキーマを共有し、その表のデータを含みます。サブフォルダは、多くの場合、表パーティション(各日のサブフォルダなど)を表すために使用されます。データ・カタログは、各トップレベル・フォルダを論理エンティティとして参照し、この論理エンティティはAutonomous AI Database外部表にマップします。
接続
接続は、データ・カタログ・インスタンスへの自律型AIデータベース接続です。自律型AIデータベース・インスタンスごとに、複数のデータ・カタログ・インスタンスに接続できます。自律型AIデータベース資格証明には、オブジェクト・ストレージから収集されたデータ・カタログ・アセットにアクセスする権限が必要です。
収穫
オブジェクト・ストレージをスキャンし、データ・セットから論理エンティティを生成するデータ・カタログ・プロセス。
データ・アセット
データ・カタログのデータ・アセットは、データベース、Oracle Object Storage、Kafkaなどを含むデータ・ソースを表します。Autonomous AI Databaseでは、メタデータ同期にOracle Object Storageアセットを利用します。
データ・エンティティ
データ・カタログのデータ・エンティティは、データベース表またはビューなどのデータの集合、または単一のファイルであり、通常はそのデータを記述する多くのの属性が含まれています。
論理的なエンティティ
データ・レイクでは、通常、多数のファイルが単一の論理エンティティで構成されています。たとえば、毎日のクリックストリーム・ファイルがあり、これらのファイルは同じスキーマとファイル・タイプを共有する場合があります。
データ・カタログ論理エンティティは、オブジェクト・ストレージ・ファイルのグループで、作成されてデータ・アセットに割り当てられているファイル名パターンを適用して収集中に導出されます。
データ・オブジェクト
データ・カタログのデータ・オブジェクトは、データ・アセットおよびデータ・エンティティを表します。
ファイル名パターン
データレイクでは、データは様々な方法で編成できます。通常、フォルダは同じスキーマおよびタイプのファイルを取得します。データの編成方法については、データ・カタログに登録する必要があります。ファイル名パターンは、データの編成方法を識別するために使用されます。データ・カタログでは、正規表現を使用してファイル名パターンを定義できます。データ・カタログがファイル名パターンが割り当てられたデータ・アセットを収集する場合、論理エンティティはファイル名パターンに基づいて作成されます。これらのパターンを定義してデータ・アセットに割り当てることで、ファイル名パターンに基づいて複数のファイルを論理エンティティとしてグループ化できます。
同期(同期)
自律型AIデータベースは、データ・カタログとの同期を実行して、基礎となるデータに対する変更に関して、データベースを自動的に最新の状態に保ちます。同期は、手動またはスケジュールで実行できます。
同期プロセスでは、データ・カタログのデータ・アセットおよび論理エンティティに基づいてスキーマおよび外部表が作成されます。これらのスキーマは保護され、メタデータはデータ・カタログによって管理されます。メタデータを変更する場合は、データ・カタログで変更する必要があります。Autonomous AI Databaseスキーマには、次回の同期の実行後に変更が反映されます。詳細については、「同期マッピング」を参照してください。
同期マッピング
同期プロセスでは、データ・カタログのデータ・アセット、フォルダ、論理エンティティ、属性および関連するカスタム・オーバーライドに基づいて、自律型AIデータベース・スキーマおよび外部表が作成および更新されます。
| データ・カタログ | Autonomous AI Database | マッピングの説明 |
|---|---|---|
| データ・アセットおよびフォルダ(オブジェクト・ストレージ・バケット) | スキーマ名 | デフォルトの値 デフォルトでは、Autonomous AI Databaseで生成されたスキーマ名の形式は次のとおりです:
カスタマイズ: デフォルトのdata-asset-nameおよびfolder-nameは、カスタム・プロパティ、ビジネス名および表示名を定義して、これらのデフォルト名をオーバーライドすることでカスタマイズできます。
例:
|
| 論理的なエンティティ | 外部表 | 論理エンティティは外部表にマップされます。論理エンティティにパーティション属性がある場合、その論理エンティティはパーティション化された外部表にマップされます。 外部表名は、対応する論理エンティティの表示名またはビジネス名から導出されます。
たとえば、エンティティの |
| 論理エンティティの属性 | 外部表の列 | 列名: 外部表の列名は、対応する論理エンティティの属性表示名またはビジネス名から導出されます。 Parquet、AvroおよびORCファイルから導出された論理エンティティの場合、列名はソース・ファイルから導出されたフィールド名を表すため、常に属性の表示名になります。 CSVファイルから導出された論理エンティティに対応する属性の場合、次の属性フィールドが列名の生成の優先順位に使用されます。
列タイプ:
列長: 列の精度:
列スケール: |
データ・カタログの一般的なワークフロー
データ・カタログを使用して問い合せるユーザーによって実行されるアクションの一般的なワークフローがあります。
データベース・データ・カタログ管理者は、自律型AIデータベース・インスタンスとデータ・カタログ・インスタンス間の接続を作成し、データ・カタログと自律型AIデータベース間の同期(同期)を構成および実行します。同期では、同期されたデータ・カタログの内容に基づいて、Autonomous AI Databaseインスタンスに外部表およびスキーマが作成されます。
データベース・データ・カタログ問合せ管理者またはデータベース管理者は、生成された外部表に対するREADアクセス権を付与し、データ・アナリストや他のデータベース・ユーザーが外部表を参照および問合せできるようにします。
次の表では、各アクションについて詳しく説明します。この表に含まれる様々なユーザー・タイプの詳細は、「データ・カタログのユーザーおよびロール」を参照してください。
ノート
ノート: DBMS_DCATパッケージは、データ・カタログ・オブジェクト・ストア・データ・アセットの問合せに必要なタスクを実行するために使用できます。「DBMS_DCATパッケージ」を参照してください。
| アクション | ユーザーが誰か | 摘要 |
|---|---|---|
| ポリシーの作成 | データベース・データ・カタログ管理者 | Autonomous AI Databaseリソース・プリンシパルまたはAutonomous AI Databaseユーザー資格証明には、データ・カタログを管理し、オブジェクト・ストレージから読み取るための適切な権限が必要です。 詳細情報: 必要な資格証明およびIAMポリシー。 |
| 資格証明の作成 | データベース・データ・カタログ管理者 | データ・カタログにアクセスし、オブジェクト・ストアを問い合せるには、データベース資格証明が設定されていることを確認します。ユーザーは、 詳細は、DBMS_CLOUD CREATE_CREDENTIALプロシージャ、DBMS_CLOUDでのリソース・プリンシパルの使用を参照してください。 |
| データ・カタログへの接続の作成 | データベース・データ・カタログ管理者 | 自律型AIデータベース・インスタンスとデータ・カタログ・インスタンス間の接続を開始するには、ユーザーが データ・カタログ・インスタンスへの接続では、十分なOracle Cloud Infrastructure (OCI)権限を持つデータベース資格証明オブジェクトを使用する必要があります。たとえば、Autonomous AI Databaseインスタンスのリソース・プリンシパル・サービス・トークン、または十分な権限を持つOCIユーザーを使用できます。 接続が完了すると、データ・カタログ・インスタンスは、 詳細は、SET_DATA_CATALOG_CONNプロシージャ、UNSET_DATA_CATALOG_CONNプロシージャを参照してください。 |
| 選択的同期の作成 | データベース・データ・カタログ管理者 | 同期するデータ・カタログ・オブジェクトを選択して、同期ジョブを作成します。このユーザーは次のことができます。
詳細は、「CREATE_SYNC_JOBプロシージャ」、「DROP_SYNC_JOBプロシージャ」、「同期マッピング」を参照してください |
| データ・カタログとの同期 | データベース・データ・カタログ管理者 | ユーザーは同期操作を開始します。同期は、 同期操作では、データ・カタログのコンテンツおよび同期選択に従って、外部表およびスキーマを作成、変更および削除します。手動構成は、データ・カタログのカスタム・プロパティを使用して適用されます。 詳細は、「RUN_SYNCプロシージャ」、「CREATE_SYNC_JOBプロシージャ」、「同期マッピング」を参照してください |
| 同期の監視とログの表示 | データベース・データ・カタログ管理者 | ユーザーは、USER_LOAD_OPERATIONSビューを問い合せることで同期ステータスを表示できます。同期プロセスが完了すると、ユーザーは、外部表への論理エンティティのマッピングの詳細など、同期結果のログを表示できます。詳細情報: [負荷の監視およびトラブルシューティング](load-data-cloud-monitor.html#GUID-657A579F-CF44-458B-8C97-3E50D0C98006) |
| 権限を付与 | データベース・データ・カタログ問合せ管理者、データベース管理者 | データベースのデータ・カタログ問合せ管理者またはデータベース管理者は、生成された外部表のREADをデータ・アナリスト・ユーザーに付与する必要があります。これにより、データ・アナリストは生成された外部表を問い合せることができます。 |
| 外部表の参照および問合せ | データ・アナリスト | データ・アナリストは、Oracle SQLをサポートする任意のツールまたはアプリケーションを介して外部表を問い合せることができます。 データ・アナリストは、DCAT$*スキーマ内の同期されたスキーマおよび表を確認し、Oracle SQLを使用して表を問い合せることができます。 詳細情報: 同期マッピング |
| データ・カタログへの接続の終了 | データベース・データ・カタログ管理者 | 既存のデータ・カタログ・アソシエーションを削除するには、UNSET_DATA_CATALOG_CONNプロシージャをコールします。 この処理は、データ・カタログおよびカタログから導出された外部表の使用を計画しなくなった場合にのみ実行されます。このアクションは、データ・カタログ・メタデータを削除し、同期された外部表をAutonomous AI Databaseインスタンスから削除します。データ・カタログおよびOCIポリシーのカスタム・プロパティは影響を受けません。 |
例: MovieStreamシナリオ
このシナリオでは、Moviestreamがオブジェクト・ストレージ上のランディング・ゾーンにデータを取得しています。このデータの多くは、必ずしもすべてではなく、自律型AIデータベースのフィードに使用されます。自律型AIデータベースにフィードする前に、データが変換、クレンジングされ、その後「ゴールド」領域に格納されます。
データ・カタログは、これらのソースを収集し、データにビジネス・コンテキストを提供するために使用されます。データ・カタログ・メタデータはAutonomous AI Databaseと共有されるため、Autonomous AI DatabaseユーザーはOracle SQLを使用してこれらのデータ・ソースを問い合せることができます。このデータは、自律型AIデータベースにロードするか、外部表を使用して動的に問い合せることができます。
データ・カタログの使用方法の詳細は、データ・カタログのドキュメントを参照してください。
-
オブジェクト・ストア- バケット、フォルダおよびファイルのレビュー
-
オブジェクト・ストア内のバケットをレビューします。
たとえば、オブジェクト・ストレージのランディング(
moviestream_landing)バケットとゴールド・ゾーン(moviestream_gold)バケットを次に示します。 -
オブジェクト・ストア・バケット内のフォルダおよびファイルをレビューします。
たとえば、オブジェクト・ストレージのランディング・バケット(
moviestream_landing)内のフォルダは次のとおりです。
-
-
データ・カタログ- ファイル名パターンの作成
-
ファイル名パターンを使用してデータの編成方法をデータ・カタログに通知します。これらは、ファイルの分類に使用される正規表現です。ファイル名パターンは、論理エンティティを導出するためにデータ・カタログ・ハーベスタによって使用されます。次の2つのファイル名パターンを使用して、MovieStreamの例でバケットを収集します。ファイル名パターンの作成の詳細は、論理データ・エンティティとしてのオブジェクト・ストレージ・ファイルの収集を参照してください。
Hiveスタイル フォルダ・スタイル {bucketName:.*}/{logicalEntity:[^/]+}.db/{logicalEntity:[^/]+}/.*{bucketName:[\w]+}/{logicalEntity:[^/]+}(?<!.db)/.*$- オブジェクト名の最初の部分として".db"を含むソースの論理エンティティを作成します。
- バケット内で一意性を確保するために、結果の名前は(db-name)。(フォルダ名)です
- ルート以外のフォルダ名に基づいて論理エンティティを作成します。
- Hiveとの重複を防ぐために、.dbを含むオブジェクト名はスキップされます。
-
ファイル名パターンを作成するには、データ・カタログの「ファイル名パターン」タブに移動し、「ファイル名パターンの作成」をクリックします。たとえば、
moviestreamデータ・カタログの「ファイル名パターンの作成」タブは次のようになります。
-
-
データ・カタログ- データ・アセットの作成
-
オブジェクト・ストアからデータを収集するために使用するデータ・アセットを作成します。
たとえば、
phoenixObjStoreという名前のデータ・アセットがmoviestreamデータ・カタログに作成されます。 -
データ・アセットへの接続を追加します。
この例では、データ・アセットは
moviestreamオブジェクト・ストレージ・リソースのコンパートメントに接続します。 -
次に、ファイル名パターンをデータ・アセットに関連付けます。「ファイル名パターンの割当て」を選択し、目的のパターンを確認して「割当て」をクリックします。
たとえば、
phoenixObjStoreデータ・アセットに割り当てられたパターンは次のとおりです。
-
-
データ・カタログ- オブジェクト・ストアからのデータの収集
-
データ・カタログ・データ・アセットの収集。ソース・データを含むオブジェクト・ストア・バケットを選択します。
この例では、オブジェクト・ストアの
moviestream_goldおよびmoviestream_landingバケットが収集用に選択されています。 -
ジョブを実行すると、論理エンティティが表示されます。「データ・アセットの参照」を使用して、それらを確認します。
この例では、
customer-extension論理エンティティとその属性を確認します。用語集がある場合、データ・カタログでは、エンティティとその属性に関連付けるカテゴリおよび用語を推奨します。これにより、品目のビジネス・コンテキストが提供されます。スキーマ、表および列は、よくわかりません。
この例では、様々なタイプのバケットとその内容の意味を区別します。
-
着陸地点とは?
-
データはどのくらい正確ですか?
-
最終更新日
-
論理エンティティまたはその属性の定義
-
-
-
Autonomous AI Database - データ・カタログへの接続
Autonomous AI Databaseをデータ・カタログに接続します。その接続に使用された資格証明が、データ・カタログ・アセットへのアクセスを許可されたOCIプリンシパルを使用していることを確認する必要があります。詳細は、データ・カタログ・ポリシーおよびポリシーおよびロールの構成によるクラウド・リソースへのアクセスを参照してください。
-
データ・カタログへの接続
-- Variables are used to simplify usage later define oci_credential = 'OCI$RESOURCE_PRINCIPAL' define dcat_ocid = 'ocid1.datacatalog.oc1.iad.aaaaaaaardp66bg....twiq' define dcat_region='us-ashburn-1' define uri_root = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o' define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o' -- Run as admin ------- -- Enable resource principal support ------- exec dbms_cloud_admin.enable_resource_principal(); -- Test to make sure credential was created. Returns a row if it was successful select * from dba_credentials where credential_name = 'OCI$RESOURCE_PRINCIPAL' and owner = 'ADMIN'; -- Query a private bucket to test the principal and privileges. select * from dbms_cloud.list_objects('&oci_credential', '&uri_private/'); -------- -- Set the credentials to use for object store and data catalog -- Connect to Data Catalog -- Review connection --------- -- Set credentials exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential'); exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential'); -- Connect to Data Catalog begin dbms_dcat.set_data_catalog_conn ( region => '&dcat_region', catalog_id => '&dcat_ocid'); end; / -- Review the connection select * from all_dcat_connections; -
データ・カタログをAutonomous AI Databaseと同期します。ここでは、すべてのオブジェクト・ストレージ・アセットを同期します:
-- Sync Data Catalog with Autonomous AI Database ---- Let's sync all of the assets. begin dbms_dcat.run_sync('{"asset_list":["*"]}'); end; / -- View log select type, start_time, status, logfile_table from user_load_operations; -- Logfile_Table will have the name of the table containing the full log. select * from dbms_dcat$1_log; -- View the new external tables select * from dcat_entities; select * from dcat_attributes; -
Autonomous AI Database - オブジェクト・ストアに対する問合せの実行を開始します。
-- Query the Data ! select *from dcat$phoenixobjstore_moviestream_gold.genre ;
-
-
オブジェクトのスキーマの変更
デフォルトのスキーマ名はかなり複雑です。データ・カタログでアセットとフォルダの
Oracle-Db-Schemaカスタム属性の両方を指定することで、それらを簡略化します。データ・アセットをPHXに変更し、フォルダをそれぞれlandingおよびgoldに変更します。スキーマは2つの連結です。-
データ・カタログから、
moviestream_landingバケットに移動し、アセットをそれぞれlandingおよびgoldに変更します。変更の前:
変更後の作業:
-
別の同期を実行します。
-
例: パーティション・データのシナリオ
このシナリオでは、オブジェクト・ストアのパーティション・データから収集されたデータ・カタログ論理エンティティに基づく自律型AIデータベースに外部表を作成する方法を示します。
次の例は、例: MovieStreamシナリオに基づいており、パーティション化されたデータとの統合を示すように適応されています。データ・カタログは、これらのソースを収集し、データにビジネス・コンテキストを提供するために使用されます。この例の詳細は、例: MovieStreamシナリオを参照してください。
データ・カタログの使用方法の詳細は、データ・カタログのドキュメントを参照してください。
-
オブジェクト・ストア- バケット、フォルダおよびファイルのレビュー
-
オブジェクト・ストア内のバケットをレビューします。
たとえば、オブジェクト・ストレージのランディング(
moviestream_landing)バケットとゴールド・ゾーン(moviestream_gold)バケットを次に示します。 -
オブジェクト・ストア・バケット内のフォルダおよびファイルをレビューします。
たとえば、オブジェクト・ストレージのランディング・バケット(
moviestream_landing)内のフォルダは次のとおりです。
-
-
データ・カタログ- ファイル名パターンの作成
-
ファイル名パターンを使用してデータの編成方法をデータ・カタログに通知します。これらは、ファイルの分類に使用されるフォルダ接頭辞または正規表現です。ファイル名パターンは、論理エンティティを導出するためにデータ・カタログ・ハーベスタによって使用されます。フォルダ接頭辞を指定すると、データ・カタログはオブジェクト・ストアの指定されたフォルダ接頭辞から論理エンティティを自動的に生成します。MovieStreamの例でバケットを収集するには、次のファイル名パターンを使用します。ファイル名パターンの作成の詳細は、論理データ・エンティティとしてのオブジェクト・ストレージ・ファイルの収集を参照してください。
フォルダ接頭辞 摘要 workshop.db/オブジェクト・ストアにworkshop.dbパスを含むソースの論理エンティティを作成します。 -
ファイル名パターンを作成するには、データ・カタログの「ファイル名パターン」タブに移動し、「ファイル名パターンの作成」をクリックします。たとえば、
moviestreamデータ・カタログの「ファイル名パターンの作成」タブは次のようになります。
-
-
データ・カタログ- データ・アセットの作成
-
オブジェクト・ストアからデータを収集するために使用するデータ・アセットを作成します。
たとえば、
amsterdamObjStoreという名前のデータ・アセットがmoviestreamデータ・カタログに作成されます。 -
データ・アセットへの接続を追加します。
この例では、データ・アセットは
moviestreamオブジェクト・ストレージ・リソースのコンパートメントに接続します。 -
次に、ファイル名パターンをデータ・アセットに関連付けます。「ファイル名パターンの割当て」を選択し、目的のパターンを確認して「割当て」をクリックします。
たとえば、
amsterdamObjStoreデータ・アセットに割り当てられたパターンは次のとおりです。
-
-
データ・カタログ- オブジェクト・ストアからのデータの収集
-
データ・カタログ・データ・アセットの収集。ソース・データを含むオブジェクト・ストア・バケットを選択します。
この例では、オブジェクト・ストアの
moviestream_goldおよびmoviestream_landingバケットが収集用に選択されています。 -
ジョブを実行すると、論理エンティティが表示されます。「データ・アセットの参照」を使用して、それらを確認します。
この例では、
sales_sample_parquet論理エンティティとその属性を確認します。データ・カタログでは、month属性がパーティションとして識別されています。
-
-
Autonomous AI Database - データ・カタログへの接続
Autonomous AI Databaseをデータ・カタログに接続します。その接続に使用された資格証明が、データ・カタログ・アセットへのアクセスを許可されたOCIプリンシパルを使用していることを確認する必要があります。詳細は、データ・カタログ・ポリシーおよびポリシーおよびロールの構成によるクラウド・リソースへのアクセスを参照してください。
-
データ・カタログへの接続
-- Variables are used to simplify usage later define oci_credential = 'OCI$RESOURCE_PRINCIPAL' define dcat_ocid = 'ocid1.datacatalog.oc1.eu-amsterdam-1....leguurn3dmqa' define dcat_region='eu-amsterdam-1' define uri_root = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/landing/o' define uri_private = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/mytenancy/b/private_data/o' -- Run as admin ------- -- Enable resource principal support ------- exec dbms_cloud_admin.enable_resource_principal(); -- Test to make sure credential was created. Returns a row if it was successful select * from dba_credentials where credential_name = 'OCI$RESOURCE_PRINCIPAL' and owner = 'ADMIN'; -- Query a private bucket to test the principal and privileges. select * from dbms_cloud.list_objects('&oci_credential', '&uri_private/'); -------- -- Set the credentials to use for object store and data catalog -- Connect to Data Catalog -- Review connection --------- -- Set credentials exec dbms_dcat.set_data_catalog_credential(credential_name => '&oci_credential'); exec dbms_dcat.set_object_store_credential(credential_name => '&oci_credential'); -- Connect to Data Catalog begin dbms_dcat.set_data_catalog_conn ( region => '&dcat_region', catalog_id => '&dcat_ocid'); end; / -- Review the connection select * from all_dcat_connections; -
データ・カタログをAutonomous AI Databaseと同期します。ここでは、すべてのオブジェクト・ストレージ・アセットを同期します:
-- Sync Data Catalog with Autonomous AI Database ---- Let's sync all of the assets. begin dbms_dcat.run_sync('{"asset_list":["*"]}'); end; / -- View log select type, start_time, status, logfile_table from user_load_operations; -- Logfile_Table will have the name of the table containing the full log. select * from dbms_dcat$1_log; -- View the new external tables select * from dcat_entities; select * from dcat_attributes; -
Autonomous AI Database - オブジェクト・ストアに対する問合せの実行を開始します。
-- Query the Data ! select count(*) from DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING.SALES_SAMPLE_PARQUET; -- Examine the generated partitioned table select dbms_metadata.get_ddl('TABLE','SALES_SAMPLE_PARQUET','DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING') from dual; CREATE TABLE "DCAT$AMSTERDAMOBJSTORE_MOVIESTREAM_LANDING"."SALES_SAMPLE_PARQUET" ( "MONTH" VARCHAR2(4000) COLLATE "USING_NLS_COMP", "DAY_ID" TIMESTAMP (6), "GENRE_ID" NUMBER(20,0), "MOVIE_ID" NUMBER(20,0), "CUST_ID" NUMBER(20,0), ... ) DEFAULT COLLATION "USING_NLS_COMP" ORGANIZATION EXTERNAL ( TYPE ORACLE_BIGDATA ACCESS PARAMETERS ( com.oracle.bigdata.fileformat=parquet com.oracle.bigdata.filename.columns=["MONTH"] com.oracle.bigdata.file_uri_list="https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/*" ... ) ) REJECT LIMIT 0 PARTITION BY LIST ("MONTH") (PARTITION "P1" VALUES (('2019-01')) LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-01/*'), PARTITION "P2" VALUES (('2019-02')) LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2019-02/*'), ...PARTITION "P24" VALUES (('2020-12')) LOCATION ( 'https://swiftobjectstorage.eu-amsterdam-1.oraclecloud.com/v1/tenancy/moviestream_landing/workshop.db/sales_sample_parquet/month=2020-12/*')) PARALLEL
-
-
オブジェクトのスキーマの変更
デフォルトのスキーマ名はかなり複雑です。データ・カタログでアセットとフォルダの
Oracle-Db-Schemaカスタム属性の両方を指定することで、それらを簡略化します。データ・アセットをPHXに変更し、フォルダをそれぞれlandingおよびgoldに変更します。スキーマは2つの連結です。-
データ・カタログから、
moviestream_landingバケットに移動し、アセットをそれぞれlandingおよびgoldに変更します。変更の前:
変更後の作業:
-
別の同期を実行します。
-