データ・カタログを使用した外部データの問合せ
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の外部表にマップされます。これらのスキーマおよび外部表は、同期プロセスによって自動的に生成されてメンテナンスされます:
- フォルダ/バケットは、編成上の目的のみのデータベース・スキーマにマップされます。
- 編成は、データ・レイクと一貫性を持たせ、異なるパスからデータにアクセスする際の混乱を最小限に抑えることを目的としています。
- データ・カタログは、スキーマに含まれる表の真のソースです。データ・カタログで行われた変更により、後続の同期時にスキーマの表が更新されます。
この機能を使用するには、データベース・データ・カタログ管理者がデータ・カタログ・インスタンスへの接続を開始し、同期するデータ・アセットおよび論理エンティティを選択し、同期を実行します。同期プロセスでは、選択したデータ・カタログで収集されたデータ・アセットおよび論理エンティティに基づいて、スキーマおよび外部表が作成されます。外部表が作成されるとすぐに、データ・アナリストは外部データ・ソースのスキーマを手動で導出して外部表を作成することなく、データの問合せを開始できます。
DBMS_DCAT
パッケージは、データ・カタログ・オブジェクト・ストア・データ・アセットの問合せに必要なタスクを実行するために使用できます。DBMS_DCAT Packageを参照してください。
親トピック: データ・カタログを使用した外部データの問合せ
データ・カタログを使用した問合せに関連する概念
データ・カタログを使用して問い合せるには、次の概念を理解する必要があります。
- Data Catalog
-
データ・カタログは、Autonomous Databaseで問い合せるオブジェクト・ストア・データ・ソースを指すデータ・アセットを収集します。データ・カタログから、収集時のデータの編成方法を指定し、様々なファイル編成パターンをサポートできます。データ・カタログの収集プロセスの一部として、アセット内で管理するバケットおよびファイルを選択できます。詳細は、データ・カタログの概要を参照してください。
- オブジェクト・ストア
-
オブジェクト・ストアには、様々なオブジェクトを含むバケットがあります。これらのバケットに含まれるオブジェクトの一般的なタイプには、CSV、parquet、avro、jsonおよびORCファイルがあります。バケットには通常、含まれているオブジェクトに対する構造または設計パターンがあります。データの構造化には様々な方法があり、これらのパターンを解釈する様々な方法があります。
たとえば、一般的な設計パターンでは、表を表すトップレベル・フォルダを使用します。特定のフォルダ内のファイルは同じスキーマを共有し、その表のデータを含みます。サブフォルダは、多くの場合、表パーティション(各日のサブフォルダなど)を表現するために使用されます。データ・カタログは、各最上位フォルダを論理エンティティとして参照し、この論理エンティティはAutonomous Database外部表にマップされます。
- Connection
-
接続とは、データ・カタログ・インスタンスへの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アクセス権を付与するため、データ・アナリストや他のデータベース・ユーザーは外部表を参照および問合せできます。
次の表に各アクションの詳細を示します。この表に含まれる様々なユーザー・タイプの説明は、データ・カタログのユーザーおよびロールを参照してください。
DBMS_DCAT
パッケージは、データ・カタログ・オブジェクト・ストア・データ・アセットの問合せに必要なタスクを実行するために使用できます。DBMS_DCAT Packageを参照してください。
アクション | ユーザー | 説明 |
---|---|---|
ポリシーの作成 |
データベース・データ・カタログ管理者 |
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シナリオを参照してください。
データ・カタログの使用の詳細は、データ・カタログ・ドキュメントを参照してください。
親トピック: データ・カタログを使用した外部データの問合せ