날짜 또는 시간 기록 열에 대한 참조 없이 데이터를 선택하기 위한 질의를 사용하여 테이블 데이터를 객체 저장소로 익스포트합니다(파이프라인이 각 스케줄러 실행에 대해 질의가 선택하는 모든 데이터를 익스포트하도록 함). 시간 기록 없이 질의 결과를 익스포트할 파이프라인 생성 및 구성을 참조하십시오.
데이터 로드를 위한 파이프라인 생성 및 구성
객체 저장소의 외부 파일에서 Autonomous Database의 테이블로 데이터를 로드하는 파이프라인을 생성할 수 있습니다.
로드 파이프라인은 객체 저장소에 배치된 데이터를 소비하여 Autonomous Database의 테이블로 로드합니다. 로드 파이프라인을 생성하면 파이프라인이 정기적으로 실행되어 객체 저장소에 배치된 데이터를 소비합니다. 새 데이터 파일이 도착하면 파이프라인이 새 데이터를 로드합니다. 또한 파이프라인을 사용하여 재개 및 재시도 기능이 있는 파일을 객체 저장소에서 데이터베이스의 테이블로 안정적으로 복사할 수 있습니다.
로드 파이프라인을 사용할 경우 파이프라인 패키지는 DBMS_CLOUD.COPY_DATA를 사용하여 데이터를 로드합니다.
Autonomous Database에서 기존 테이블을 사용하거나 데이터를 로드할 데이터베이스 테이블을 생성합니다. 예:
CREATE TABLE EMPLOYEE
(name VARCHAR2(128),
age NUMBER,
salary NUMBER);
객체 저장소에서 데이터를 로드할 파이프라인을 생성합니다.
BEGIN
DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
pipeline_name => 'MY_PIPE1',
pipeline_type => 'LOAD',
description => 'Load metrics from object store into a table'
);
END;
/
credential_name 속성을 사용하여 파이프라인 소스 위치에 대한 인증서를 지정합니다. 다음 단계에서 credential_name를 제공하지 않으면 credential_name 값이 NULL로 설정됩니다. location 속성이 퍼블릭 또는 사전 인증된 URL인 경우 기본 NULL 값을 사용할 수 있습니다.
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에 대한 것입니다.
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에서 객체 저장소로 데이터를 익스포트합니다. 익스포트 파이프라인을 생성하면 파이프라인이 정기적으로 실행되고 객체 저장소에 데이터가 배치됩니다.
데이터를 객체 저장소로 익스포트할 파이프라인을 생성합니다.
BEGIN
DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
pipeline_name=>'EXP_PIPE1',
pipeline_type=>'EXPORT',
description=>'Export time series metrics to object store');
END;
/
파이프라인 대상 위치에 대한 인증서를 credential_name 속성과 함께 지정합니다. 다음 단계에서 credential_name를 제공하지 않으면 credential_name 값이 NULL로 설정됩니다. location 속성이 퍼블릭 또는 사전 인증된 URL인 경우 기본 NULL 값을 사용할 수 있습니다.
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 매개변수가 필요합니다.
익스포트 파이프라인을 생성하여 Autonomous Database에서 객체 저장소로 데이터를 자동으로 익스포트할 수 있습니다. 이 익스포트 파이프라인 옵션을 사용하여 객체 저장소로 데이터를 익스포트하기 위해 파이프라인이 주기적으로 실행되는 SQL 질의를 지정합니다. 이 익스포트 옵션을 사용하여 다른 애플리케이션이 데이터를 소비할 수 있도록 Autonomous Database에서 객체 저장소로 최신 데이터를 공유할 수 있습니다.
익스포트 파이프라인은 Autonomous Database에서 객체 저장소로 데이터를 익스포트합니다. 익스포트 파이프라인을 생성하면 파이프라인이 정기적으로 실행되고 객체 저장소에 데이터가 배치됩니다.
데이터를 객체 저장소로 익스포트할 파이프라인을 생성합니다.
BEGIN
DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
pipeline_name=>'EXP_PIPE2',
pipeline_type=>'EXPORT',
description=>'Export query results to object store.');
END;
/
파이프라인 대상 위치에 대한 인증서를 credential_name 속성과 함께 지정합니다. 다음 단계에서 credential_name를 제공하지 않으면 credential_name 값이 NULL로 설정됩니다. location 속성이 퍼블릭 또는 사전 인증된 URL인 경우 기본 NULL 값을 사용할 수 있습니다.
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;
/
일정이 잡힌 작업을 생성하지 않고 요청 시 파이프라인을 한 번 실행하려면 RUN_PIPELINE_ONCE를 사용합니다.
RUN_PIPELINE_ONCE는 파이프라인을 시작하기 전에 파이프라인을 테스트하는 데 유용합니다. 파이프라인을 한 번 실행하여 파이프라인을 테스트하고 예상대로 작동하는지 확인한 후 RESET_PIPELINE를 사용하여 파이프라인의 상태를 RUN_PIPELINE_ONCE를 실행하기 전 상태로 재설정합니다.