파이프라인 생성 및 구성

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

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

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

객체 저장소 또는 디렉토리의 외부 파일에서 자율운영 AI 데이터베이스의 테이블로 데이터를 로드하는 파이프라인을 생성할 수 있습니다.

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

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

자율운영 AI 데이터베이스에서 기존 테이블을 사용하거나 데이터를 로드하는 데이터베이스 테이블을 생성합니다. 예:

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 등의 필수 속성을 포함하여 파이프라인 속성을 설정합니다.
    사례 1: 객체 저장소에서 데이터를 로드하기 위한 파이프라인을 생성합니다.
    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;
    /
    사례 2: 디렉토리 객체에서 데이터를 로드하는 파이프라인을 생성합니다.
    
    BEGIN
         DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
           pipeline_name => 'MY_PIPE1',
           pipeline_type => 'LOAD',
           attributes    => JSON_OBJECT(
                'location' VALUE 'MY_DIR:*.csv',
                'table_name' VALUE 'employee',
                'format' VALUE '{"type":"csv"}',
                '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 속성을 참조하십시오.

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

또는 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;
/

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

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

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

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

익스포트 파이프라인은 자율운영 AI 데이터베이스의 데이터를 객체 저장소로 익스포트합니다. 내보내기 파이프라인을 만들 때 파이프라인은 정기적으로 실행되며 오브젝트 저장소에 데이터를 배치합니다.

  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 속성을 참조하십시오.

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

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

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

익스포트 파이프라인은 자율운영 AI 데이터베이스의 데이터를 객체 저장소로 익스포트합니다. 내보내기 파이프라인을 만들 때 파이프라인은 정기적으로 실행되며 오브젝트 저장소에 데이터를 배치합니다.

  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를 참조하십시오.