파이프라인 생성 및 구성

하나 이상의 하중을 작성하거나 파이프라인을 내보낼 수 있습니다. 파이프라인을 생성할 때 매개변수를 사용하고 파이프라인 속성을 설정하여 파이프라인을 구성합니다.

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

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

객체 저장소 또는 디렉토리의 외부 파일에서 자율운영 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 프로시저를 참조하십시오.

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

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

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

  3. 필수 속성인 location, table_nameformat를 포함하여 파이프라인 속성을 설정합니다.

    사례 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는 15분입니다.

    파이프라인 속성에 대한 자세한 내용은 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 프로시저를 참조하십시오.

  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: 익스포트할 데이터의 형식을 설명합니다.

      자세한 내용은 EXPORT_DATA용 DBMS_CLOUD 패키지 형식 옵션을 참조하십시오.

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

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

    파이프라인 속성에 대한 자세한 내용은 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 프로시저를 참조하십시오.

  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: 익스포트할 데이터의 형식을 설명합니다.

      자세한 내용은 EXPORT_DATA용 DBMS_CLOUD 패키지 형식 옵션을 참조하십시오.

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

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

    파이프라인 속성에 대한 자세한 내용은 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. 필요한 검사를 수행하여 파이프라인이 예상대로 작동하는지 확인합니다.

    자세한 내용은 파이프라인 모니터링 및 문제 해결을 참조하십시오.

  4. 파이프라인을 재설정합니다.

     BEGIN
        DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
          pipeline_name => 'MY_PIPE1',
          purge_data => TRUE
     );
     END;
     /
    

    자세한 내용은 RESET_PIPELINE 프로시저를 참조하십시오.