OCI GoldenGate 데이터 변환 검색
OCI GoldenGate 데이터 복사 및 데이터 변형 배치를 함께 사용하여 두 자율운영 AI 데이터베이스 간에 데이터를 로드하고 변환하는 방법에 대해 알아봅니다.
시작하기 전에
이 빠른 시작을 성공적으로 완료하려면 다음이 필요합니다.
-
샘플 데이터가 로드되고 보완 로깅이 사용으로 설정된 소스 자율운영 AI 데이터베이스입니다.
참고 사항:
작업할 샘플 데이터가 필요한 경우 OCI GoldenGate 샘플 데이터를 다운로드할 수 있습니다.
-
자율운영 AI 데이터베이스의 데이터베이스 작업 SQL 툴을 사용하여 두 스크립트를 실행하여 사용자 스키마 및 테이블을 생성합니다.
-
SQL 툴을 사용하여 보완 로깅을 활성화합니다.
자세한 내용은 실습 1, 태스크 3: ATP 스키마 로드의 단계를 따릅니다.
-
-
소스 자율운영 AI 데이터베이스 인스턴스에서 GGADMIN 사용자 잠금 해제
-
자율운영 AI 데이터베이스 세부정보 페이지의 데이터베이스 작업 메뉴에서 데이터베이스 사용자를 선택합니다.
참고: 로그인할 인스턴스를 생성할 때 제공된 자율운영 AI 데이터베이스 관리자 인증서를 프롬프트가 표시되면 사용합니다.
-
GGADMIN 사용자를 찾은 다음 줄임표(점 3개) 메뉴에서 Edit를 선택합니다.
-
Edit User(사용자 편집) 패널에서 암호를 입력하고 암호를 확인한 다음 Account is Locked의 선택을 해제합니다.
-
변경 사항 적용을 선택합니다.
-
작업 1: 환경 설정
-
소스 OracleAutonomous AI Transaction Processing(ATP) 연결을 생성합니다.
-
SQL 툴을 사용하여 보완 로깅 활성화:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA -
SQL 도구에서 다음 질의를 실행하여 소스 데이터베이스의 모든 테이블에 대해
support_mode=FULL을 확인합니다.select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL';
작업 2: 통합 Extract 생성
통합 추출은 소스 데이터베이스에 대한 지속적인 변경사항을 캡처합니다.
-
배치 세부정보 페이지에서 콘솔 실행을 선택합니다.
-
필요한 경우 사용자 이름으로 oggadmin을 입력하고 배치를 생성할 때 사용한 암호를 입력한 다음 사인인을 선택합니다.
-
트랜잭션 데이터 및 체크포인트 테이블 추가:
-
탐색 메뉴를 열고 DB 접속을 선택합니다.
-
데이터베이스 SourceDB에 접속을 선택합니다.
-
탐색 메뉴에서 Trandata를 선택한 다음 Trandata 추가(더하기 아이콘)를 선택합니다.
-
스키마 이름에
SRC_OCIGGLL을 입력한 다음 제출을 선택합니다. -
확인하려면 검색 필드에
SRC_OCIGGLL을 입력하고 검색을 선택합니다. -
탐색 메뉴를 열고 DB 접속을 선택합니다.
-
데이터베이스 TargetDB에 접속을 선택합니다.
-
탐색 메뉴에서 체크포인트를 선택한 다음 체크포인트 추가(더하기 아이콘)를 선택합니다.
-
체크포인트 테이블에
"SRCMIRROR_OCIGGLL"."CHECKTABLE"을 입력한 다음 제출을 선택합니다.
-
-
주: 소스 테이블을 지정하는 데 사용할 수 있는 매개변수에 대한 자세한 내용은 추가 추출 매개변수 옵션을 참조하십시오.
[매개변수 추출] 페이지에서
EXTTRAIL <trail-name>아래에 다음 행을 추가합니다.-- Capture DDL operations for listed schema tables ddl include mapped -- Add step-by-step history of -- to the report file. Very useful when troubleshooting. ddloptions report -- Write capture stats per table to the report file daily. report at 00:01 -- Rollover the report file weekly. Useful when IE runs -- without being stopped/started for long periods of time to -- keep the report files from becoming too large. reportrollover at 00:01 on Sunday -- Report total operations captured, and operations per second -- every 10 minutes. reportcount every 10 minutes, rate -- Table list for capture table SRC_OCIGGLL.*; -
장기 실행 트랜잭션을 확인합니다. 소스 데이터베이스에서 다음 스크립트를 실행합니다.
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);query에서 행을 반환하면 트랜잭션의 SCN을 찾은 다음 트랜잭션을 커밋하거나 롤백해야 합니다.
작업 3: Oracle Data Pump를 사용하여 데이터 엑스포트(ExpDP)
Oracle Data Pump(ExpDP)를 사용하여 원본 데이터베이스의 데이터를 Oracle Object Store로 엑스포트합니다.
-
Oracle Object Store 버킷을 생성합니다.
Export 및 Import 스크립트에 사용할 네임스페이스와 버킷 이름을 기록해 둡니다.
-
인증 토큰을 생성한 다음 나중에 사용할 수 있도록 토큰 문자열을 복사하여 텍스트 편집기에 붙여 넣습니다.
-
소스 데이터베이스에 인증서를 생성하고
<user-name>및<token>를 이전 단계에서 생성한 Oracle Cloud 계정 사용자 이름 및 토큰 문자열로 바꿉니다.BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'ADB_OBJECTSTORE', username => '<user-name>', password => '<token>' ); END; -
소스 데이터베이스에서 다음 스크립트를 실행하여 데이터 익스포트 작업을 생성합니다. 객체 저장소 URI의
<region>,<namespace>및<bucket-name>를 적절히 바꿔야 합니다.SRC_OCIGGLL.dmp은 이 스크립트가 실행될 때 생성되는 파일입니다.DECLARE ind NUMBER; -- Loop index h1 NUMBER; -- Data Pump job handle percent_done NUMBER; -- Percentage of job complete job_state VARCHAR2(30); -- To keep track of job state le ku$_LogEntry; -- For WIP and error messages js ku$_JobStatus; -- The job status from get_status jd ku$_JobDesc; -- The job description from get_status sts ku$_Status; -- The status object returned by get_status BEGIN -- Create a (user-named) Data Pump job to do a schema export. h1 := DBMS_DATAPUMP.OPEN('EXPORT','SCHEMA',NULL,'SRC_OCIGGLL_EXPORT','LATEST'); -- Specify a single dump file for the job (using the handle just returned) -- and a directory object, which must already be defined and accessible -- to the user running this procedure. DBMS_DATAPUMP.ADD_FILE(h1,'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket-name>/o/SRC_OCIGGLL.dmp','ADB_OBJECTSTORE','100MB',DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE,1); -- A metadata filter is used to specify the schema that will be exported. DBMS_DATAPUMP.METADATA_FILTER(h1,'SCHEMA_EXPR','IN (''SRC_OCIGGLL'')'); -- Start the job. An exception will be generated if something is not set up properly. DBMS_DATAPUMP.START_JOB(h1); -- The export job should now be running. In the following loop, the job -- is monitored until it completes. In the meantime, progress information is displayed. percent_done := 0; job_state := 'UNDEFINED'; while (job_state != 'COMPLETED') and (job_state != 'STOPPED') loop dbms_datapump.get_status(h1,dbms_datapump.ku$_status_job_error + dbms_datapump.ku$_status_job_status + dbms_datapump.ku$_status_wip,-1,job_state,sts); js := sts.job_status; -- If the percentage done changed, display the new value. if js.percent_done != percent_done then dbms_output.put_line('*** Job percent done = ' \|\| to_char(js.percent_done)); percent_done := js.percent_done; end if; -- If any work-in-progress (WIP) or error messages were received for the job, display them. if (bitand(sts.mask,dbms_datapump.ku$_status_wip) != 0) then le := sts.wip; else if (bitand(sts.mask,dbms_datapump.ku$_status_job_error) != 0) then le := sts.error; else le := null; end if; end if; if le is not null then ind := le.FIRST; while ind is not null loop dbms_output.put_line(le(ind).LogText); ind := le.NEXT(ind); end loop; end if; end loop; -- Indicate that the job finished and detach from it. dbms_output.put_line('Job has completed'); dbms_output.put_line('Final job state = ' \|\| job_state); dbms_datapump.detach(h1); END;
작업 4: Oracle Data Pump(ImpDP)를 사용하여 대상 데이터베이스 인스턴스화
Oracle Data Pump(ImpDP)를 사용하여 소스 데이터베이스에서 익스포트된 SRC_OCIGGLL.dmp에서 대상 데이터베이스로 데이터를 임포트합니다.
-
이전 섹션의 동일한 정보를 사용하여 Oracle Object Store에 액세스할 수 있도록 Target Database에 인증서를 생성합니다.
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'ADB_OBJECTSTORE', username => '<user-name>', password => '<token>' ); END; -
대상 데이터베이스에서 다음 스크립트를 실행하여
SRC_OCIGGLL.dmp에서 데이터를 임포트합니다. 객체 저장소 URI의<region>,<namespace>및<bucket-name>를 적절하게 바꿔야 합니다.DECLARE ind NUMBER; -- Loop index h1 NUMBER; -- Data Pump job handle percent_done NUMBER; -- Percentage of job complete job_state VARCHAR2(30); -- To keep track of job state le ku$_LogEntry; -- For WIP and error messages js ku$_JobStatus; -- The job status from get_status jd ku$_JobDesc; -- The job description from get_status sts ku$_Status; -- The status object returned by get_status BEGIN -- Create a (user-named) Data Pump job to do a "full" import (everything -- in the dump file without filtering). h1 := DBMS_DATAPUMP.OPEN('IMPORT','FULL',NULL,'SRCMIRROR_OCIGGLL_IMPORT'); -- Specify the single dump file for the job (using the handle just returned) -- and directory object, which must already be defined and accessible -- to the user running this procedure. This is the dump file created by -- the export operation in the first example. DBMS_DATAPUMP.ADD_FILE(h1,'https://objectstorage.<region>.oraclecloud.com/n/<namespace>/b/<bucket-name>/o/SRC_OCIGGLL.dmp','ADB_OBJECTSTORE',null,DBMS_DATAPUMP.KU$_FILE_TYPE_URIDUMP_FILE); -- A metadata remap will map all schema objects from SRC_OCIGGLL to SRCMIRROR_OCIGGLL. DBMS_DATAPUMP.METADATA_REMAP(h1,'REMAP_SCHEMA','SRC_OCIGGLL','SRCMIRROR_OCIGGLL'); -- If a table already exists in the destination schema, skip it (leave -- the preexisting table alone). This is the default, but it does not hurt -- to specify it explicitly. DBMS_DATAPUMP.SET_PARAMETER(h1,'TABLE_EXISTS_ACTION','SKIP'); -- Start the job. An exception is returned if something is not set up properly. DBMS_DATAPUMP.START_JOB(h1); -- The import job should now be running. In the following loop, the job is -- monitored until it completes. In the meantime, progress information is -- displayed. Note: this is identical to the export example. percent_done := 0; job_state := 'UNDEFINED'; while (job_state != 'COMPLETED') and (job_state != 'STOPPED') loop dbms_datapump.get_status(h1, dbms_datapump.ku$_status_job_error + dbms_datapump.ku$_status_job_status + dbms_datapump.ku$_status_wip,-1,job_state,sts); js := sts.job_status; -- If the percentage done changed, display the new value. if js.percent_done != percent_done then dbms_output.put_line('*** Job percent done = ' \|\| to_char(js.percent_done)); percent_done := js.percent_done; end if; -- If any work-in-progress (WIP) or Error messages were received for the job, display them. if (bitand(sts.mask,dbms_datapump.ku$_status_wip) != 0) then le := sts.wip; else if (bitand(sts.mask,dbms_datapump.ku$_status_job_error) != 0) then le := sts.error; else le := null; end if; end if; if le is not null then ind := le.FIRST; while ind is not null loop dbms_output.put_line(le(ind).LogText); ind := le.NEXT(ind); end loop; end if; end loop; -- Indicate that the job finished and gracefully detach from it. dbms_output.put_line('Job has completed'); dbms_output.put_line('Final job state = ' \|\| job_state); dbms_datapump.detach(h1); END;
작업 5: 통합되지 않은 Replicat 추가 및 실행
-
Parameter File 화면에서
MAP *.*, TARGET *.*;을 다음 스크립트로 바꿉니다.-- Capture DDL operations for listed schema tables ddl include mapped -- Add step-by-step history of ddl operations captured -- to the report file. Very useful when troubleshooting. ddloptions report -- Write capture stats per table to the report file daily. report at 00:01 -- Rollover the report file weekly. Useful when PR runs -- without being stopped/started for long periods of time to -- keep the report files from becoming too large. reportrollover at 00:01 on Sunday -- Report total operations captured, and operations per second -- every 10 minutes. reportcount every 10 minutes, rate -- Table map list for apply DBOPTIONS ENABLE_INSTANTIATION_FILTERING; MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;주:
DBOPTIONS ENABLE_INSTANTIATION_FILTERING는 Oracle Data Pump를 사용하여 임포트된 테이블에 대해 CSN 필터링을 사용으로 설정합니다. 자세한 내용은 DBOPTIONS Reference를 참조하십시오. -
원본 데이터베이스에 삽입 수행:
-
Oracle Cloud 콘솔로 돌아가서 탐색 메뉴를 사용하여 Oracle AI Database, Autonomous AI Transaction Processing, SourceDB 순으로 돌아갑니다.
-
SourceDB 세부 정보 페이지에서 데이터베이스 작업을 선택한 다음 SQL을 선택합니다.
-
다음 삽입을 입력한 다음 스크립트 실행을 선택합니다.
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002); -
OCI GoldenGate 배치 콘솔에서 이름 추출(UAEXT)을 선택한 다음 통계를 선택합니다. SRC_OCIGGLL.SRC_CITY가 10개의 삽입과 함께 나열되는지 확인합니다.
-
Overview 화면으로 돌아가서 Replicat name (REP)을 선택한 다음 Statistics를 선택합니다. 10개의 삽입과 함께 SRCMIRROR_OCIGGLL.SRC_CITY가 나열되는지 확인합니다.
-
작업 6: 데이터 생성 리소스 변환
-
참고: 예를 들어 미국 동부(애슈번)의 자율운영 AI 데이터베이스의 경우 다음 값을 사용합니다.
-
호스트에
adb.us-ashburn-1.oraclecloud.com:1522를 입력합니다. -
서브넷의 경우 드롭다운에서 배포와 동일한 서브넷을 선택합니다.
-
-
ADW(자율운영 AI 레이크하우스) 인스턴스의 SRCMIRROR_OCIGGLL에 TRG_CUSTOMER를 생성합니다.
-
Oracle Cloud 콘솔에서 탐색 메뉴를 열고 Oracle AI Database로 이동한 다음 자율운영 AI 레이크하우스를 선택합니다.
-
자율운영 데이터베이스 페이지의 ADW 인스턴스에서 선택합니다.
-
ADW 자율운영 AI 데이터베이스 세부정보 페이지의 드롭다운에서 데이터베이스 작업을 선택한 다음 SQL을 선택합니다. Database actions(데이터베이스 작업) 메뉴를 로드하는 데 시간이 너무 오래 걸리는 경우 Database actions를 직접 선택한 다음 Database actions(데이터베이스 작업) 페이지에서 SQL을 선택할 수 있습니다.
-
워크시트에 다음을 입력한 다음 명세서 실행을 선택합니다.
create table SRCMIRROR_OCIGGLL.TRG_CUSTOMER ( CUST_ID NUMBER(10,0) not null, DEAR VARCHAR2(4 BYTE), CUST_NAME VARCHAR2(50 BYTE), ADDRESS VARCHAR2(100 BYTE), CITY_ID NUMBER(10,0), PHONE VARCHAR2(50 BYTE), AGE NUMBER(3,0), AGE_RANGE VARCHAR2(50 BYTE), SALES_PERS VARCHAR2(50 BYTE), CRE_DATE DATE, UPD_DATE DATE, constraint PK_TRG_CUSTOMER primary key (CUST_ID) );
-
-
Data Transforms 배치 콘솔을 실행합니다.
-
Deployments 페이지로 다시 이동한 다음 Task 6에서 생성한 배치를 선택합니다.
-
[배치 세부정보] 페이지에서 콘솔 실행을 선택합니다.
-
Data Transforms 배포 콘솔에 로그인합니다.
-
-
ADW 연결 생성:
-
탐색 메뉴를 열고 연결, 연결 생성 순으로 선택합니다.
-
유형 선택 페이지의 데이터베이스에서 Oracle을 선택한 다음 다음을 선택합니다.
-
접속 세부정보 페이지에서 다음과 같이 폼 필드에 정보를 입력한 후 생성을 선택합니다.
-
Name에 ADW_IAD를 입력합니다.
-
인증서 파일 사용을 선택합니다.
-
전자 지갑 파일의 경우 (ADW) 전자 지갑 파일을 업로드합니다.
주: ADW 전자 지갑 파일을 다운로드하려면 ADW 세부정보 페이지에서 데이터베이스 접속을 선택합니다.
-
서비스 드롭다운에서 <name>_low를 선택합니다.
-
사용자에 대해 ADMIN을 입력합니다.
-
암호에 ADW 암호를 입력합니다.
-
-
-
데이터 개체 임포트:
-
탐색 메뉴를 열고 데이터 엔티티를 선택한 다음 데이터 엔티티 임포트를 선택합니다.
-
연결의 경우 드롭다운에서 ADW_IAD를 선택합니다.
-
스키마의 경우 드롭다운에서 SRCMIRROR_OCIGGLL을 선택합니다.
-
시작을 선택합니다.
-
-
프로젝트 생성:
-
탐색 메뉴를 열고 프로젝트를 선택합니다.
-
프로젝트 페이지에서 프로젝트 생성을 선택합니다.
-
[프로젝트 생성] 대화상자의 [이름]에 데모 파이프라인을 입력하고 생성을 선택합니다.
-
작업 7: 워크플로우 생성 및 실행
-
데이터 흐름 생성:
-
프로젝트 이름을 선택합니다.
-
[프로젝트 세부정보] 페이지의 [리소스]에서 데이터 플로우를 선택한 다음 데이터 플로우 생성을 선택합니다.
-
[데이터 플로우 생성] 대화상자의 [이름]에 TRG_CUSTOMER 로드를 입력하고 선택적으로 설명을 입력합니다. 생성을 선택합니다. 디자인 캔버스가 열립니다.
-
[스키마 추가] 대화상자에서 다음과 같이 양식 필드에 정보를 입력한 다음 확인을 선택합니다.
-
연결의 경우 드롭다운에서 ADW_IAD를 선택합니다.
-
스키마의 경우 드롭다운에서 SRCMIRROR_OCIGGLL을 선택합니다.
-
-
다음 데이터 엔티티 및 구성 요소를 설계 캔버스로 끌어옵니다.
-
[데이터 엔티티] 패널에서 SRCMIRROR_OCIGGLL 스키마를 확장합니다. SRC_AGE_GROUP 데이터 엔티티를 디자인 캔버스로 끌어옵니다.
-
[데이터 엔티티] 패널에서 SRCMIRROR_OCIGGLL 스키마를 확장합니다. SRC_SALES_PERSON 데이터 엔티티를 디자인 캔버스로 끌어옵니다.
-
데이터 변환 도구 모음에서 룩업 구성요소를 디자인 캔버스로 끌어옵니다.
-
데이터 변환 도구 모음에서 조인 구성요소를 디자인 캔버스로 끌어옵니다.
-
[데이터 엔티티] 패널의 SRCMIRROR_OCIGGLL에서 SRC_CUSTOMER 데이터 엔티티를 디자인 캔버스로 끌어옵니다.
-
-
다음 데이터 엔티티를 룩업 구성요소에 연결합니다.
-
SRC_AGE_GROUP 커넥터 아이콘에서 선택하고 아이콘을 룩업 구성요소로 끌어옵니다.
-
SRC_CUSTOMER 커넥터 아이콘에서 선택하고 아이콘을 룩업 구성요소로 끌어옵니다.
-
-
디자인 캔버스에서 룩업을 선택하여 [검색] 패널을 엽니다. [검색] 패널에서 속성 탭으로 전환한 후 다음 질의를 검색 조건에 붙여넣습니다.
SRC_CUSTOMER.AGE between SRC_AGE_GROUP.AGE_MIN and SRC_AGE_GROUP.AGE_MAX -
다음 구성 요소를 Join 구성 요소에 연결합니다.
-
SRC_SALES_PERSON 커넥터 아이콘에서 선택하고 아이콘을 조인 구성요소로 끌어옵니다.
-
룩업 커넥터 아이콘에서 선택하고 아이콘을 조인 구성요소로 끌어옵니다.
-
-
디자인 캔버스에서 조인을 선택하여 조인 패널을 엽니다. [조인] 패널에서 속성 탭으로 전환한 후 다음 질의를 조인 조건에 붙여넣습니다.
SRC_CUSTOMER.SALES_PERS_ID=SRC_SALES_PERSON.SALES_PERS_ID -
다음 데이터 엔티티 및 구성 요소를 설계 캔버스로 끌어옵니다.
-
[데이터 엔티티] 패널의 SRCMIRROR_OCIGGLL에서 TRG_CUSTOMER 데이터 엔티티를 디자인 캔버스로 끌어옵니다.
-
조인 커넥터 아이콘에서 선택하고 아이콘을 TRG_CUSTOMER 데이터 엔티티로 끕니다.
-
디자인 캔버스에서 TRG_CUSTOMER를 선택하고 데이터 엔티티를 확장합니다.
-
-
속성 탭에서 CUST_ID에 대해 키를 사용으로 설정하고 CRE_DATE에 대해 업데이트를 사용 안함으로 설정하고 UPD_DATE에 대해 삽입을 사용 안함으로 설정합니다.
-
열 매핑 탭에서 이름이 표현식과 일치하는지 확인합니다.
-
고객 ID
SRC_CUSTOMER.CUSTID -
친애하는
CASE WHEN SRC_CUSTOMER.DEAR = 0 THEN 'Mr' WHEN SRC_CUSTOMER.DEAR = 1 THEN 'Mrs' ELSE 'Ms' END -
고객명(_N)
SRC_CUSTOMER.FIRST_NAME \|\| ' ' \|\| UPPER(SRC_CUSTOMER.LAST_NAME) -
영업 사원
SRC_SALES_PERSON.FIRST_NAME \|\| ' ' \|\|UPPER(SRC_SALES_PERSON.LAST_NAME) -
생성 일자(_D)
SYSDATE -
갱신 일자
SYSDATE -
다른 매핑을 있는 그대로 사용합니다.
-
-
옵션 탭의 모드에 대해 드롭다운에서 증분 업데이트를 선택합니다.
-
TRG_CUSTOMER를 축소합니다.
-
데이터 플로우 저장을 선택합니다.
-
-
워크플로우 생성:
-
프로젝트 이름을 선택하고 워크플로우를 선택한 다음 워크플로우 생성을 선택합니다.
-
이름으로 데이터 웨어하우스 로드 조정을 입력합니다. 생성을 선택합니다.
-
디자인 캔버스에서 SQL 아이콘을 끌어옵니다.
-
편집기에서 SQL 단계를 두 번 선택하여 단계 속성 페이지를 엽니다.
-
일반 탭의 이름에 데이터 정리를 입력합니다.
-
속성 탭을 선택하고 접속에 대해 드롭다운에서 ADW_IAD를 선택합니다.
-
SQL의 경우 다음 query를 복사합니다.
delete from SRCMIRROR_OCIGGLL.TRG_CUSTOMER where CITY_ID > 110 -
SQL을 축소합니다.
-
데이터 플로우에서 TRG_CUSTOMER 데이터 플로우를 디자인 캔버스로 끌어옵니다.
-
데이터 정리 SQL 워크플로우 라인에서 선택하고 확인(녹색 화살표) 아이콘을 TRG_CUSTOMER 데이터 플로우로 끌어옵니다.
-
워크플로우 저장을 선택한 다음 워크플로우 시작을 선택합니다.
-