파이프 라인 관리

파이프라인을 생성 및 테스트한 후 파이프라인을 시작, 정지 또는 삭제하여 파이프라인을 제어합니다. 파이프라인을 재설정할 수도 있습니다.

파이프라인 시작

파이프라인을 생성한 후 파이프라인을 시작할 수 있습니다.

파이프라인이 시작되면 파이프라인이 일정이 잡힌 작업에서 계속 실행됩니다. 파이프라인의 일정이 잡힌 작업은 기본적으로 15분마다 또는 interval 속성으로 설정한 간격으로 반복됩니다.

  1. 파이프라인을 시작합니다.
    BEGIN
      DBMS_CLOUD_PIPELINE.START_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /

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

    자세한 내용은 START_PIPELINE Procedure를 참조하십시오.

  2. 파이프라인이 시작되었는지 확인합니다.

    예:

    
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    PIPELINE_NAME            STATUS  
    ------------------------ ------- 
    EMPLOYEE_PIPELINE        STARTED

파이프라인 정지

STOP_PIPELINE를 사용하여 파이프라인을 정지합니다. 파이프라인이 정지되면 파이프라인에 대해 미래 작업 일정이 잡히지 않습니다.

기본적으로 현재 실행 중인 작업은 파이프라인을 정지할 때 완료됩니다. 실행 중인 작업을 종료하고 파이프라인을 즉시 정지하려면 force 매개변수를 TRUE로 설정합니다.

  1. 파이프라인을 정지합니다.
    BEGIN
      DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /

    자세한 내용은 STOP_PIPELINE Procedure를 참조하십시오.

  2. 파이프라인이 중지되었는지 확인합니다.
    
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    PIPELINE_NAME            STATUS  
    ------------------------ ------- 
    EMPLOYEE_PIPELINE        STOPPED

자세한 내용은 STOP_PIPELINE Procedure를 참조하십시오.

파이프라인 삭제

DROP_PIPELINE 프로시저는 기존 파이프라인을 삭제합니다.

파이프라인이 시작된 경우 파이프라인을 삭제하려면 먼저 중지해야 합니다. 자세한 내용은 STOP_PIPELINE Procedure를 참조하십시오.

시작된 파이프라인을 삭제하려면 force 매개변수를 TRUE로 설정하여 실행 중인 작업을 종료하고 파이프라인을 즉시 삭제합니다.

  1. 파이프라인을 삭제합니다.
    BEGIN
      DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
          pipeline_name => 'EMPLOYEE_PIPELINE'
      );
    END;
    /
  2. 파이프라인이 삭제되었는지 확인합니다.
    SELECT pipeline_name, status from USER_CLOUD_PIPELINES
       WHERE pipeline_name = 'EMPLOYEE_PIPELINE';
    
    No rows selected

자세한 내용은 DROP_PIPELINE Procedure를 참조하십시오.

파이프라인 재설정

파이프라인 재설정 작업을 사용하여 초기 상태에 대한 파이프라인 레코드를 지웁니다.

주:

선택적으로 재설정 파이프라인을 사용하여 로드 파이프라인과 연관된 데이터베이스 테이블의 데이터를 비우거나 익스포트 파이프라인의 객체 저장소에서 파일을 제거할 수 있습니다. 일반적으로 이 옵션은 파이프라인 개발 중에 파이프라인을 테스트할 때 사용됩니다.

파이프라인 재설정은 다음과 같이 작동합니다.

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

    purge_dataTRUE로 설정된 경우 프로시저는 데이터베이스 테이블의 데이터를 잘라냅니다.

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

    purge_dataTRUE로 설정된 경우 프로시저는 location 속성으로 지정된 객체 저장소 위치에서 기존 파일을 삭제합니다.

파이프라인을 재설정하려면 다음과 같이 하십시오.

  1. 재설정할 파이프라인을 중지합니다.

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

  2. 파이프라인을 재설정합니다.
    BEGIN
         DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
            pipeline_name => 'EMPLOYEE_PIPELINE',
            purge_data => TRUE);
    END;
    /

    데이터베이스 테이블에서 데이터를 지우거나, 로드 파이프라인에 대해 데이터를 지우거나, 익스포트 파이프라인에 대해 객체 저장소에서 파일을 지우려는 경우에만 purge_data 매개변수를 TRUE 값으로 사용합니다. 일반적으로 이 옵션은 파이프라인 개발 중에 파이프라인을 테스트할 때 사용됩니다.

    자세한 내용은 RESET_PIPELINE Procedure를 참조하십시오.

파이프라인 모니터 및 문제 해결

생성된 모든 파이프라인은 DBMS_CLOUD_PIPELINE 뷰에 기록됩니다.

파이프라인 상태 정보 보기

USER_CLOUD_PIPELINES 또는 DBA_CLOUD_PIPELINES 뷰를 사용하여 파이프라인 상태를 확인하고 다른 파이프라인 정보를 가져옵니다. 예를 들어, pipeline_nameWHERE 절 술어가 있는 다음 SELECT 문은 MY_TREE_DATA가 로드 파이프라인이고 파이프라인이 시작되었음을 보여줍니다.

SELECT pipeline_name, pipeline_type, status FROM USER_CLOUD_PIPELINES
   WHERE pipeline_name = 'MY_TREE_DATA';


PIPELINE_NAME PIPELINE_TYPE STATUS  
------------- ------------- ------- 
MY_TREE_DATA  LOAD          STARTED

자세한 내용은 DBMS_CLOUD_PIPELINE Views를 참조하십시오.

파이프라인 속성 보기

USER_CLOUD_PIPELINE_ATTRIBUTES 또는 DBA_CLOUD_PIPELINE_ATTRIBUTES 뷰를 질의하여 파이프라인 속성을 모니터할 수 있습니다. 이러한 뷰를 질의하여 파이프라인 속성 정보를 확인합니다.

예:

SELECT pipeline_name, attribute_name, attribute_value FROM user_cloud_pipeline_attributes
     WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_NAME ATTRIBUTE_NAME  ATTRIBUTE_VALUE                                                                   
------------- --------------- --------------------------------------------------------------------------------- 
MY_TREE_DATA  credential_name DEF_CRED_OBJ_STORE                                                                
MY_TREE_DATA  format          {"type": "csv"}                                                                   
MY_TREE_DATA  interval        20                                                                                
MY_TREE_DATA  location        https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace/b/treetypes/o/ 
MY_TREE_DATA  priority        high                                                                              
MY_TREE_DATA  table_name      TREES

자세한 내용은 DBMS_CLOUD_PIPELINE Views를 참조하십시오.

파이프라인 내역 보기

USER_CLOUD_PIPELINE_HISTORYDBA_CLOUD_PIPELINE_HISTORY 뷰는 실행 중인 작업의 상태를 보여줍니다. 파이프라인 내역 뷰를 사용하면 파이프라인의 건전성을 모니터하고 실행 중인 파이프라인에서 실패를 감지할 수 있습니다.

예:

SELECT pipeline_id, pipeline_name, status, error_message  FROM user_cloud_pipeline_history      
     WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_ID PIPELINE_NAME STATUS    ERROR_MESSAGE 
----------- ------------- --------- ------------- 
          7  MY_TREE_DATA SUCCEEDED

자세한 내용은 DBMS_CLOUD_PIPELINE Views를 참조하십시오.

파이프라인 상태 테이블: 로드 파이프라인에 대한 추가 모니터링

파이프라인 상태 테이블에는 로드 파이프라인에 대한 각 파일 이름 및 해당 상태가 표시됩니다. DBA_CLOUD_PIPELINESUSER_CLOUD_PIPELINESSTATUS_TABLE 열은 상태 테이블 이름을 보여줍니다.

예를 들어, pipeline_nameWHERE 절 술어가 있는 다음 SELECT 문은 파이프라인에 대한 상태 테이블 이름을 보여줍니다.

SELECT pipeline_name, status_table FROM user_cloud_pipelines
   WHERE pipeline_name = 'MY_TREE_DATA';

PIPELINE_NAME STATUS_TABLE
------------- --------------------
MY_TREE_DATA  PIPELINE$9$41_STATUS

상태 테이블을 보고 다음을 포함한 파이프라인에 대한 정보를 확인합니다.

  • 관련 오류 번호 및 오류 메시지는 특정 파일에 대한 작업이 실패할 경우 상태 테이블에 기록됩니다.

  • 완료된 파이프라인 작업의 경우 보고된 START_TIMEEND_TIME를 사용하여 각 작업에 필요한 시간을 계산할 수 있습니다.

예를 들어, 다음은 두 파일에 대한 로드 작업이 실패하고 한 파일이 완료되었음을 보여줍니다.

SELECT id, name, status, error_code, error_message, sid FROM PIPELINE$9$41_STATUS;

ID NAME       STATUS    ERROR_CODE ERROR_MESSAGE                      SID 
-- ---------- --------- ---------- -------------------------------- ----- 
 1 trees1.txt FAILED         30653 ORA-30653: reject limit reached  18070 
 2 trees2.txt FAILED         30653 ORA-30653: reject limit reached  18070 
 3 trees3.txt COMPLETED                                             18070 

pipeline_type'LOAD'인 데이터 로드 파이프라인은 USER_LOAD_OPERATIONSDBA_LOAD_OPERATIONS에 표시된 ID를 예약합니다. 이러한 뷰의 ID 값은 USER_CLOUD_PIPELINESDBA_CLOUD_PIPELINES의 파이프라인 OPERATION_ID에 매핑됩니다.

로드 파이프라인에 대한 자세한 정보를 얻으려면 파이프라인의 OPERATION_ID를 질의합니다.

SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
     WHERE PIPELINE_NAME = 'MY_TREE_DATA';

PIPELINE_NAME OPERATION_ID 
------------- ------------ 
MY_TREE_DATA            41

그런 다음 USER_LOAD_OPERATIONS 또는 DBA_LOAD_OPERATIONSID 열에 WHERE 절 술어를 사용하여 질의합니다(OPERATION_ID 값 사용).

예:

SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
     WHERE ID = 41;

ID TYPE     LOGFILE_TABLE     BADFILE_TABLE     STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS

이 질의는 ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE(있는 경우) 및 STATUS_TABLE를 표시합니다. 추가 파이프라인 로드 정보는 이러한 테이블을 볼 수 있습니다.

파이프라인 상태 테이블 세부정보

데이터 유형 설명
ID NUMBER 파이프라인에 지정된 고유 번호입니다.
NAME VARCHAR2(4000) 파이프라인의 이름입니다.
BYTES NUMBER 바이트
CHECKSUM VARCHAR2(128) 체크섬
LAST_MODIFIED TIMESTAMP(6) WITH TIME ZONE 파이프라인에 대한 최종 수정 시간입니다.
STATUS VARCHAR2(30) STATUS 값은 다음 중 하나입니다.
  • COMPLETED: 파일 작업이 성공적으로 완료되었습니다.
  • FAILED: 파일 작업을 실패했습니다. 재시도를 두 번 시도할 수 있습니다.
  • PENDING: 파일 작업이 아직 시작되지 않았습니다.
  • RUNNING: 파일 작업이 현재 진행 중입니다.
  • SKIPPED: 파일 작업을 건너뛰었습니다.
ERROR_CODE NUMBER 오류 코드
ERROR_MESSAGE VARCHAR2(4000) 오류 메시지
START_TIME TIMESTAMP(6) WITH TIME ZONE 파이프라인의 시작 시간입니다.
END_TIME TIMESTAMP(6) WITH TIME ZONE 파이프라인의 종료 시간입니다.
SID NUMBER

SIDSERIAL# 세션은 파이프라인 로드 작업을 실행 중인 작업 세션을 나타냅니다.

SERIAL# NUMBER

SIDSERIAL# 세션은 파이프라인 로드 작업을 실행 중인 작업 세션을 나타냅니다.

ROWS_LOADED NUMBER 로드된 행 수.
OPERATION_ID NUMBER

나중에 사용하도록 예약되어 있습니다.

파이프라인 로그 파일 및 잘못된 파일 테이블

로드 파이프라인에 대한 로그 파일 및 잘못된 파일 이름을 가져오려면 파이프라인의 OPERATION_ID를 질의합니다. 예:

SELECT PIPELINE_NAME, OPERATION_ID FROM USER_CLOUD_PIPELINES
     WHERE PIPELINE_NAME = 'MY_TREE_DATA';

PIPELINE_NAME OPERATION_ID 
------------- ------------ 
MY_TREE_DATA            41

그런 다음 USER_LOAD_OPERATIONS 또는 DBA_LOAD_OPERATIONSID 열에 WHERE 절 술어를 사용하여 질의합니다(OPERATION_ID 값 사용).

예:

SELECT ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE, STATUS_TABLE FROM USER_LOAD_OPERATIONS
     WHERE ID = 41;

ID TYPE     LOGFILE_TABLE     BADFILE_TABLE     STATUS_TABLE
-- -------- ----------------- ----------------- --------------------
41 PIPELINE PIPELINE$9$41_LOG PIPELINE$9$41_BAD PIPELINE$9$41_STATUS

이 질의는 ID, TYPE, LOGFILE_TABLE, BADFILE_TABLE(있는 경우) 및 STATUS_TABLE를 표시합니다. 추가 파이프라인 로드 정보는 이러한 테이블을 볼 수 있습니다.

파이프라인 로그 파일 테이블을 확인하여 파이프라인 로드 작업의 전체 로그를 확인합니다.

예:

SELECT * FROM PIPELINE$9$41_LOG;

파이프라인 BAD 파일 테이블을 보고 오류가 있는 입력 형식 레코드에 대한 세부정보를 확인합니다. BAD 파일 테이블에는 로드 중 오류를 보고하는 행에 대한 정보가 표시됩니다. 로그 파일 테이블에 표시된 오류 및 파이프라인의 bad file 테이블에 표시된 행에 따라 파이프라인 format 속성 옵션을 수정하거나 로드 중인 파일의 데이터를 수정하여 오류를 수정할 수 있습니다.

예:

SELECT * FROM PIPELINE$9$41_BAD;

자세한 내용은 데이터 로드 모니터링 및 문제 해결을 참조하십시오.