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

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

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

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

表13-2 構文で使用されるパラメータと説明

パラメータ 説明
スキーマ

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

オブジェクト このフィールドは、表、ビュー、プロシージャ、ファンクションなど、スキーマ内に含まれるデータベース・オブジェクトを指します。
カタログ カタログ・フィールドには、参照表を含むカタログの名前を示します。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問合せを実行するには、Database ActionsのSQLワークシート・エディタを使用します。まず、Database Actionsインスタンスに接続し、「開発」メニューの「SQL」を選択する必要があります。

前提条件:

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

DBLinkとカタログの違い

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

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

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

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