DBMS_CATALOGパッケージ

DBMS_CATALOGパッケージには、カタログ管理のための様々なサブプログラムが含まれており、機能別にグループ化されています。

  • カタログのマウントおよびアンマウント:

    既存の接続(データベースへの既存のデータベース・リンクなど)をマウントするか、新しい接続を追加して外部システムを新しいカタログとして登録することで、Autonomous AI Databaseに新しいカタログを追加できます。

    カタログを有効または無効にできます。

    ノート:

    無効にされたカタログでは、接続の詳細および現在のメタデータは保持されますが、更新されず、UIからもAPIからもアクセスできません。

    Autonomous AI Databaseからカタログを削除またはデタッチします。

  • カタログ・プロパティ管理:
    ここで説明するサブプログラムを使用すると、システム内のカタログ、スキーマおよび表の様々なプロパティを取得および更新できます。具体的には、次の機能を備えています:
    • カタログ、スキーマまたは表のプロパティの値を取得します。大きいテキスト値をCLOB形式で処理するオプションも含まれます。

    • 通常のデータ型とCLOBデータ型の両方をサポートして、カタログ、スキーマまたは表のプロパティの値を更新します。

  • 資格証明管理:
    マウントされたカタログには、0個以上の必須資格証明が含まれます。これらは、カタログを使用する前に指定する必要がある資格証明です。たとえば、Icebergカタログには通常、2つの必須資格証明があります。
    • ICEBERG_CREDENTIAL: Iceberg RESTカタログ・エンドポイントのコールに使用される資格証明。これは通常、Bearerトークン資格証明です。
    • DATA_STORAGE_CREDENTIAL: バケット内のIcebergファイルへのアクセスに使用される資格証明。
    必須資格証明は、指定する必要があるパラメータとみなすことができます。ローカル資格証明は、ユーザーのスキーマ内の実際のCREDENTIALオブジェクトで、必須資格証明のいずれかの役割を果たします。ローカル資格証明は、カタログをマウントするときにDBMS_CATALOG.MOUNT_ICEBERGcatalog_credentialdata_storage_credentialなどの引数を使用して指定できます。SET_LOCAL_CREDENTIALをコールして、後で指定することもできます。
    BEGIN
      -- Create a new credential
      DBMS_CLOUD.CREATE_CREDENTIAL('BUCKET_CREDENTIAL', ...);
    
      -- Make the new credential play the role of the required 'DATA_STORAGE_CREDENTIAL'
      DBMS_CATALOG.SET_LOCAL_CREDENTIAL(
        catalog_name => 'iceberg_cat',
        required_credential => 'DATA_STORAGE_CREDENTIAL',
        local_credential => 'BUCKET_CREDENTIAL');
    END;    
    GET_LOCAL_CREDENTIAL_MAPファンクションを使用すると、必須資格証明とローカル資格証明の間の現在のマッピングを確認できます。
    SELECT
       JSON_QUERY(dbms_catalog.get_local_credential_map('iceberg_cat'), '$' PRETTY)
    FROM dual;
      2    3  
    JSON_QUERY(DBMS_CATALOG.GET_LOCAL_CREDENTIAL_MAP('ICEBERG_CAT'),'$'PRETTY)
    ------------------------------------------------------------------------------------------------------------------------
    {
      "DATA_STORAGE_CREDENTIAL" : "BUCKET_CREDENTIAL",
      "ICEBERG_CREDENTIAL" : "UNITY_CRED"
    }
  • カタログ・エンティティ管理:
    ここに示すサブプログラムは、ストレージ・リンク、スキーマ、表およびその他のカタログ・オブジェクトの作成、取得および削除を含む、カタログ内の様々なエンティティの管理を指します。次の機能を備えています:
    • カタログにリンクされたクラウド・ストレージ・リンクを作成および削除します。

    • カタログ内で外部表を作成および削除します。

    • スキーマとそのコンテンツを作成および削除します。

    • オプションのフィルタリングを使用して、表、スキーマおよびその他のカタログ・オブジェクトのリストを取得します。

  • データのアクセスおよびキャッシュ:
    この項では、データの問合せ、結果カーソルの管理、およびカタログ内のメタデータ・キャッシュの制御を処理する機能について説明します。次の機能を備えています:
    • カスタマイズ可能なオプションを使用して、論理表に対するSELECT文を生成します。

    • カーソルを開いて、論理表からデータをフェッチします。

    • データを最新の状態に保つために、カタログのメタデータ・キャッシュをフラッシュして事前入力します。

  • 同期と共有:
    この項では、様々なシステムや環境にわたって一貫性のある最新のカタログおよびスキーマの管理と保守を可能にするサブプログラムを示し、機能について説明します。次の機能を提供します。
    • CREATE_SYNCHRONIZED_SCHEMAS: リモート・カタログ定義と同期されるローカル・スキーマをデータベースに作成し、ローカル環境にリモート・ソースが反映されるようにします。
    • DROP_SYNCHRONIZED_SCHEMAS: 以前に同期された1つ以上のスキーマを削除します。
    • UPDATE_SYNCHRONIZED_SCHEMA_PROPERTY: CLOB形式の新しい値でプロパティを更新することで、同期されたスキーマのプロパティ(変更追跡や同期動作など)を変更します。
    • GRANT_TO_RECIPIENT & REVOKE_FROM_RECIPIENT: 特定の共有受信者のカタログへのアクセス権を付与または取り消したり、カタログ・データを表示または変更できるユーザーを制御することで、アクセス権限を管理します。