データ・カタログを使用した外部データの問合せ
Oracle Cloud Infrastructure Data Catalogは、データの検出およびデータ・ガバナンスのサポートに役立つOracle Cloudのメタデータ管理サービスです。資産のインベントリ、ビジネス用語集、データ・レイク用の共通メタストアを提供します。
Autonomous Databaseでは、このメタデータを活用して、データレイクのオブジェクト・ストアにアクセスするための管理を劇的に簡素化できます。外部表を手動で定義してデータ・レイクにアクセスするかわりに、自動的に定義および管理される外部表を使用します。これらの表は、データ・カタログの変更で最新の状態に保たれるAutonomous Database保護スキーマにあります。
データ・カタログの詳細は、データ・カタログのドキュメントを参照してください。
- データ・カタログを使用した問合せについて
データ・カタログ・メタデータと同期することで、Autonomous Databaseは、データ・カタログによって収集された各論理エンティティの外部表を自動的に作成します。これらの外部表は、メタデータ同期プロセスによって完全に管理されるデータベース・スキーマで定義されます。ユーザーは、外部データ・ソースのスキーマ(列およびデータ型)を手動で導出し、外部表を手動で作成しなくても、すぐにデータを問い合せることができます。 - データ・カタログを使用した問合せに関連する概念
データ・カタログを使用した問合せには、次の概念を理解する必要があります。 - 同期マッピング
同期プロセスでは、データ・カタログ・データ・アセット、フォルダ、論理エンティティ、属性および関連するカスタム・オーバーライドに基づいて、Autonomous Databaseスキーマおよび外部表が作成および更新されます。 - データ・カタログを使用する一般的なワークフロー
データ・カタログを使用して問い合せるユーザーによって実行されるアクションの一般的なワークフローがあります。 - 例: MovieStreamシナリオ
このシナリオでは、Moviestreamはオブジェクト・ストレージ上のランディング・ゾーン内のデータを取得しています。このデータの多くは、必ずしもすべてではなく、Autonomous Databaseのフィードに使用されます。Autonomous Databaseにフィードする前に、データは変換、クレンジングされ、その後「ゴールド」領域に格納されます。 - 例: パーティション・データ・シナリオ
このシナリオでは、オブジェクト・ストアのパーティション・データから収集されたデータ・カタログ論理エンティティに基づいて、Autonomous Databaseで外部表を作成する方法を示します。
データ・カタログを使用した問合せについて
データ・カタログ・メタデータと同期することで、Autonomous Databaseは、データ・カタログによって収集された各論理エンティティの外部表を自動的に作成します。これらの外部表は、メタデータ同期プロセスによって完全に管理されるデータベース・スキーマで定義されます。ユーザーは、外部データ・ソースのスキーマ(列およびデータ型)を手動で導出し、外部表を手動で作成しなくても、すぐにデータを問い合せることができます。
同期は動的であるため、基礎となるデータに対する変更に関してAutonomous Databaseを最新の状態に保ち、数百から数千のテーブルを自動的に保守するため管理コストを削減できます。また、複数のAutonomous Databaseインスタンスで同じデータ・カタログを共有できるため、管理コストをさらに削減し、ビジネス定義の共通セットを提供できます。
データ・カタログのフォルダ/バケットは、Autonomous Databaseスキーマと同期するコンテナです。これらのフォルダ/バケット内の論理エンティティは、Autonomous Database外部表にマップされます。次のスキーマおよび外部表は、同期プロセスによって自動的に生成および保守されます。
- フォルダ/バケットは、組織目的のみのデータベース・スキーマにマップされます。
- 組織は、データレイクとの一貫性を保ち、異なるパスからデータにアクセスする際の混乱を最小限に抑えることを目的としています。
- データ・カタログは、スキーマ内に含まれる表の信頼できる情報源です。データ・カタログで行われた変更によって、後続の同期中にスキーマの表が更新されます。
この機能を使用するには、データベース・データ・カタログ管理者がデータ・カタログ・インスタンスへの接続を開始し、同期するデータ・アセットおよび論理エンティティを選択し、同期を実行します。同期プロセスでは、選択したデータ・カタログで収集されたデータ・アセットおよび論理エンティティに基づいてスキーマおよび外部表が作成されます。外部表が作成されるとすぐに、データ・アナリストは外部データ・ソースのスキーマを手動で導出して外部表を作成することなく、データの問合せを開始できます。
親トピック: データ・カタログを使用した外部データの問合せ
データ・カタログを使用した問合せに関連する概念
データ・カタログを使用した問合せには、次の概念を理解する必要があります。
- データ・カタログ
-
データ・カタログは、Autonomous Databaseで問い合せるオブジェクト・ストア・データ・ソースを指すデータ・アセットを収集します。データ・カタログから、収集中のデータの編成方法を指定し、様々なファイル編成パターンをサポートできます。データ・カタログの収集プロセスの一環として、アセット内で管理するバケットおよびファイルを選択できます。詳細は、データ・カタログの概要を参照してください。
- オブジェクト・ストア
-
オブジェクト・ストアには、様々なオブジェクトを含むバケットがあります。これらのバケットには、CSV、parquet、avro、jsonおよびORCファイルなどの一般的なタイプのオブジェクトがあります。通常、バケットには、含まれるオブジェクトに対する構造または設計パターンがあります。データの構造化には様々な方法があり、これらのパターンを解釈する様々な方法があります。
たとえば、一般的な設計パターンでは、表を表す最上位のフォルダを使用します。特定のフォルダ内のファイルは同じスキーマを共有し、その表のデータを含みます。サブフォルダは、多くの場合、表パーティション(各日のサブフォルダなど)を表すために使用されます。データ・カタログは、各トップレベル・フォルダを論理エンティティとして参照し、この論理エンティティはAutonomous Database外部表にマップします。
- 接続
-
接続は、データ・カタログ・インスタンスへのAutonomous Database接続です。Autonomous Databaseインスタンスごとに、複数のデータ・カタログ・インスタンスに接続できます。Autonomous Database資格証明には、オブジェクト・ストレージから収集されたデータ・カタログ・アセットにアクセスする権限が必要です。
- 収集
-
オブジェクト・ストレージをスキャンし、データ・セットから論理エンティティを生成するデータ・カタログ・プロセス。
- データ・アセット
-
データ・カタログのデータ・アセットは、データベース、Oracle Object Storage、Kafkaなどを含むデータ・ソースを表します。Autonomous Databaseでは、メタデータ同期にOracle Object Storageアセットを利用します。
- データ・エンティティ
-
データ・カタログのデータ・エンティティは、データベース表またはビューなどのデータの集合、または単一のファイルであり、通常はそのデータを記述する多くのの属性が含まれています。
- 論理的なエンティティ
-
データ・レイクでは、通常、多数のファイルが単一の論理エンティティで構成されています。たとえば、毎日のクリックストリーム・ファイルがあり、これらのファイルは同じスキーマとファイル・タイプを共有する場合があります。
データ・カタログ論理エンティティは、オブジェクト・ストレージ・ファイルのグループで、作成されてデータ・アセットに割り当てられているファイル名パターンを適用して収集中に導出されます。
- データ・オブジェクト
-
データ・カタログのデータ・オブジェクトは、データ・アセットおよびデータ・エンティティを表します。
- ファイル名パターン
-
データレイクでは、データは様々な方法で編成できます。通常、フォルダは同じスキーマおよびタイプのファイルを取得します。データの編成方法については、データ・カタログに登録する必要があります。ファイル名パターンは、データの編成方法を識別するために使用されます。データ・カタログでは、正規表現を使用してファイル名パターンを定義できます。データ・カタログがファイル名パターンが割り当てられたデータ・アセットを収集する場合、論理エンティティはファイル名パターンに基づいて作成されます。これらのパターンを定義してデータ・アセットに割り当てることで、ファイル名パターンに基づいて複数のファイルを論理エンティティとしてグループ化できます。
- 同期(同期)
-
Autonomous Databaseは、データ・カタログとの同期を実行して、基礎となるデータに対する変更に関してデータベースを自動的に最新の状態に保ちます。同期は、手動またはスケジュールで実行できます。
同期プロセスでは、データ・カタログのデータ・アセットおよび論理エンティティに基づいてスキーマおよび外部表が作成されます。これらのスキーマは保護されています。つまり、メタデータはデータ・カタログによって管理されます。メタデータを変更する場合は、データ・カタログで変更する必要があります。Autonomous Databaseスキーマには、次回の同期の実行後に変更が反映されます。詳細は、「同期マッピング」を参照してください。
親トピック: データ・カタログを使用した外部データの問合せ
同期マッピング
同期プロセスでは、データ・カタログのデータ・アセット、フォルダ、論理エンティティ、属性および関連するカスタム・オーバーライドに基づいて、Autonomous Databaseスキーマおよび外部表が作成および更新されます。
データ・カタログ | Autonomous Database | マッピングの説明 |
---|---|---|
データ・アセットおよびフォルダ(オブジェクト・ストレージ・バケット) |
スキーマ名 |
デフォルト値: デフォルトでは、Autonomous Databaseで生成されるスキーマ名の形式は次のとおりです:
カスタマイズ: デフォルトのdata-asset-name およびfolder-name は、カスタム・プロパティ、ビジネス名および表示名を定義して、これらのデフォルト名をオーバーライドすることでカスタマイズできます。
例:
|
論理的なエンティティ | 外部表 |
論理エンティティは外部表にマップされます。論理エンティティにパーティション属性がある場合、その論理エンティティはパーティション化された外部表にマップされます。 外部表名は、対応する論理エンティティの表示名またはビジネス名から導出されます。
たとえば、エンティティの |
論理エンティティの属性 | 外部表の列 |
列名: 外部表の列名は、対応する論理エンティティの属性表示名またはビジネス名から導出されます。 Parquet、AvroおよびORCファイルから導出された論理エンティティの場合、列名はソース・ファイルから導出されたフィールド名を表すため、常に属性の表示名になります。 CSVファイルから導出された論理エンティティに対応する属性の場合、次の属性フィールドが列名の生成の優先順位に使用されます。
列タイプ:
列長: 列の精度:
列のスケール: |
親トピック: データ・カタログを使用した外部データの問合せ
データ・カタログの一般的なワークフロー
データ・カタログを使用して問い合せるユーザーによって実行されるアクションの一般的なワークフローがあります。
データベース・データ・カタログ問合せ管理者またはデータベース管理者は、生成された外部表に対するREADアクセス権を付与し、データ・アナリストや他のデータベース・ユーザーが外部表を参照および問合せできるようにします。
次の表に、各アクションの詳細を示します。この表に含まれる様々なユーザー・タイプの詳細は、「データ・カタログのユーザーおよびロール」を参照してください。
アクション | ユーザーが誰か | 摘要 |
---|---|---|
ポリシーの作成 |
データベース・データ・カタログ管理者 |
Autonomous Databaseリソース・プリンシパルまたはAutonomous Databaseユーザー資格証明には、データ・カタログの管理およびオブジェクト・ストレージからの読取りを行うための適切な権限が必要です。 詳細情報: 必要な資格証明およびIAMポリシー。 |
資格証明の作成 |
データベース・データ・カタログ管理者 |
データ・カタログにアクセスし、オブジェクト・ストアを問い合せるには、データベース資格証明が設定されていることを確認します。ユーザーは、 詳細: DBMS_CLOUD CREATE_CREDENTIALプロシージャ、DBMS_CLOUDでリソース・プリンシパルを使用。 |
データ・カタログへの接続の作成 |
データベース・データ・カタログ管理者 |
Autonomous Databaseインスタンスとデータ・カタログ・インスタンス間の接続を開始するには、ユーザーが データ・カタログ・インスタンスへの接続では、十分なOracle Cloud Infrastructure (OCI)権限を持つデータベース資格証明オブジェクトを使用する必要があります。たとえば、Autonomous Databaseインスタンスのリソース・プリンシパル・サービス・トークン、または十分な権限を持つOCIユーザーを使用できます。 接続が完了すると、データ・カタログ・インスタンスは、
DBMS_DCAT ネームスペースおよびカスタム・プロパティ(存在しない場合)で更新されます。ユーザーは、問合せを実行して、現在のすべての接続を含む新しい接続を確認できます。
詳細情報: SET_DATA_CATALOG_CONNプロシージャ、UNSET_DATA_CATALOG_CONNプロシージャ。 |
選択的同期の作成 |
データベース・データ・カタログ管理者 |
同期するデータ・カタログ・オブジェクトを選択して、同期ジョブを作成します。このユーザーは次のことができます。
詳細情報: CREATE_SYNC_JOBプロシージャ、DROP_SYNC_JOBプロシージャ、同期マッピングを参照してください |
データ・カタログとの同期 |
データベース・データ・カタログ管理者 |
ユーザーは同期操作を開始します。同期は、 同期操作では、データ・カタログのコンテンツおよび同期選択に従って、外部表およびスキーマを作成、変更および削除します。手動構成は、データ・カタログのカスタム・プロパティを使用して適用されます。 詳細情報: RUN_SYNCプロシージャ、CREATE_SYNC_JOBプロシージャ、同期マッピングを参照してください |
同期の監視とログの表示 |
データベース・データ・カタログ管理者 |
ユーザーは、USER_LOAD_OPERATIONS ビューを問い合せて同期ステータスを表示できます。同期プロセスの完了後、ユーザーは、論理エンティティから外部表へのマッピングの詳細など、同期結果のログを表示できます。
詳細情報: ロードの監視およびトラブルシューティング |
権限を付与 |
データベース・データ・カタログ問合せ管理者、データベース管理者 |
データベースのデータ・カタログ問合せ管理者またはデータベース管理者は、生成された外部表のREADをデータ・アナリスト・ユーザーに付与する必要があります。これにより、データ・アナリストは生成された外部表を問い合せることができます。 |
外部表の参照および問合せ |
データ・アナリスト |
データ・アナリストは、Oracle SQLをサポートする任意のツールまたはアプリケーションを介して外部表を問い合せることができます。 データ・アナリストは、DCAT$*スキーマ内の同期されたスキーマおよび表を確認し、Oracle SQLを使用して表を問い合せることができます。 詳細情報: 同期マッピング |
データ・カタログへの接続の終了 |
データベース・データ・カタログ管理者 |
既存のデータ・カタログ・アソシエーションを削除するには、UNSET_DATA_CATALOG_CONNプロシージャをコールします。 この処理は、データ・カタログおよびカタログから導出された外部表の使用を計画しなくなった場合にのみ実行されます。このアクションは、データ・カタログ・メタデータを削除し、同期された外部表をAutonomous Databaseインスタンスから削除します。データ・カタログおよびOCIポリシーのカスタム・プロパティは影響を受けません。 |
親トピック: データ・カタログを使用した外部データの問合せ
例: MovieStreamシナリオ
このシナリオでは、Moviestreamはオブジェクト・ストレージのランディング・ゾーンでデータを取得しています。このデータの多くは、必ずしもすべてではなく、Autonomous Databaseのフィードに使用されます。Autonomous Databaseにフィードする前に、データは変換、クレンジングされ、その後「ゴールド」領域に格納されます。
データ・カタログは、これらのソースを収集し、データにビジネス・コンテキストを提供するために使用されます。データ・カタログ・メタデータはAutonomous Databaseと共有されるため、Autonomous DatabaseユーザーはOracle SQLを使用してこれらのデータ・ソースを問い合せることができます。このデータは、Autonomous Databaseにロードするか、外部表を使用して動的に問い合せることができます。
データ・カタログの使用の詳細は、データ・カタログのドキュメントを参照してください。
親トピック: データ・カタログを使用した外部データの問合せ
例: パーティション・データのシナリオ
このシナリオでは、オブジェクト・ストアのパーティション・データから収集されたデータ・カタログ論理エンティティに基づいて、Autonomous Databaseで外部表を作成する方法を示します。
次の例は、例: MovieStreamシナリオに基づいており、パーティション化されたデータとの統合を示すように適応されています。データ・カタログは、これらのソースを収集し、データにビジネス・コンテキストを提供するために使用されます。この例の詳細は、例: MovieStreamシナリオを参照してください。
データ・カタログの使用の詳細は、データ・カタログのドキュメントを参照してください。
親トピック: データ・カタログを使用した外部データの問合せ