파이프라인 생성 및 구성

하나 이상의 로드 또는 익스포트 파이프라인을 생성할 수 있습니다. 파이프라인을 생성할 때 매개변수를 사용하고 파이프라인 속성을 설정하여 파이프라인을 구성합니다.

파이프라인을 생성하고 구성하는 옵션은 다음과 같습니다.

데이터 로드를 위한 파이프라인 생성 및 구성

객체 저장소의 외부 파일에서 Autonomous Database의 테이블로 데이터를 로드하는 파이프라인을 생성할 수 있습니다.

로드 파이프라인은 객체 저장소에 배치된 데이터를 소비하여 Autonomous Database의 테이블로 로드합니다. 로드 파이프라인을 생성하면 파이프라인이 정기적으로 실행되어 객체 저장소에 배치된 데이터를 소비합니다. 새 데이터 파일이 도착하면 파이프라인이 새 데이터를 로드합니다. 또한 파이프라인을 사용하여 재개 및 재시도 기능이 있는 파일을 객체 저장소에서 데이터베이스의 테이블로 안정적으로 복사할 수 있습니다.

로드 파이프라인을 사용할 경우 파이프라인 패키지는 DBMS_CLOUD.COPY_DATA를 사용하여 데이터를 로드합니다.

Autonomous Database에서 기존 테이블을 사용하거나 데이터를 로드할 데이터베이스 테이블을 생성합니다. 예:

CREATE TABLE EMPLOYEE
            (name     VARCHAR2(128),
             age      NUMBER,
             salary   NUMBER);
  1. 객체 저장소에서 데이터를 로드할 파이프라인을 생성합니다.
    BEGIN
         DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
            pipeline_name => 'MY_PIPE1',
            pipeline_type => 'LOAD',
            description   => 'Load metrics from object store into a table'
      );
    END;
    /

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

  2. 로드 중인 파일이 포함된 객체 저장소에 액세스할 인증서 객체를 생성합니다.

    credential_name 속성을 사용하여 파이프라인 소스 위치에 대한 인증서를 지정합니다. 다음 단계에서 credential_name를 제공하지 않으면 credential_name 값이 NULL로 설정됩니다. location 속성이 퍼블릭 또는 사전 인증된 URL인 경우 기본 NULL 값을 사용할 수 있습니다.

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

  3. location, table_name, format 등의 필수 속성을 포함하여 파이프라인 속성을 설정합니다.
    BEGIN
         DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
           pipeline_name => 'MY_PIPE1',
           attributes    => JSON_OBJECT(
                'credential_name' VALUE 'OBJECT_STORE_CRED',
                'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/',
                'table_name' VALUE 'employee',
                'format' VALUE '{"type":"json", "columnpath":["$.NAME", "$.AGE", "$.SALARY"]}',
                'priority' VALUE 'HIGH',
                'interval' VALUE '20')
      );
    END;
    /

    로드 파이프라인을 실행하려면 다음 속성을 설정해야 합니다.

    • location: 객체 저장소의 소스 파일 위치를 지정합니다.

    • table_name: 데이터를 로드할 데이터베이스의 테이블을 지정합니다. 지정하는 location는 파이프라인당 하나의 table_name에 대한 것입니다.

    • format: 로드 중인 데이터의 형식을 설명합니다.

      자세한 내용은 DBMS_CLOUD Package Format Options을 참조하십시오.

    credential_name은 이전 단계에서 만든 자격 증명입니다.

    priority 값은 병렬로 로드되는 파일 수를 결정합니다. 우선 순위가 높은 파이프라인은 낮은 우선 순위의 실행에 비해 더 많은 데이터베이스 리소스를 소비하고 각 실행을 더 빠르게 완료합니다.

    interval 값은 파이프라인 작업의 연속 실행 간격(분)을 지정합니다. 기본값은 interval입니다.

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

    파이프라인을 생성한 후 파이프라인을 테스트하거나 파이프라인을 시작할 수 있습니다.

또는 JSON 형식을 설정하기 위해 다음 형식을 사용할 수 있습니다.

BEGIN
    DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
        pipeline_name   => 'MY_PIPE1',
        attribute_name  => 'format',
        attribute_value => JSON_OBJECT('type' value 'json', 'columnpath' value '["$.NAME", "$.AGE", "$.SALARY"]')
    );
END;
/

시간기록 열로 익스포트할 파이프라인 생성 및 구성

익스포트 파이프라인을 생성하여 시계열 데이터를 Autonomous Database에서 객체 저장소로 자동으로 익스포트할 수 있습니다.

이 익스포트 파이프라인 옵션을 사용하여 테이블 또는 SQL 질의와 파이프라인이 마지막 업로드 시간을 추적하는 데 사용하는 시간기록이 있는 열을 지정합니다. 익스포트 파이프라인을 사용하여 다른 애플리케이션에서 소비할 데이터를 공유하거나 데이터를 객체 저장소에 저장할 수 있습니다.

익스포트 파이프라인을 사용할 경우 파이프라인 패키지는 DBMS_CLOUD.EXPORT_DATA를 사용하여 데이터를 익스포트합니다.

익스포트 파이프라인은 Autonomous Database에서 객체 저장소로 데이터를 익스포트합니다. 익스포트 파이프라인을 생성하면 파이프라인이 정기적으로 실행되고 객체 저장소에 데이터가 배치됩니다.

  1. 데이터를 객체 저장소로 익스포트할 파이프라인을 생성합니다.
    BEGIN
         DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
            pipeline_name=>'EXP_PIPE1',
            pipeline_type=>'EXPORT',
            description=>'Export time series metrics to object store');
    END;
    /

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

  2. 데이터 파일을 익스포트할 대상 객체 저장소 위치에 액세스할 인증서 객체를 생성합니다.

    파이프라인 대상 위치에 대한 인증서를 credential_name 속성과 함께 지정합니다. 다음 단계에서 credential_name를 제공하지 않으면 credential_name 값이 NULL로 설정됩니다. location 속성이 퍼블릭 또는 사전 인증된 URL인 경우 기본 NULL 값을 사용할 수 있습니다.

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

  3. 익스포트 파이프라인 속성을 설정합니다.

    table_name 매개변수를 지정하면 테이블 행이 객체 저장소로 익스포트됩니다. query 매개변수를 지정하면 질의는 필요한 데이터만 객체 저장소로 익스포트되도록 SELECT 문을 지정합니다.

    • table_name 매개변수 사용:

      BEGIN
           DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
             pipeline_name => 'EXP_PIPE1',
             attributes    => JSON_OBJECT('credential_name' VALUE 'OBJECT_STORE_CRED',
                'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/',
                'table_name' VALUE 'metric_table',
                'key_column' VALUE 'metric_time',
                'format' VALUE '{"type": "json"}',
                'priority' VALUE 'MEDIUM',
                'interval' VALUE '20')
        );
      END;
      /
    • query 매개변수 사용:

      BEGIN
           DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
             pipeline_name => 'EXP_PIPE1',
             attributes    => JSON_OBJECT('credential_name' VALUE 'OBJECT_STORE_CRED',
                 'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/',
                 'query' VALUE 'SELECT * from metrics_table',
                 'key_column' VALUE 'metric_time',
                 'format' VALUE '{"type": "json"}',
                 'priority' VALUE 'MEDIUM',
                 'interval' VALUE '20')
        );
      END;
      /

    여기서 credential_name은 이전 단계에서 생성한 인증서입니다.

    익스포트 파이프라인을 실행하려면 다음 속성을 설정해야 합니다.

    • location: 대상 객체 저장소 위치를 지정합니다. 지정하는 location는 파이프라인당 하나의 table_name에 대한 것입니다.

    • table_name: 익스포트 중인 데이터가 포함된 데이터베이스의 테이블을 지정합니다. table_name 매개변수 또는 query 매개변수가 필요합니다.

    • query: 익스포트 중인 데이터를 제공하는 데이터베이스에서 실행할 질의를 지정합니다. table_name 매개변수 또는 query 매개변수가 필요합니다.

    • format: 익스포트 중인 데이터의 형식을 설명합니다.

      자세한 내용은 DBMS_CLOUD Package Format Options for EXPORT_DATA을 참조하십시오.

    priority 값은 데이터베이스에서 데이터를 인출하기 위한 병렬도를 결정합니다.

    interval 값은 파이프라인 작업의 연속 실행 간격(분)을 지정합니다. 기본값은 interval입니다.

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

    파이프라인을 생성한 후 파이프라인을 테스트하거나 파이프라인을 시작할 수 있습니다.

시간기록 없이 질의 결과를 익스포트할 파이프라인 생성 및 구성

익스포트 파이프라인을 생성하여 Autonomous Database에서 객체 저장소로 데이터를 자동으로 익스포트할 수 있습니다. 이 익스포트 파이프라인 옵션을 사용하여 객체 저장소로 데이터를 익스포트하기 위해 파이프라인이 주기적으로 실행되는 SQL 질의를 지정합니다. 이 익스포트 옵션을 사용하여 다른 애플리케이션이 데이터를 소비할 수 있도록 Autonomous Database에서 객체 저장소로 최신 데이터를 공유할 수 있습니다.

익스포트 파이프라인은 Autonomous Database에서 객체 저장소로 데이터를 익스포트합니다. 익스포트 파이프라인을 생성하면 파이프라인이 정기적으로 실행되고 객체 저장소에 데이터가 배치됩니다.

  1. 데이터를 객체 저장소로 익스포트할 파이프라인을 생성합니다.
    BEGIN
         DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
            pipeline_name=>'EXP_PIPE2',
            pipeline_type=>'EXPORT',
            description=>'Export query results to object store.');
    END;
    /

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

  2. 데이터 파일을 익스포트할 대상 객체 저장소 위치에 액세스할 인증서 객체를 생성합니다.

    파이프라인 대상 위치에 대한 인증서를 credential_name 속성과 함께 지정합니다. 다음 단계에서 credential_name를 제공하지 않으면 credential_name 값이 NULL로 설정됩니다. location 속성이 퍼블릭 또는 사전 인증된 URL인 경우 기본 NULL 값을 사용할 수 있습니다.

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

  3. 익스포트 파이프라인 속성을 설정합니다.
    BEGIN
         DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
           pipeline_name => 'EXP_PIPE2',
           attributes    => JSON_OBJECT(
              'credential_name' VALUE 'OBJECT_STORE_CRED',
              'location' VALUE 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/',
              'query' VALUE 'SELECT * FROM table_name',
              'format' VALUE '{"type": "json"}',
              'priority' VALUE 'MEDIUM',
              'interval' VALUE '20')
      );
    END;
    /

    여기서 credential_name은 이전 단계에서 생성한 인증서입니다.

    익스포트 파이프라인을 실행하려면 다음 속성을 설정해야 합니다.

    • location: 대상 객체 저장소 위치를 지정합니다.

    • query: 익스포트 중인 데이터를 제공하는 데이터베이스에서 실행할 질의를 지정합니다.

    • format: 익스포트 중인 데이터의 형식을 설명합니다.

      자세한 내용은 DBMS_CLOUD Package Format Options for EXPORT_DATA을 참조하십시오.

    priority 값은 데이터베이스에서 데이터를 인출하기 위한 병렬도를 결정합니다.

    interval 값은 파이프라인 작업의 연속 실행 간격(분)을 지정합니다. 기본값은 interval입니다.

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

    파이프라인을 생성한 후 파이프라인을 테스트하거나 파이프라인을 시작할 수 있습니다.

파이프 라인 테스트

일정이 잡힌 작업을 생성하지 않고 요청 시 파이프라인을 한 번 실행하려면 RUN_PIPELINE_ONCE를 사용합니다.

RUN_PIPELINE_ONCE는 파이프라인을 시작하기 전에 파이프라인을 테스트하는 데 유용합니다. 파이프라인을 한 번 실행하여 파이프라인을 테스트하고 예상대로 작동하는지 확인한 후 RESET_PIPELINE를 사용하여 파이프라인의 상태를 RUN_PIPELINE_ONCE를 실행하기 전 상태로 재설정합니다.

  1. 파이프라인 생성.

    자세한 내용은 데이터 로드에 대한 파이프라인 생성 및 구성을 참조하십시오.

  2. 파이프라인을 한 번 실행하여 파이프라인을 테스트합니다.
    BEGIN
        DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE(
            pipeline_name => 'MY_PIPE1'
    );
    END;
    /

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

  3. 필요한 검사를 수행하여 파이프라인이 예상대로 작동하는지 확인합니다.

    자세한 내용은 Monitor and Troubleshoot Pipelines을 참조하십시오.

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

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