リモート・カタログおよびデータベースの問合せについて

このトピックでは、[schema].object@catalog_nameという形式のSQL構文を使用して、カタログ・メタデータを使用して外部データを問い合せる方法について説明します。

構文[schema].object@catalog_nameは、データベース・オブジェクトへのアクセス表現を表します。

この表は、構文で使用されるパラメータとその説明を示しています。

パラメータ 説明
スキーマ

このフィールドはオプションであり、デフォルトで現在のユーザーに設定されます。スキーマは、表、ビュー、プロシージャ、ファンクションなど、関連するデータベース・オブジェクトを編成するカタログ内のネームスペースです。これらのオブジェクトの論理コンテナとして機能します。

オブジェクト このフィールドは、表、ビュー、プロシージャ、ファンクションなど、スキーマ内に含まれるデータベース・オブジェクトを参照します。
カタログ カタログ・フィールドには、参照表を含むカタログの名前が表示されます。DBMS_CATALOGパッケージまたはData Studioツール・スイートのカタログ・ツールを使用して、カタログを作成および管理できます。
ノート

カタログは、dbLinksでも置換できます。

リモート表へのアクセス

カタログを使用してリモート・スキーマから表にアクセスするには、次のステップを実行する必要があります。
  1. カタログのマウント: サポートされている任意のタイプのデータ・ストア(Iceberg、Delta Lakeなど)にカタログをマウントすることから開始します。カタログをマウントすると、メタデータが標準化され、カタログ内のスキーマ内の表であるかのように外部データへのSQLアクセスが可能になります。カタログのマウントに関する詳細なステップは、「カタログの管理」を参照してください。カタログがマウントされ、メタデータが標準化されると、SQLを使用して外部データを直接問い合せることができます。外部データが従来の表として物理的に存在しない場合でも、カタログはそれを表形式に抽象化して簡単に問合せできます。
  2. 表の参照: マウントしたら、スキーマとカタログ(該当する場合)に続けて表名を指定して、[remote_schema].table@catalog構文を使用してリモート表を参照できます。

この識別子のschemaは、リモート表を含むリモート・スキーマです。この場合、Tableはリモート・カタログの表名です。

ノート

ユーザーには、特定の表およびカタログにアクセスするための適切な資格証明が必要です。

考慮すべき重要なポイント

  • この機能は、ADB-S環境にインストールされたDBMS_CATALOGパッケージを使用して設計されています。
  • DDL操作(CREATE, ALTER, DROPなど)は、カタログを介したリモート・データベースでは許可されません。その場合、「ORA-02021: リモート・データベースに対するDDL操作が無効です。」というエラーが発生する可能性があります。
  • 同じ名前の制限: この機能により、特定のユーザーに対して、同じ名前のDBリンクおよびカタログが存在できないことが強制されます。

SQL問合せを実行するには、データベース・アクションのSQLワークシート・エディタを使用します。最初にデータベース・アクション・インスタンスに接続し、「開発」メニューの「SQL」を選択する必要があります。

前提条件

OCIアカウントが必要です。

DBlinksはカタログとどのように異なりますか。

DBLinks: 主に、構文を使用して別のデータベースに直接接続して問い合せるために使用されます。

たとえば:
SELECT * FROM <schema_name>.<table_name>@<dblink_name>;

カタログがDBLinkを介して別のデータベースにマウントされている場合、DBLink構文はリモート・データベース・オブジェクトに直接アクセスするため、カタログにメタデータを個別に定義する必要はありません。基本的に、DBLinkはリモート・データベースへの透過的な接続として機能し、データがローカルであるかのように問合せを実行できます。

カタログ: DBLinksを介して接続されたデータベースだけでなく、外部データ・カタログやDelta ShareプロバイダやLive Shareプロバイダなどのデータ共有など、様々なタイプのデータ・ストアにマウントできるメタデータ・レイヤーとして機能します。カタログが非データベース・ストアにマウントされている場合、@catalog構文は、問合せを適応させてインライン外部表を生成し、DBLinkを必要とせずに外部データにアクセスできるようにします。つまり、カタログはメタデータ管理を抽象化し、外部データ・ソースを含む様々なデータ・ソースを問い合せるための統合インタフェースを提供します。