원격 카탈로그 및 데이터베이스 질의 정보

이 장에서는 [schema].object@catalog_name 형식의 SQL 구문을 사용하여 카탈로그 메타데이터를 사용하여 외부 데이터를 쿼리하는 방법을 배웁니다.

여기서 [schema].object@catalog_name 구문은 데이터베이스 객체에 액세스하는 표현을 나타냅니다.

이 표에서는 구문에 사용된 매개변수 및 해당 설명에 대해 설명합니다.

표 16-2 구문에 사용된 매개변수 및 설명

매개변수 설명
스키마

이 필드는 선택 사항이며 현재 사용자로 기본 설정됩니다. 스키마는 테이블, 뷰, 프로시저 또는 함수와 같은 관련 데이터베이스 객체를 구성하는 카탈로그 내의 네임스페이스입니다. 이러한 객체의 논리적 컨테이너 역할을 합니다.

객체 이 필드는 스키마에 포함된 테이블, 뷰, 프로시저 또는 함수와 같은 데이터베이스 객체를 나타냅니다.
카탈로그 카탈로그 필드에는 참조된 테이블이 있는 카탈로그의 이름이 표시됩니다. DBMS_CATALOG 패키지 또는 Data Studio 도구 모음의 Catalog Tool을 사용하여 카탈로그를 생성하고 관리할 수 있습니다.

주:

카탈로그를 dbLinks로 바꿀 수도 있습니다.

원격 테이블 액세스

카탈로그를 사용하여 원격 스키마에서 테이블에 액세스하려면 다음 단계를 수행해야 합니다.
  1. 카탈로그 마운트: 지원되는 모든 데이터 저장소 유형(예: 빙산, 델타 레이크 등)에 카탈로그를 마운트하는 것부터 시작합니다. 카탈로그를 마운트하면 메타 데이터가 표준화되므로 카탈로그의 스키마 내에 있는 테이블처럼 외부 데이터에 SQL이 액세스할 수 있습니다. 카탈로그 마운트에 대한 자세한 단계는 카탈로그 관리를 참조하십시오. 카탈로그가 마운트되고 메타 데이터가 표준화되면 SQL을 사용하여 외부 데이터를 직접 query할 수 있습니다. 외부 데이터가 일반 테이블로 물리적으로 존재하지 않더라도 카탈로그는 쉽게 query할 수 있도록 이 데이터를 테이블 형식으로 요약합니다.
  2. 테이블 참조: 마운트된 후에는 [remote_schema].table@catalog 구문을 사용하여 스키마 및 카탈로그(해당하는 경우)와 테이블 이름을 지정하여 원격 테이블을 참조할 수 있습니다.

여기서는 이 식별자의 schema가 원격 테이블을 포함하는 원격 스키마입니다. 이 경우 Table는 원격 카탈로그의 테이블 이름입니다.

주:

특정 테이블 및 카탈로그에 액세스하려면 유저에게 적합한 인증서가 있어야 합니다.

고려해야 할 주요 사항

  • 이 기능은 ADB-S 환경에 설치된 DBMS_CATALOG 패키지를 사용하여 설계되었습니다.
  • 카탈로그를 통해 원격 데이터베이스에서는 DDL 작업(예: CREATE, ALTER, DROP)이 허용되지 않습니다. 이 경우 "ORA-02021: DDL operations are not allowed on a remote database" 오류가 발생할 수 있습니다.
  • 동일한 이름 제한: 이 기능은 지정된 사용자에 대해 DB 링크와 동일한 이름의 카탈로그가 존재할 수 없도록 강제합니다.

Database Actions의 SQL Worksheet Editor를 사용하여 SQL query를 실행합니다. 먼저 Database Actions 인스턴스에 접속하고 Development 메뉴에서 SQL을 선택해야 합니다.

필요 조건:

OCI 계정이 필요합니다.

DBlink는 Catalog와 어떻게 다릅니까?

DBLinks: 주로 구문을 사용하여 다른 데이터베이스에 직접 접속하고 질의하는 데 사용됩니다.

예:
SELECT *FROM <schema_name>.<table_name>@<dblink_name>;

카탈로그가 DBLink를 통해 다른 데이터베이스에 마운트되면 DBLink 구문이 원격 데이터베이스 객체에 직접 액세스하므로 카탈로그에서 메타 데이터를 별도로 정의할 필요가 없습니다. 기본적으로 DBLink는 원격 데이터베이스에 투명하게 연결되므로 데이터가 로컬인 것처럼 query를 실행할 수 있습니다.

카탈로그: DBLink를 통해 연결된 데이터베이스뿐만 아니라 외부 데이터 카탈로그 또는 델타 공유 또는 라이브 공유 제공자와 같은 데이터 공유 등 다양한 유형의 데이터 저장소에 마운트할 수 있는 메타데이터 계층 역할을 합니다. 카탈로그가 비데이터베이스 저장소에 마운트되면 @catalog 구문은 질의를 조정하여 인라인 외부 테이블을 생성함으로써 DBLink 없이도 외부 데이터에 액세스할 수 있도록 합니다. 즉, 카탈로그는 메타데이터 관리를 추상화하고 외부 데이터 소스를 포함한 다양한 데이터 소스를 쿼리하기 위한 통합 인터페이스를 제공합니다.