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

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

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

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

表16-2構文で使用されるパラメータおよび説明

Parameters 説明
スキーマ

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

オブジェクト このフィールドは、表、ビュー、プロシージャ、ファンクションなど、スキーマ内に含まれるすべてのデータベース・オブジェクトを参照します。
カタログ カタログ・フィールドには、参照される表を含むカタログの名前が表示されます。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アカウントが必要です。

DBリンクはカタログとどのように異なりますか。

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

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

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

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