스트리밍 처리기를 사용하여 PostgresSQL에서 Snowflake로 데이터 복제
OCI GoldenGate를 사용하여 스트리밍 처리기를 사용하여 PostgreSQL에서 Snowflake로 데이터를 복제하는 방법을 알아봅니다.
시작하기 전에
이 빠른 시작을 성공적으로 완료하려면 다음이 있어야 합니다.
-
PostgreSQL로 OCI 데이터베이스에 액세스
-
OCI Database with PostgreSQL에서 사용하는 VCN의 보안 목록에서 포트 5432를 엽니다.
-
Snowflake에 액세스
PostgreSQL로 OCI 데이터베이스 설정
-
PostgreSQL을 사용하는 OCI 데이터베이스를 생성합니다.
-
OCI Database with PostgreSQL:
-
Configurations를 선택합니다.
-
PostgreSQL.VM.Standard.E5.Flex-14-0_51와 같은 기존 구성을 사용합니다. -
구성 복사를 선택하고, 이름을 바꾸고, 사용자 변수(읽기/쓰기) 아래에
wal_level를 추가하고, '논리적'으로 설정합니다. -
생성을 선택합니다.
-
자세한 내용은 구성 복사를 참조하십시오.
-
-
DB 시스템을 생성할 때
wal_level가 true로 설정된 구성을 사용합니다. 자세한 내용은 데이터베이스 시스템 생성을 참조하십시오.
-
-
PostgreSQL을 사용하여 OCI Database에 연결합니다. 자세한 내용은 데이터베이스에 연결을 참조하십시오.
-
PostgreSQL을 사용하여 OCI 데이터베이스에서 GoldenGate에 대한 데이터베이스 및 사용자를 생성합니다.
-
Database
-
데이터베이스 생성 ociggll;
-
\c ociggll;
-
스키마 생성 src_ociggll;
-
-
User
-
암호가
<password>인 사용자ggadmin를 생성합니다. -
데이터베이스 ociggll에 대한 모든 권한을 ggadmin에 부여합니다.
-
스키마 src_ociggll에서 ggadmin으로 모든 테이블에 대해 선택 부여
-
-
Snowflake 데이터베이스 설정
-
Snowflake 사용자에게 공개 키를 추가합니다. 예:
ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...'; -
샘플 스키마를 사용하여 대상 테이블을 생성합니다.
작업 1: OCI GoldenGate 리소스 생성
이 빠른 시작 예에서는 소스 및 대상에 대한 배치 및 접속이 필요합니다.
-
PostgreSQL 26ai용 GoldenGate가 필요합니다.
-
소스 PostgreSQL 데이터베이스에 대한 PostgreSQL 배치를 생성합니다.
-
대상 Snowflake 데이터베이스에 대한 빅 데이터 배치를 생성합니다.
-
다음 값을 사용하여 PostgreSQL 접속을 생성합니다.
-
유형의 경우 드롭다운에서 OCI Database with PostgreSQL을 선택합니다.
-
데이터베이스 이름에
ociggll을 입력합니다. -
사용자 이름에
ggadmin을 입력합니다. -
비밀번호에 암호를 입력합니다.
-
보안 프로토콜의 경우 드롭다운에서 TLS를 선택한 다음 선호를 선택합니다.
-
-
다음 값을 사용하여 Snowflake 연결을 생성합니다.
-
접속 URL에
jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL을 입력합니다.주:
<account_identifier>및<warehouse name>를 적합한 값으로 바꿔야 합니다. -
인증 유형의 경우 드롭다운에서 키 쌍 인증을 선택합니다.
주: 키 쌍 인증은 Snowflake Streaming에 대해 지원되는 유일한 인증 유형입니다.
-
사용자 이름에 이름을 입력합니다.
-
이전에 생성한 개인 키를 업로드합니다.
-
Private key password 필드에 개인 키 문장암호를 입력합니다.
-
-
대상 Big Data 배치에 대한 GoldenGate 접속을 생성한 다음 이 접속을 소스 PostgreSQL 배치에 지정합니다.
작업 2: 보완 로깅 활성화
보완 로깅을 사용으로 설정하려면 다음과 같이 하십시오.
-
PostgreSQL GoldenGate 배치 콘솔을 실행합니다.
-
[배치] 페이지에서 PostgreSQL 배치를 선택하여 세부정보를 봅니다.
-
PostgreSQL 배치 세부정보 페이지에서 콘솔 실행을 선택합니다.
-
배치 콘솔 사인인 페이지에서 작업 1, 단계 1에 제공된 GoldenGate 관리 인증서를 입력합니다.
주: 배치를 생성할 때 IAM이 인증서 저장소로 선택되지 않은 경우 사인인이 필요합니다.
-
-
배치 콘솔의 왼쪽 탐색에서 DB 접속, 소스 PostgreSQL 데이터베이스, Trandata 순으로 선택합니다.
-
TRANDATA 페이지의 TRANDATA 정보 옆에 있는 트랜다타 추가(더하기 아이콘)를 선택합니다.
-
Trandata 패널에서 스키마 이름에 대해
src_ociggll을 입력한 다음 제출을 선택합니다.주: 검색 필드를 사용하여
src_ociggll을 검색하고 테이블이 추가되었는지 확인하십시오.
작업 3: 추출 생성
-
변경 데이터 캡처 Extract 추가:
-
왼쪽 탐색에서 추출을 선택합니다.
-
추출 페이지에서 추출 추가(더하기 아이콘)를 선택한 후 다음과 같이 필드에 정보를 입력합니다.
-
정보 추출 페이지에서 다음을 수행합니다.
-
추출 유형에 대해 데이터 캡처 추출 변경을 선택합니다.
-
프로세스 이름에 추출 이름(예:
ECDC)을 입력합니다. -
다음을 선택합니다.
-
-
추출 옵션 페이지에서 다음을 수행합니다.
-
소스 인증서의 경우 도메인 드롭다운에서 Oracle GoldenGate를 선택합니다.
-
별칭 드롭다운에서 소스 PostgreSQL 데이터베이스를 선택합니다.
-
추출 추적 이름에
C1와 같은 2자의 추적 이름을 입력합니다. -
다음을 선택합니다.
-
-
추출 매개변수 페이지에서
MAP *.*, TARGET *.*;를 다음으로 바꿉니다.TABLE SRC_OCIGGLL.*;
-
-
생성 및 실행을 선택합니다.
-
-
초기 로드 추출 추가:
-
추출 페이지에서 추출 추가를 선택한 후 다음과 같이 추출 추가 양식을 완료합니다.
-
정보 추출 페이지에서 다음을 수행합니다.
-
추출 유형의 경우 초기 로드 추출을 선택합니다.
-
프로세스 이름에
EIL과 같은 이름을 입력합니다. -
다음을 선택합니다.
-
-
추출 옵션 페이지에서 다음을 수행합니다.
-
소스 인증서의 경우 도메인 드롭다운에서 Oracle GoldenGate를 선택합니다.
-
별칭 드롭다운에서 PostgreSQL 데이터베이스를 선택합니다.
-
추출 추적 이름에 2자 추적 이름(예:
I1)을 입력합니다. -
다음을 선택합니다.
-
-
추출 매개변수 페이지에서 텍스트 영역의 내용을 다음으로 바꿉니다.
EXTRACT EIL USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate EXTFILE I1, PURGE TABLE src_ociggll.*;주: 계속하기 전에
USERIDALIAS앞에 있는SOURCEDB매개변수를 제거해야 합니다.
-
-
생성 및 실행을 선택합니다.
-
Extracts 페이지로 돌아가서 Extract 시작을 확인할 수 있습니다.
작업 4: 초기 로드 추출에 대한 분배 경로 생성
초기 로드 추출에 대한 분배 경로를 생성하려면 다음을 수행합니다.
-
Oracle Cloud 콘솔의 [배치] 페이지에서 대상 Big Data 배치를 선택합니다.
-
배치 세부정보 페이지에서 콘솔 실행을 선택한 다음 관리 사용자로 로그인합니다.
-
IAM 인증서 저장소를 사용하는 경우 배포 경로 생성 단계를 진행합니다. GoldenGate 인증서 저장소를 사용하는 경우 소스 GoldenGate가 대상 GoldenGate에 접속하는 데 사용하는 사용자를 생성합니다.
-
탐색 메뉴에서 User Administration을 선택합니다.
-
새 사용자 추가(더하기 아이콘)를 선택하고 다음과 같이 필드에 정보를 입력한 다음 제출을 선택합니다.
-
사용자 이름에
ggsnet을 입력합니다. -
역할에 대해 연산자를 선택합니다.
-
확인을 위해 암호를 두 번 입력합니다.
-
-
-
소스 PostgreSQL 배치 콘솔에서 이전 단계에서 생성한 사용자에 대한 경로 접속을 생성합니다.
-
탐색 메뉴에서 경로 접속을 선택합니다.
-
경로 접속 추가(더하기 아이콘)를 선택하고 다음과 같이 필드에 정보를 입력한 다음 제출을 선택합니다.
-
Credential Alias에
dpuser를 입력합니다. -
사용자 ID에
ggsnet를 입력합니다. -
암호에 이전 단계에서 사용한 것과 동일한 암호를 입력합니다.
-
-
-
배포 경로를 만듭니다.
-
서비스 메뉴 표시줄에서 경로를 선택한 다음 배포 경로 추가(더하기 아이콘)를 선택합니다.
-
Add Path Form을 다음과 같이 완성합니다.
-
Path Information 페이지에서 다음을 수행합니다.
-
경로 이름에 이 경로의 이름을 입력합니다.
-
다음을 선택합니다.
-
-
Source Options 페이지에서 다음을 수행합니다.
-
소스 추출의 경우 비워 둡니다.
-
트레일 이름에 초기 로드 추출 추적 이름(
I1)을 입력합니다. -
다음을 선택합니다.
-
-
Target Options 페이지에서 다음을 수행하십시오.
-
대상에서 wss를 선택합니다.
-
대상 호스트의 경우 https:// 또는 후행 슬래시 없이 대상 배치 URL을 입력합니다.
-
포트 번호에서
443을 입력합니다. -
트레일 이름에
I1을 입력합니다. -
대상 인증 방법의 경우 UserID 별칭을 선택합니다.
-
도메인에 대해 이전 단계에서 생성한 도메인 이름을 입력합니다.
-
별칭에 대해 이전 단계(
dpuser)에서 생성된 별칭을 입력합니다. -
다음을 선택합니다.
-
-
-
생성 및 실행을 선택합니다.
생성된 경로를 검토할 수 있는 배포 서비스 페이지로 돌아갑니다.
-
-
대상 배치 콘솔에서 배포 경로의 결과로 생성된 수신기 경로를 검토합니다.
-
경로를 선택합니다.
-
Path 세부 정보를 검토합니다.
-
작업 5: 초기 로드에 대한 Replicat 추가
-
대상 Big Data 배치 콘솔에서 초기 로드 Replicat를 추가합니다.
-
탐색 메뉴에서 복제를 선택한 다음 복제 추가(플러스 아이콘)를 선택합니다.
-
[복제] 페이지에서 다음과 같이 [복제 추가] 필드에 정보를 입력합니다.
-
Replication Information 페이지에서 다음을 수행합니다.
-
복제 유형에 대해 좌표 복제를 선택합니다.
-
프로세스 이름에
RIL과 같은 이름을 입력합니다. -
다음을 선택합니다.
-
-
Replicat Options 페이지에서 다음을 수행합니다.
-
복제 추적 이름에 태스크 2의 추적 이름(
I1)을 입력합니다. -
대상에 대해 Snowflake를 선택합니다.
-
대상 인증서의 경우 Snowflake 접속에 대한 도메인 및 별칭을 선택합니다.
-
사용 가능한 별칭의 경우 드롭다운에서 별칭(예: Snowflake)을 선택합니다.
-
스트리밍을 선택합니다.
-
다음을 선택합니다.
-
-
Parameter File 페이지에서 다음 매핑을 추가합니다.
INSERTALLRECORDS MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY; MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION; MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER; MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS; MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES; MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT; -
속성 페이지에서 속성을 검토하고
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true를 추가합니다. -
생성 및 실행을 선택합니다.
-
Replicat 세부 정보를 검토할 수 있는 Replicats 페이지로 돌아갑니다.
-
-
초기 로드를 확인하려면 Snowflake 데이터베이스에 연결하여 다음 질의를 실행합니다.
select * from SRCMIRROR_OCIGGLL.SRC_CITY; select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;출력은 초기 로드의 결과로 대상 데이터베이스 테이블에 로드된 데이터를 반환해야 합니다.
작업 6: 변경 데이터 캡처에 대한 분배 경로 생성
-
소스 PostgreSQL 배포 콘솔에서 배포 서비스를 선택합니다.
-
배포 경로 추가를 선택합니다.
-
Add Path Form을 다음과 같이 완성합니다.
-
Path Information 페이지에서 다음을 수행합니다.
-
경로 이름에 이름을 입력합니다.
-
다음을 선택합니다.
-
-
Source Options 페이지에서 다음을 수행합니다.
-
소스 추출의 경우 변경 데이터 캡처 추출(
ECDC)을 선택합니다. -
트레일 이름에 대해 변경 데이터 캡처 추적 파일(
C1)을 선택합니다. -
다음을 선택합니다.
-
-
Target Options 페이지에서 다음을 수행하십시오.
-
대상에서 wss를 선택합니다.
-
대상 호스트의 경우 대상 배치 콘솔 URL을 입력합니다. 이 URL은 배치 세부정보 페이지에서 https:// 또는 후행 슬래시 없이 찾을 수 있습니다.
-
포트 번호에서
443을 입력합니다. -
트레일 이름에
C1을 입력합니다. -
대상 인증 방법의 경우 UserID 별칭을 선택합니다.
-
Domain(도메인)에 도메인 이름을 입력하십시오.
-
별칭에 대해 별칭을 입력합니다 .
-
-
경로 생성 및 실행을 선택합니다.
-
작업 7: 변경 데이터 캡처에 대한 Replicat 추가
소스 PostgreSQL 데이터베이스에 대한 업데이트를 수행하여 Snowflake에 대한 복제를 확인합니다.
-
Replicat를 추가합니다.
-
대상 Big Data 배치 콘솔에서 관리 서비스를 선택한 다음 탐색 메뉴에서 복제를 선택합니다.
-
복제 페이지에서 복제 항목 추가(더하기 아이콘)를 선택한 후 다음과 같이 [복제 항목 추가] 양식을 완성합니다.
- Replicat Information 페이지에서 다음을 수행합니다.
-
복제 유형에 대해 클래식 또는 조정됨을 선택합니다.
-
프로세스 이름에
RCDC과 같은 이름을 입력합니다. -
다음을 선택합니다.
-
- Replicat Options 페이지에서 다음을 수행합니다.
-
복제 추적 이름에 태스크 3의 추적 이름(
C1)을 입력합니다. -
대상에 대해 Snowflake를 선택합니다.
-
대상 인증서의 경우 Snowflake 접속에 대한 도메인 및 별칭을 선택합니다.
-
스트리밍을 선택합니다.
-
-
[매개변수 파일] 페이지에서 다음 매핑을 추가하고 다음을 선택합니다.
INSERTALLRECORDS MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY; MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION; MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER; MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS; MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES; MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT; -
[속성] 페이지에서 속성을 검토하고 다음 매핑을 추가한 후 생성 및 실행을 선택합니다.
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true
- Replicat Information 페이지에서 다음을 수행합니다.
Replicat 세부 정보를 검토할 수 있는 Replicats 페이지로 돌아갑니다.
-
-
변경 데이터 수집 확인:
-
소스 PostgreSQL 데이터베이스에 대한 업데이트를 수행하여 Snowflake에 대한 복제를 확인합니다. 다음 스크립트를 실행하여 PostgreSQL 데이터베이스에 삽입합니다.
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); -
소스 PostgreSQL 배치 콘솔에서
RCDC을 선택한 다음 통계를 선택합니다.src_ociggll.src_city에 10개의 삽입이 있는지 확인합니다.주: Extract가 삽입을 캡처하지 않은 경우
ECDCExtract를 재시작합니다. -
대상 Big Data 배치 콘솔에서
RCDC을 선택하고 세부정보 및 통계를 검토하여 삽입 수를 확인합니다.
-