참고:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 완료하려면 이 값을 클라우드 환경에 해당하는 값으로 대체하십시오.
다양한 대상에 Oracle GoldenGate 및 Oracle GoldenGate for Big Data를 사용하여 데이터 스트리밍
소개
Oracle GoldenGate는 데이터 엔지니어가 하나 이상의 데이터 관리 시스템에서 Oracle Cloud 데이터베이스로 대규모 데이터를 실시간으로 이동할 수 있도록 지원하는 완전 관리형 서비스입니다. 컴퓨팅 환경을 할당하거나 관리할 필요 없이 단일 인터페이스에서 데이터 복제 작업을 설계, 실행, 조정 및 모니터링할 수 있습니다.
Oracle GoldenGate for Big Data는 소스 시스템의 성능에 영향을 주지 않고 트랜잭션 데이터를 빅데이터 및 클라우드 시스템으로 실시간으로 스트리밍합니다. Apache Hadoop, Apache HBase, Apache Hive, Confluent Kafka, NoSQL Databases, Elasticsearch, JDBC, Oracle Cloud, Amazon Web Services, Microsoft Azure Cloud, Google Cloud Platform, Data Warehouses 등 가장 널리 사용되는 빅데이터 솔루션으로 실시간 데이터 전달을 간소화하여 통찰력과 시기적절한 조치를 지원합니다.
Oracle Cloud Infrastructure(OCI) Streaming 서비스는 대용량 데이터 스트림을 실시간으로 입수하고 사용할 수 있는 확장 가능하며 내구성 있는 전담 관리 솔루션을 제공합니다. 게시-구독 메시징 모델에서 데이터가 연속적이고 순차적으로 생성되고 처리되는 모든 사용 사례에 OCI Streaming을 사용합니다.
이 사용지침서에서는 Oracle Autonomous Database에서 서로 다른 두 대상, 즉 Oracle Autonomous Database 및 Oracle Streams 항목으로 데이터를 스트리밍하는 방법을 배웁니다.
목표
-
Oracle 자율운영 데이터베이스 2개 설정
-
이 시나리오 예에서 sourceDB에는 두 개의 테이블 Banks 및 Operacoes가 있습니다. 여기서 데이터를 두 개의 다른 대상으로 복제해야 합니다.
-
뱅크 테이블이 targetDB이라는 대상 Oracle Autonomous Database로 복제됩니다.
-
Operacoes 테이블이 거의 실시간 스트림을 통해 OCI Streaming(kafka) 주제로 복제됩니다.
-
-
소스에서 대상 데이터베이스로 데이터를 복제하도록 Oracle GoldenGate 설정
-
소스 데이터베이스에서 OCI(Oracle Cloud Infrastructure) 스트리밍(Kafka 호환) 대상 항목으로 테이블 DML 게시
구조
중요: 이 샘플 구조는 학습 목적으로만 사용되며, 단순하게 유지하기 위해 PUBLIC 서브넷을 사용합니다. 즉, 운용 환경이나 실제 데이터 처리에 사용해서는 안 됩니다.
운용 환경의 경우 PRIVATE 서브넷을 사용해야 하며 여기에 설명된 모든 보안 모범 사례를 적용해야 합니다(Oracle Security 모범 사례).
필요 조건
- Oracle Cloud 계정 - Oracle Cloud Infrastructure Free Tier 시작하기
- 두 개의 서브넷(공용 및 전용)이 있는 기본 VCN(가상 클라우드 네트워크)
이 자습서에 따라 새로운 VCN QuickStart 네트워킹을 생성할 수 있습니다. - Oracle Database의 기본 개념
- Kafka Streaming의 기본 개념
작업 1: 새 구획 생성
-
Oracle Cloud 계정에 로그인하고 왼쪽 상단 탐색 메뉴를 누르고 ID 및 보안을 선택한 다음 구획을 누릅니다.
작업 2: sourceDB이라는 새 Oracle Autonomous Database 생성
-
왼쪽 상단 탐색 메뉴를 누르고 Oracle Database를 선택한 다음 Autonomous Database를 누릅니다.
-
이전 단계에서 생성한 구획 스트리밍을 선택하고 Autonomous Database 생성을 누릅니다.
-
다음 이미지와 같이 정보를 입력합니다.
주: 생성한 ADMIN 비밀번호를 기록해 두십시오.
작업 3: targetDB이라는 새 Oracle Autonomous Database 생성
-
왼쪽 상단 탐색 메뉴를 누르고 Oracle Database를 선택한 다음 Autonomous Database를 누릅니다.
-
이전 단계 스트리밍에서 생성된 구획을 선택하고 Autonomous Database 생성을 누릅니다.
-
다음 이미지와 같이 정보를 입력합니다.
주: 생성한 ADMIN 비밀번호를 기록해 두십시오.
작업 4: sourceDB에 대한 새 스키마 및 설정을 만듭니다.
-
sourceDB 홈 페이지로 이동하고 Database Actions를 눌러 데이터베이스에서 SQL 명령을 실행하고 데이터를 로드합니다.
-
findata_schema.sql 파일을 다운로드하고 내용을 SQL 실행 window에 복사하여 SCRIPT로 실행합니다.
참고: FINDATA 사용자에 대한 비밀번호를 설정했는지 확인하고 이 자습서의 다음 단계를 참고하십시오.
-
enable_gg.sql 파일을 다운로드하고 내용을 SQL 실행 window에 복사하여 SCRIPT로 실행합니다.
참고: GGADMIN 사용자에 대한 비밀번호를 설정했는지 확인하고 이 자습서의 다음 단계를 참고하십시오.
작업 5: banks_export.sql
파일에서 sourceDB로 데이터 로드
-
sourceDB 홈 페이지로 이동하고 Database Actions를 눌러 데이터베이스에서 SQL 명령을 실행하고 데이터를 로드합니다.
-
banks_export.sql 파일을 다운로드하고 내용을 SQL 실행 window에 복사하여 SCRIPT로 실행합니다.
-
테이블에서 간단한 COUNT를 실행하고 삽입된 행 수를 확인합니다.
작업 6: targetDB에 대한 새 스키마를 만들고 데이터를 로드합니다.
-
"targetDB"에 대해 작업 4와 작업 5를 반복합니다.
-
FINDATA 테이블을 생성하고 GG를 활성화하고 BANKS 테이블의 데이터를 sourceDB에서와 같이 대상 데이터베이스로 로드하되 이제 targetDB에 연결했습니다.
작업 7: sourceDB에 OPERACOES라는 트랜잭션 테이블을 생성합니다.
-
sourceDB에만
FINDATA.OPERACOES
라는 새 테이블을 만듭니다. 이 테이블은 Oracle GoldenGate for Big Data가 OCI 스트리밍 토픽에서 캡처 및 게시할 소스 데이터입니다. -
sourceDB 홈 페이지로 이동하고 Database Actions를 눌러 데이터베이스에서 SQL 명령을 실행하고 데이터를 로드합니다.
-
operacoes_table.sql 파일을 다운로드하고 내용을 SQL 실행 window에 복사하여 SCRIPT로 실행합니다.
Oracle GoldenGate에서 이벤트를 시작할 무작위 데이터를 수신할 빈 테이블입니다.
작업 8: OCI 스트리밍 풀 생성
-
왼쪽 상단 탐색 메뉴를 누르고 분석 및 AI를 선택한 다음 스트리밍을 누르고 스트리밍 풀을 선택합니다.
-
스트림 풀 생성을 누르고 다음 정보를 입력합니다.
-
생성을 누릅니다.
-
Kafka Connection Settings를 누르고 연결 문자열과 관련된 정보를 기록해 둡니다.
작업 9: OCI 스트리밍 풀에 액세스하기 위한 AUTH TOKEN 생성
OCI IAM(Oracle Cloud Infrastructure Identity and Access Management)에서 사용자와 연관된 인증 토큰을 사용하여 Oracle Cloud의 OCI Streaming(Kafka API) 및 기타 리소스에 액세스할 수 있습니다. Kafka 연결 설정에서 SASL 연결 문자열은 이전 작업에 설명된 대로 암호라는 매개변수와 AUTH_TOKEN 값을 가집니다. OCI 스트리밍에 대한 액세스를 사용으로 설정하려면 OCI 콘솔로 이동하여 AUTH TOKEN을 생성하십시오.
-
왼쪽 상단 탐색 메뉴를 누르고 ID 및 보안을 선택한 다음 ID, 도메인, 기본 도메인, 사용자를 선택합니다.
-
이전 리소스(예: Oracle Autonomous Database 및 OCI Stream Pool) 생성에 사용한 것과 동일한 사용자를 선택합니다.
주: AUTH TOKEN을 적어 두면 다음 단계에 필요합니다.
작업 10: Oracle GoldenGate 접속 생성
소스 및 대상 데이터베이스에 접속하려면 Oracle GoldenGate에 적절한 접속 설정이 필요합니다.
-
왼쪽 상단 탐색 메뉴를 누르고 Oracle Database를 선택한 다음 GoldenGate을 누릅니다.
-
왼쪽 메뉴에서 연결 옵션을 선택하고 연결 생성을 누릅니다.
-
sourceDB에 대한 연결을 만듭니다.
-
프로세스를 반복하고 targetDB에 대한 연결을 만듭니다.
-
OCI 스트리밍 풀 DefaultPool에 대한 접속을 생성합니다.
이 시점에서는 다음 연결이 있어야 합니다.
작업 11: Oracle GoldenGate 배치 생성 - 유형: ORACLE
-
왼쪽 상단 탐색 메뉴를 누르고 Oracle Database를 선택한 다음 GoldenGate을 누릅니다.
-
왼쪽 메뉴에서 배치 옵션을 선택하고 배치 생성을 누릅니다.
주: oggadmin 암호를 저장해야 합니다.
작업 12: Oracle GoldenGate 배치 생성 - 유형: BIGDATA
-
왼쪽 상단 탐색 메뉴를 누르고 Oracle Database를 선택한 다음 GoldenGate을 누릅니다.
-
왼쪽 메뉴에서 배치 옵션을 선택하고 배치 생성을 누릅니다.
-
배포가 생성되고 활성된 후 다음 단계를 진행합니다.
작업 13: Oracle GoldenGate 배치 간 접속 생성
Oracle GoldenGate가 Oracle GoldenGate for Big Data와 통신하려면 연결을 생성해야 합니다.
-
왼쪽 상단 탐색 메뉴를 누르고 Oracle Database를 선택한 다음 GoldenGate을 누릅니다.
-
왼쪽 메뉴에서 연결 옵션을 선택하고 연결 생성을 누릅니다.
연결은 다음과 같아야 합니다.
작업 14: Oracle GoldenGate 배치에 접속 추가 - GGForOracle
-
GGForOracle 배치를 선택하고 왼쪽 메뉴에서 Assigned connections(지정된 연결)를 누른 다음 Assign connection(연결 지정)을 누릅니다.
-
sourceDB에 대한 연결을 추가합니다.
-
targetDB에 대한 연결을 추가합니다.
-
GGOracletoGGBigData에 대한 연결을 추가합니다.
GGForOracle 배치에는 다음 연결이 있어야 합니다.
작업 15: Oracle GoldenGate 배치에 접속 추가 - GGforBigData
-
GGforBigData 배치를 선택하고 왼쪽 메뉴에서 Assigned connections(지정된 연결)를 누른 다음 Assign connection(연결 지정)을 누릅니다.
GGforBigData 배치에는 다음 연결이 있어야 합니다.
작업 16: GGforOracle용 Oracle GoldenGate 설정
-
GGForOracle 배치를 선택하고 콘솔 실행을 누릅니다.
-
oggadmin/yourpassword(배포 생성 중 만든 암호) 자격 증명을 입력합니다.
-
탐색 메뉴를 누르고 구성을 선택한 다음 +를 눌러 새 인증서를 추가합니다.
-
GGforBigData 배치에 대한 자격 증명을 추가합니다.
주: 배치 생성 중 설정한 oggadmin을 사용하십시오.
-
눌러서 sourceDB에 연결한 다음 TRANDATA에서 +를 눌러 복제에 필요한 테이블을 추가합니다.
-
FINDATA.BANKS
테이블에 대한 새 레코드를 추가하고 제출을 누릅니다. -
FINDATA.OPERACOES
테이블에 대한 새 레코드를 추가하고 제출을 누릅니다. -
테이블이 추가되었는지 확인하려면 FINDATA.*에 대한 필터를 누릅니다.
-
눌러서 targetDB에 연결한 다음 CHECKPOINT에서 +를 누릅니다.
-
FINDATA.CHECKTABLE을 입력하고 Submit(제출)을 누릅니다.
-
이제 왼쪽 메뉴 개요 옵션을 눌러 새 추출을 포함합니다.
-
다음 매개변수 포함:
EXTRACT EXT USERIDALIAS sourceDB DOMAIN OracleGoldenGate EXTTRAIL E1 table FINDATA.operacoes; table FINDATA.banks;
-
-
작업, 시작을 눌러 추출을 시작합니다.
-
이제 targetDB에 복제를 적용할 새 복제본을 만듭니다.
-
다음 매개변수 포함:
REPLICAT REP USERIDALIAS targetDB DOMAIN OracleGoldenGate MAP FINDATA.BANKS, TARGET FINDATA.BANKS;
참고: 여기서는
FINDATA.BANKS
테이블만 복제됩니다. 이는 targetDB에 복제하기 때문입니다. 다른 테이블FINDATA.OPERACOES
는 이 자습서의 뒷부분에서 OCI 스트리밍 토픽으로 복제됩니다. -
-
Action, Start를 눌러 복제를 시작합니다.
-
복제가
FINDATA.BANKS
테이블에 대해 작동하는지 확인합니다. sourceDB의 데이터베이스 작업 페이지로 이동하고 새 레코드를 삽입합니다.INSERT INTO FINDATA.BANKS VALUES (999, 999, 'XXXXXX','TEST GOLDENGATE','TESTGG'); COMMIT;
-
targetDB에 대한 데이터베이스 작업 페이지를 열고 아래 질의를 실행하여 레코드가 생성되었는지 확인합니다.
select * from FINDATA.BANKS WHERE ID_SEQ = 999;
-
배포 서비스 탭을 누르고 GGforBigData으로 데이터를 전송할 새 경로를 추가합니다.
-
Action, Start를 눌러 서비스 배포를 시작합니다.
태스크 17: Oracle GoldenGate for Big Data 설정 - GGforBigData
-
GGforBigData 배치를 선택하고 콘솔 실행을 누릅니다.
-
oggadmin/yourpassword(배포 생성 중 만든 암호) 자격 증명을 입력합니다.
-
수신기 서비스 탭을 누르고 이미 작동 중인지 확인합니다. 두 Oracle GoldenGate 배치 간의 접속에 필요한 모든 설정을 이미 수행했으므로 다음과 같아야 합니다.
-
이제 OCI Streaming 주제에 데이터를 게시하려면 REPLICAT를 설정해야 합니다.
-
관리 서비스 탭을 누릅니다.
-
다음 매개변수 포함:
REPLICAT STRM TARGETDB LIBFILE libggjava.so SET property=/u02/Deployment/etc/conf/ogg/STRM.properties MAP FINDATA.operacoes, TARGET FINDATA.operacoes , THREADRANGE(1-5);
-
이 행에 ${tableName}만 추가하고 제공된 모든 기본값을 사용합니다.
-
-
Action, Start를 눌러 복제를 시작합니다.
-
상태가 녹색인지 확인합니다.
-
작업 18: OCI Streaming 항목에 대한 복제 확인
-
sourceDB의 데이터베이스 작업 페이지로 이동하여
FINDATA.OPERACOES
테이블에 일부 행을 삽입합니다.-
load_random_data.sql 스크립트를 사용하여 무작위 데이터를
FINDATA.OPERACOES
테이블에 삽입할 수 있습니다. -
이 스크립트는
FINDATA.OPERACOES
에 1.000개의 행을 추가하고 복제가 예상대로 작동하는지 확인하는 데 충분합니다.
-
-
다음 SQL 명령을 실행하여
FINDATA.OPERACOES
에 레코드가 있는지 확인합니다.SELECT COUNT(*) FROM FINDATA.OPERACOES;
-
왼쪽 상단 탐색 메뉴를 누르고 분석 및 AI를 선택한 다음 스트리밍을 누르고 왼쪽 메뉴에서 스트림을 선택합니다.
-
Oracle GoldenGate for Big Data에서 새 TOPIC가 자동으로 생성되었는지 확인합니다.
-
일부 메시지를 소비하고 메시지 로드를 눌러 해당 메시지가 토픽에서 사용 가능한지 확인하십시오.
중요 참고 사항: 메시지 로드는 마지막 MINUTE에서 소비된 메시지만 작동합니다. 즉, LOAD_RANDOM_DATA.SQL 스크립트를 실행한 후 메시지보다 오래 걸리면 결과가 표시되지 않습니다.
결과를 보려면 데이터베이스로 이동하여 LOAD_RANDOM_DATA.SQL 스크립트를 다시 실행한 다음 메시지 로드로 돌아가서 메시지가 표시됩니다.
승인
- 작성자 - Joao Tarla(Oracle LAD A-Team 솔루션 엔지니어)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.
제품 설명서는 Oracle Help Center를 참조하십시오.
Stream data using Oracle GoldenGate and Oracle GoldenGate for Big Data with different targets
F80321-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.