DBMS_CATALOG 패키지

DBMS_CATALOG 패키지에는 기능별로 그룹화된 카탈로그 관리를 위한 광범위한 서브 프로그램이 포함되어 있습니다.

  • 카탈로그 마운팅 및 마운트 해제

    기존 접속(예: 데이터베이스에 대한 기존 데이터베이스 링크)을 마운트하거나 새 접속을 추가하고 외부 시스템을 새 카탈로그로 등록하여 Oracle Autonomous AI Database에 새 카탈로그를 추가할 수 있습니다.

    주:

    카탈로그를 생성하거나 업데이트하는 동안 문자, 숫자 및 밑줄만 사용하여 카탈로그 이름, 데이터베이스 링크 이름, 스키마 이름, 테이블 이름, 열 이름 등의 속성을 지정합니다. 대소문자를 구분하지 않으며 멀티바이트 문자를 지원하지 않습니다.

    카탈로그를 사용 또는 사용 안함으로 설정할 수 있으며,

    주:

    사용 안함으로 설정된 카탈로그는 접속 세부정보 및 현재 메타데이터를 유지하지만 업데이트되지 않으며 UI 또는 API에서 액세스할 수 없습니다.

    자율운영 AI 데이터베이스에서 카탈로그를 제거하거나 분리합니다.

  • 카탈로그 속성 관리
    여기에서 언급된 서브 프로그램을 사용하면 시스템 내의 카탈로그, 스키마 및 테이블의 다양한 속성을 검색하고 갱신할 수 있습니다. 특히 다음과 같은 기능을 제공합니다.
    • CLOB 형식을 통해 큰 텍스트 값을 처리하는 옵션을 포함하여 카탈로그, 스키마 또는 테이블에 대한 속성 값을 가져옵니다.

    • 일반 데이터 유형과 CLOB 데이터 유형을 모두 지원하여 카탈로그, 스키마 또는 테이블에 대한 속성 값을 갱신합니다.

  • 인증서 관리
    마운트된 카탈로그에는 0개 이상의 필요한 자격 증명이 포함됩니다. 카탈로그를 사용하기 전에 지정해야 하는 인증서입니다. 예를 들어, Apache Iceberg 카탈로그에는 일반적으로 두 개의 필수 자격 증명이 있습니다.
    • 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 함수를 사용하여 required 자격 증명과 local 자격 증명 간의 현재 매핑을 확인할 수 있습니다.
    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"
    }
  • 카탈로그 엔티티 관리
    여기에 나열된 서브 프로그램은 저장 영역 링크, 스키마, 테이블 및 기타 카탈로그 객체의 생성, 검색 및 삭제를 포함하여 카탈로그 내의 다양한 엔티티를 관리하는 것입니다. 다음 기능을 제공합니다.
    • 카탈로그에 연결된 클라우드 스토리지 링크를 생성 및 삭제합니다.

    • 카탈로그 내에서 External Table 생성 및 삭제

    • 스키마 및 해당 컨텐트를 생성하고 삭제합니다.

    • 선택적 필터링을 사용하여 테이블, 스키마 및 기타 카탈로그 객체 목록을 검색합니다.

  • 데이터 액세스 및 캐싱
    이 섹션에는 데이터 질의, 결과 커서 관리 및 카탈로그 내의 메타 데이터 캐싱 제어를 처리하는 함수가 포함되어 있습니다. 여기에는 다음과 같은 기능이 포함됩니다.
    • 커스터마이즈 가능한 옵션을 사용하여 논리적 테이블에 대한 SELECT 문을 생성합니다.

    • 커서를 열어 논리적 테이블에서 데이터를 패치(fetch)합니다.

    • 데이터를 최신 상태로 유지하기 위해 카탈로그에 대한 메타데이터 캐시를 비우고 미리 채웁니다.

  • 동기화 및 공유
    이 절에서는 여러 시스템 또는 환경에서 일관된 최신 카탈로그 및 스키마의 관리 및 유지 관리를 가능하게 하는 기능에 대해 설명합니다. 이 프로토콜은 다음과 같은 기능을 제공합니다.
    • CREATE_SYNCHRONIZED_SCHEMAS: 원격 카탈로그 정의와 동기화되는 로컬 스키마를 데이터베이스에 생성하여 로컬 환경에 원격 소스가 반영되도록 합니다.
    • DROP_SYNCHRONIZED_SCHEMAS: 이전에 동기화된 스키마를 하나 이상 제거합니다.
    • UPDATE_SYNCHRONIZED_SCHEMA_PROPERTY: CLOB 형식의 새 값으로 속성을 업데이트하여 변경 사항 추적 또는 동기화 동작과 같은 동기화된 스키마의 속성을 수정합니다.
    • GRANT_TO_RECIPIENTREVOKE_FROM_RECIPIENT: 카탈로그 데이터를 보거나 수정할 수 있는 사용자를 제어하면서 특정 공유 수신자에 대한 카탈로그에 대한 액세스 권한을 부여하거나 취소하여 액세스 권한을 관리합니다.