DBMS_CLOUD_PIPELINE 패키지

DBMS_CLOUD_PIPELINE 패키지를 사용하면 클라우드에서 데이터를 로드하고 내보내기 위한 데이터 파이프라인을 만들 수 있습니다. 이 패키지는 객체 저장소에 있는 파일을 데이터베이스에 지속적으로 증분 데이터 로드하는 기능을 지원합니다. DBMS_CLOUD_PIPELINE는 또한 시간 기록 열을 기반으로 데이터베이스에서 객체 저장소로 테이블 데이터 또는 질의 결과를 지속적으로 증분 익스포트할 수 있도록 지원합니다.

필요 조건

개발자는 Oracle Public Cloud, 멀티클라우드 또는 Exadata Cloud@Customer에 배포된 Autonomous Database에서 DBMS_CLOUD 절차를 사용할 수 있습니다.

배포 선택에 따라 Amazon S3, Azure Blob StorageGoogle Cloud Storage 서비스 제공업체와 함께 DBMS_CLOUD 절차를 사용하려면 다음 필요 조건이 충족되어야 합니다.

플리트 관리자가 아래 설명된 대로 NAT 게이트웨이를 사용하여 아웃바운드 접속을 구성해야 합니다.
  • Oracle Cloud Infrastructure 문서NAT 게이트웨이 생성 지침에 따라 Autonomous Database 리소스가 상주하는 VCN(가상 클라우드 네트워크)에서 NAT 게이트웨이를 생성합니다.
  • NAT 게이트웨이를 생성한 후 각 서브넷(VCN 내)에 경로 규칙 및 송신 보안 규칙을 추가합니다. 여기서 Autonomous Database 리소스는 게이트웨이를 사용하여 Azure AD 인스턴스에서 퍼블릭 키를 얻을 수 있습니다.
    1. 서브넷의 서브넷 세부 정보 페이지로 이동합니다.
    2. 서브넷 정보 탭에서 서브넷의 경로 테이블 이름을 눌러 경로 테이블 세부정보 페이지를 표시합니다.
    3. 기존 경로 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
      • 대상: 0.0.0.0/0
      • 대상 유형: NAT 게이트웨이
      • 대상: VCN에서 방금 생성한 NAT 게이트웨이의 이름입니다.

      해당 규칙이 없는 경우 경로 규칙 추가를 누르고 해당 특성을 가진 경로 규칙을 추가합니다.

    4. 서브넷에 대한 서브넷 세부정보 페이지로 돌아갑니다.
    5. 서브넷의 보안 목록 테이블에서 서브넷의 보안 목록 이름을 눌러 해당 보안 목록 세부정보 페이지를 표시합니다.
    6. 사이드 메뉴의 리소스에서 송신 규칙을 누릅니다.
    7. 기존 송신 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
      • 대상 유형: CIDR
      • 대상: 0.0.0.0/0
      • IP 프로토콜: TCP
      • 소스 포트 범위: 443
      • 대상 포트 범위: 모두

      해당 규칙이 없으면 Add Egress Rules를 누르고 이러한 특성을 가진 송신 규칙을 추가합니다.

환경의 HTTP 프록시 설정에서 데이터베이스가 클라우드 서비스 공급자에 액세스할 수 있도록 허용해야 합니다.

해당 설정은 콘솔을 사용하여 Cloud@Customer에서 Exadata Database Service 프로비전에 설명된 대로 Exadata Cloud@Customer 인프라를 생성하는 동안 플리트 관리자가 정의합니다.

주:

HTTP 프록시를 포함한 네트워크 구성은 Exadata 인프라가 활성화 필요 상태가 될 때까지만 편집할 수 있습니다. 활성화된 후에는 해당 설정을 편집할 수 없습니다.

이미 프로비전된 Exadata 인프라에 대해 HTTP 프록시를 설정하려면 My Oracle Support에서 SR(서비스 요청)이 필요합니다. 자세한 내용은 My Oracle Support에서 서비스 요청 생성을 참조하십시오.

DBMS_CLOUD_PIPELINE 서브 프로그램 요약

이 표에는 DBMS_CLOUD_PIPELINE 패키지에 포함된 서브 프로그램이 요약되어 있습니다.

하위 프로그램 설명

CREATE_PIPELINE 프로시저

새 데이터 파이프라인을 생성합니다.

DROP_PIPELINE 프로시저

기존 데이터 파이프라인을 삭제합니다.

RESET_PIPELINE 프로시저

데이터 파이프라인의 추적 상태를 재설정합니다. 재설정 파이프라인을 사용하여 데이터 로드 또는 익스포트의 초기 상태에서 파이프라인을 재시작합니다. 선택적으로 파이프라인 재설정은 파이프라인 유형에 따라 데이터베이스 또는 객체 저장소의 데이터를 비울 수 있습니다.

RUN_PIPELINE_ONCE 프로시저

예약된 작업 대신 현재 포그라운드 세션에서 파이프라인의 요청 시 실행을 수행합니다.

SET_ATTRIBUTE 프로시저

파이프라인 속성을 설정합니다. 두 개의 오버로드된 프로시저가 있습니다. 하나는 단일 속성을 설정하고, 다른 하나는 속성 이름/값 쌍의 JSON 문서를 사용하여 여러 속성을 설정하는 것입니다.

START_PIPELINE 프로시저

데이터 파이프라인을 시작합니다. 파이프라인이 시작되면 파이프라인 속성에 구성된 "간격"에 따라 파이프라인 작업이 일정이 잡힌 작업에서 계속 실행됩니다.

STOP_PIPELINE 프로시저

데이터 파이프라인을 정지합니다. 파이프라인이 정지되면 파이프라인에 대해 미래 작업 일정이 잡히지 않습니다.

CREATE_PIPELINE 프로시저

이 프로시저는 새 데이터 파이프라인을 생성합니다.

구문

DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      pipeline_type        IN   VARCHAR2,
      attributes           IN   CLOB        DEFAULT NULL,
      description          IN   VARCHAR2    DEFAULT NULL
);

매개변수

매개변수 설명

pipeline_name

파이프라인의 이름을 지정합니다. 파이프라인 이름은 Oracle SQL 식별자의 이름 지정 규칙을 따라야 합니다. 자세한 내용은 Oracle Database Database PL/SQL Language ReferenceIdentifiers 또는 Oracle Database 23ai Database PL/SQL Language Reference를 참조하십시오.

이 매개변수는 필수입니다.

pipeline_type

파이프라인 유형을 지정합니다.

적합한 값은 LOAD, EXPORT입니다.

이 매개변수는 필수입니다.

attributes

JSON 형식의 파이프라인 속성입니다.

기본값: NULL

자세한 내용은 DBMS_CLOUD_PIPELINE Attributes을 참조하십시오.

description

파이프라인에 대한 설명입니다.

기본값: NULL

DROP_PIPELINE 프로시저

프로시저는 기존 데이터 파이프라인을 삭제합니다. 파이프라인이 시작된 경우 이를 중지해야 삭제할 수 있습니다.

구문

DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       force                IN   BOOLEAN DEFAULT FALSE
 );

매개변수

매개변수 설명

pipeline_name

파이프라인 이름을 지정합니다.

이 매개변수는 필수입니다.

force

파이프라인이 시작 상태인 경우에도 강제로 삭제합니다.

적합한 값: TRUE, FALSE

기본값: FALSE

사용법 노트

  • 시작 상태인 파이프라인을 삭제하려면 force 매개변수를 TRUE로 설정합니다.

RESET_PIPELINE 프로시저

데이터 파이프라인의 추적 상태를 재설정합니다. 재설정 파이프라인을 사용하여 데이터 로드 또는 익스포트의 초기 상태에서 파이프라인을 재시작합니다. 선택적으로 파이프라인 재설정은 파이프라인 유형에 따라 데이터베이스 또는 객체 저장소의 데이터를 비울 수 있습니다. 재설정하려면 데이터 파이프라인이 정지 상태여야 합니다.

구문

DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       purge_data           IN   BOOLEAN DEFAULT FALSE
 );

매개변수

매개변수 설명

pipeline_name

파이프라인의 이름을 지정합니다.

이 매개변수는 필수입니다.

purge_data

로드 파이프라인 또는 익스포트 파이프라인에 대해 데이터 비우기가 적용됩니다.

  • 로드 파이프라인의 경우 TRUE일 때 데이터베이스 테이블의 데이터를 잘라냅니다.

  • 익스포트 파이프라인의 경우 TRUE인 경우 객체 저장소 위치에서 파일을 삭제합니다.

적합한 값: TRUE, FALSE

기본값: FALSE

사용법 참고

  • 재설정하려면 데이터 파이프라인이 정지 상태여야 합니다. 자세한 내용은 STOP_PIPELINE Procedure를 참조하십시오.

  • 로드 파이프라인의 경우 파이프라인을 재설정하면 파이프라인에서 로드 중인 파일의 레코드가 지워집니다. 로드 파이프라인을 재설정한 후 START_PIPELINE 또는 RUN_PIPELINE_ONCE를 호출하면 파이프라인이 데이터 로드를 반복하고 객체 저장소 위치에 있는 모든 파일을 포함합니다.

    purge_dataTRUE로 설정된 경우 DBMS_CLOUD_PIPELINE.RESET_PIPELINE는 다음을 수행합니다.

    • table_name 속성으로 지정한 파이프라인의 데이터베이스 테이블에서 데이터를 잘라냅니다.

    • 파이프라인의 상태 테이블과 파이프라인의 잘못된 파일 테이블 및 오류 테이블(있는 경우)을 삭제합니다.

  • 익스포트 파이프라인의 경우 파이프라인을 재설정하면 데이터베이스 테이블에서 마지막으로 추적된 데이터가 지워집니다. 익스포트 파이프라인을 재설정한 후 START_PIPELINE 또는 RUN_PIPELINE_ONCE을 호출하면 파이프라인이 테이블 또는 질의에서 데이터 익스포트를 반복합니다.

    purge_dataTRUE로 설정된 경우 DBMS_CLOUD_PIPELINE.RESET_PIPELINElocation 속성으로 지정된 객체 저장소 위치의 기존 파일을 삭제합니다.

RUN_PIPELINE_ONCE 프로시저

이 프로시저는 예약된 작업에서 실행되지 않고 현재 포그라운드 세션에서 파이프라인의 요청 시 실행을 수행합니다. 파이프라인을 연속 작업으로 시작하기 전에 DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE를 사용하여 파이프라인을 테스트합니다.

구문

DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE(
       pipeline_name  IN  VARCHAR2
);

매개변수

매개변수 설명

pipeline_name

실행할 파이프라인의 이름을 지정합니다.

이 매개변수는 필수입니다.

사용법 참고

  • 파이프라인의 테스트 실행을 수행한 후 DBMS_CLOUD_PIPELINE.RESET_PIPELINE를 사용하여 파이프라인 상태를 재설정할 수 있습니다. 이렇게 하면 일정이 잡힌 작업에서 파이프라인을 시작하기 전에 파이프라인 상태를 재설정할 수 있습니다.

  • 파이프라인이 시작됨 상태인 경우 포그라운드 세션에서 실행할 수 없습니다.

SET_ATTRIBUTE 프로시저

이 절차에서는 파이프라인 속성을 설정합니다. 두 개의 오버로드된 프로시저가 있습니다. 하나는 단일 속성을 설정하고, 다른 하나는 속성 이름/값 쌍의 JSON 문서를 사용하여 여러 속성을 설정하는 것입니다.

구문

PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
      pipeline_name        IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   CLOB
);
 
PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
      pipeline_name        IN   VARCHAR2,
      attributes           IN   CLOB
);

매개변수

매개변수 설명

pipeline_name

속성을 설정할 파이프라인의 이름을 지정합니다.

이 매개변수는 필수입니다.

attribute_name

설정할 속성에 대한 속성 이름을 지정합니다.

자세한 내용은 DBMS_CLOUD_PIPELINE Attributes을 참조하십시오.

attribute_value

설정할 파이프라인 속성에 대한 값을 지정합니다.

자세한 내용은 DBMS_CLOUD_PIPELINE Attributes을 참조하십시오.

attributes

속성 이름 및 값을 포함하는 JSON 문서를 지정합니다.

자세한 내용은 DBMS_CLOUD_PIPELINE Attributes을 참조하십시오.

사용법 노트

  • DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE를 사용하여 attributes 매개변수로 여러 속성을 설정하면 모든 기존 속성이 삭제되고 JSON 문서에서 지정된 속성으로 겹쳐쓰여집니다.

START_PIPELINE 프로시저

이 절차에서는 데이터 파이프라인을 시작합니다. 파이프라인이 시작되면 파이프라인 속성으로 구성된 interval에 따라 파이프라인 작업이 일정이 잡힌 작업에서 계속 실행됩니다.

구문

DBMS_CLOUD_PIPELINE.START_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      start_date           IN   TIMESTAMP WITH TIME ZONE DEFAULT NULL
);

매개변수

매개변수 설명

pipeline_name

파이프라인의 이름을 지정합니다.

이 매개변수는 필수입니다.

start_date

파이프라인 작업의 시작 날짜를 지정합니다.

기본값: NULL

사용법 참고

  • 기본적으로 파이프라인이 시작되는 즉시 파이프라인 작업이 즉시 시작됩니다. 나중에 파이프라인 작업을 시작하려면 start_date 매개변수를 사용하여 적합한 날짜 또는 시간 기록을 지정합니다.

  • 파이프라인 interval 및 기타 파이프라인 속성에 대한 자세한 내용은 DBMS_CLOUD_PIPELINE 속성을 참조하십시오.

STOP_PIPELINE 프로시저

이 절차에서는 데이터 파이프라인을 중지합니다. 파이프라인이 정지되면 파이프라인에 대해 미래 작업 일정이 잡히지 않습니다.

구문

DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      force                IN   BOOLEAN  DEFAULTFALSE
);

매개변수

매개변수 설명

pipeline_name

파이프라인의 이름을 지정합니다.

이 매개변수는 필수입니다.

force

force 매개변수가 TRUE로 전달되면 파이프라인에 대해 실행 중인 모든 작업이 종료됩니다.

적합한 값: TRUE, FALSE

기본값: FALSE

DBMS_CLOUD_PIPELINE 속성

속성은 데이터 파이프라인의 동작을 제어하고 구성하는 데 도움이 됩니다.

속성

주:

파이프라인 유형 열에 표시된 대로 파이프라인 유형 LOAD 또는 EXPORT에 따라 파이프라인은 다른 속성 집합을 지원합니다.
속성 이름 설명 파이프 라인 유형 파이프라인 시작 후 수정 가능
credential_name

소스 클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.

기본값: NULL.

credential_name를 제공하지 않으면 credential_nameNULL로 설정됩니다.

LOAD, EXPORT
field_list

소스 파일의 필드 및 해당 데이터 유형을 식별합니다. 이 인수의 구문은 일반 Oracle External Table의 field_list 절과 동일합니다. 자세한 내용은 field_list in Oracle Database 19c Utilities 또는 Oracle Database 23ai Utilities를 참조하십시오.

기본값: NULL

기본값은 필드 및 해당 데이터 유형이 table_name 속성에 지정된 테이블의 열에 의해 결정되도록 지정합니다.

LOAD
format

파이프라인 유형에 대한 형식을 설명하는 옵션입니다.

익스포트 파이프라인에 대해서는 데이터 펌프 format가 지원되지 않습니다.

이 속성은 LOADEXPORT 파이프라인 모두에 필수입니다.

LOAD, EXPORT
interval

일정이 잡힌 파이프라인 작업의 연속 실행 간격(분)입니다.

기본값: 15분

LOAD, EXPORT
key_column

객체 저장소에 지속적으로 최신 데이터를 익스포트하기 위한 지정된 table 또는 query의 시간기록 또는 날짜 열입니다. 마지막 실행 시간기록 또는 날짜는 익스포트 파이프라인에 의해 추적되고 key_column의 값과 비교되어 객체 저장소로 익스포트할 새 데이터를 식별합니다.

기본값: NULL

익스포트 파이프라인에 대해 key_column가 지정되지 않은 경우 table 또는 query의 전체 콘텐츠가 각 파이프라인 작업 실행의 객체 저장소에 업로드됩니다.

EXPORT 아니요
location

오브젝트 스토리지 위치를 가리키는 URI를 지정합니다.

URI의 형식은 클라우드 객체 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.

이 속성은 LOADEXPORT 파이프라인 모두에 필수입니다.

LOAD, EXPORT 아니요
priority

파이프라인에 대해 수행된 병렬 작업 수를 결정하는 문자열 값을 지정합니다.

  • 로드 파이프라인에서 병렬로 로드된 파일 수를 결정합니다.

  • 엑스포트 파이프라인에서 데이터베이스로부터 데이터를 패치(fetch)하기 위한 병렬도를 결정합니다.

우선 순위가 높은 작업은 더 많은 데이터베이스 리소스를 소비하며 더 빨리 완료됩니다.

적합한 값은 다음과 같습니다.

  • HIGH: 데이터베이스의 ECPU 개수(데이터베이스에서 OCPU를 사용하는 경우 OCPU 개수)를 사용하여 처리된 병렬 파일 수를 결정합니다.
  • MEDIUM: 중간 서비스에 대한 동시성 제한을 사용하는 동시 프로세스 수를 결정합니다. 기본값은 4입니다.
  • LOW: 파이프라인 작업을 순차적으로 실행합니다.

기본값: MEDIUM

최대 동시 파일 작업 수는 64개로 제한됩니다.

LOAD, EXPORT
query

필요한 데이터만 내보내도록 SELECT 문을 지정합니다. 질의에 따라 텍스트 파일(CSV, JSON, Parquet, XML) 또는 덤프 파일로 익스포트할 파일의 콘텐츠가 결정됩니다.

예:

SELECT warehouse_id, quantity FROM inventories

기본값: NULL

익스포트 파이프라인의 경우 table_name 또는 query은 필수입니다.

EXPORT 아니요
table_name

데이터를 로드하거나 익스포트할 대상 테이블의 이름을 지정합니다.

로드 파이프라인의 경우 table_name은 필수입니다.

익스포트 파이프라인의 경우 table_name 또는 query은 필수입니다.

LOAD, EXPORT 아니요
table_owner

데이터를 로드하거나 익스포트하기 위해 대상 테이블이 상주하는 스키마의 이름입니다.

기본값: NULL

NULL 값을 사용할 경우 대상 테이블은 프로시저를 실행하는 사용자와 동일한 스키마에 있습니다.

LOAD, EXPORT 아니요