스트리밍 처리기를 사용하여 PostgresSQL에서 Snowflake로 데이터 복제

Streaming Handler를 사용하여 OCI GoldenGate를 사용하여 PostgreSQL에서 Snowflake로 데이터를 복제하는 방법을 알아보십시오.

시작하기 전에

이 빠른 시작을 성공적으로 완료하려면 다음이 있어야 합니다.

  • PostgreSQL를 사용하는 OCI 데이터베이스에 액세스
  • OCI Database with PostgreSQL에서 사용하는 VCN의 보안 목록에서 포트 5432 열기
  • Snowflake에 액세스

PostgreSQL를 사용하는 OCI 데이터베이스 설정

  1. PostgreSQL를 사용하는 OCI 데이터베이스를 생성합니다.
    1. OCI PostgreSQL:
      1. 구성을 누릅니다.
      2. 기존 구성(예: PostgreSQL.VM.Standard.E5.Flex-14-0_51)을 사용합니다.
      3. 구성 복사를 누르고 이름을 바꾸고 사용자 변수(읽기/쓰기) 아래에 wal_level를 추가하고 '논리적'으로 설정합니다.
      4. 생성을 누릅니다.
      5. 자세한 내용은 Copying a Configuration를 참조하십시오.
    2. DB 시스템을 생성할 때 wal_level가 true로 설정된 구성을 사용합니다. 자세한 내용은 데이터베이스 시스템 생성을 참조하십시오.
  2. OCI PostgreSQL에 연결합니다. 자세한 내용은 데이터베이스에 접속을 참조하십시오.
  3. OCI PostgreSQL에서 GoldenGate에 대한 데이터베이스 및 사용자를 생성합니다.
    1. 데이터베이스
      1. 데이터베이스 생성 ociggll;
      2. \c ociggll;
      3. 스키마 생성 src_ociggll;
      4. 샘플 스크립트 로드(seedSRCOCIGGLL_PostgreSQL.sql)
    2. 사용자
      1. 암호가 '<password>'인 사용자 ggadmin 생성;
      2. ggadmin에 데이터베이스 ociggll에 대한 모든 권한을 부여하십시오.
      3. GRANT SELECT ON ALL TABLES IN SCHEMA src_ociggll TO ggadmin;

Snowflake 데이터베이스 설정

  1. Snowflake 데이터베이스 생성.
  2. 사용자는 Snowflake로 인증하려면 퍼블릭 및 프라이빗 키 쌍을 생성해야 합니다.
  3. 적합한 권한을 사용하여 Snowflake에서 GoldenGate에 대한 사용자를 특별히 생성합니다.
  4. Snowflake 사용자에게 공개 키를 추가합니다(예: ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';).
  5. 샘플 스키마를 사용하여 대상 테이블을 생성합니다.

작업 1: OCI GoldenGate 리소스 만들기

이 빠른 시작 예에서는 소스 및 대상에 대한 배치 및 접속이 필요합니다.
  1. PostgreSQL 23ai의 경우 GoldenGate가 필요합니다.
  2. 소스 PostgreSQL 데이터베이스에 대한 PostgreSQL 배치를 생성합니다.
  3. 빅데이터 배치를 생성하여 대상 Snowflake 데이터베이스에 대해 배치합니다.
  4. 다음 값을 사용하여 PostgreSQL 접속을 생성합니다.
    1. 유형의 경우 드롭다운에서 OCI PostgreSQL를 선택합니다.
    2. 데이터베이스 이름ociggll을 입력합니다.
    3. 사용자 이름ggadmin을 입력합니다.
    4. 비밀번호의 경우 비밀번호를 입력합니다.
    5. 보안 프로토콜의 경우 드롭다운에서 TLS를 선택한 다음 기본 설정을 선택합니다.
  5. 다음 값을 사용하여 Snowflake 연결을 생성합니다.
    1. 접속 URLjdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL을 입력합니다.

      주:

      <account_identifier><warehouse name>를 적절한 값으로 바꿔야 합니다.
    2. 인증 유형의 경우 드롭다운에서 키 쌍 인증을 선택합니다.

      주:

      키 쌍 인증은 Snowflake Streaming에 대해 지원되는 유일한 인증 유형입니다.
    3. 사용자 이름에 이름을 입력합니다.
    4. 이전에 생성한 전용 키를 업로드합니다.
    5. Private Key Password 필드에 전용(private) 키 암호문을 입력합니다.
  6. 대상 Big Data 배치에 대해 GoldenGate에 대한 접속을 생성한 다음 이 접속을 소스 PostgreSQL 배치에 지정합니다.
  7. PostgreSQL 배치에 소스 PostgreSQL 접속을 지정합니다.
  8. 대상 Big Data 배치에 Snowflake 접속을 지정합니다.

작업 2: 보완 로깅 활성화

보완 로깅을 사용으로 설정하려면 다음과 같이 하십시오.
  1. PostgreSQL GoldenGate 배치 콘솔을 실행합니다.
    1. [배치] 페이지에서 PostgreSQL 배치를 선택하여 세부정보를 봅니다.
    2. PostgreSQL 배치 세부정보 페이지에서 콘솔 실행을 누릅니다.
    3. 배치 콘솔 사인인 페이지에서 작업 1, 단계 1에 제공된 GoldenGate 관리 인증서를 입력합니다.

      주:

      배치를 생성할 때 IAM이 인증서 저장소로 선택되지 않은 경우 사인인이 필요합니다.
  2. GoldenGate 23ai에서 왼쪽 탐색의 DB 접속, 소스 PostgreSQL 데이터베이스, Trandata를 차례로 누릅니다.
  3. TRANDATA 페이지의 TRANDATA 정보 옆에 있는 TRANDATA 추가(더하기 아이콘)를 누릅니다.
  4. Trandata 패널에서 스키마 이름src_ociggll.*을 입력한 다음 제출을 누릅니다.

    주:

    검색 필드를 사용하여 src_ociggll를 검색하고 테이블이 추가되었는지 확인합니다.

작업 3: 추출 생성

  1. Change Data Capture Extract를 추가합니다.
    1. 왼쪽 탐색에서 추출을 누릅니다.
    2. 추출 페이지에서 추출 추가(더하기 아이콘)를 누른 후 다음과 같이 필드에 정보를 입력합니다.
      • Extract Information 페이지에서 다음을 수행할 수 있습니다.
        1. 추출 유형에 대해 데이터 캡처 변경 추출을 선택합니다.
        2. 프로세스 이름추출의 이름(예: ECDC)을 입력합니다.
        3. 다음을 누르십시오.
      • 추출 옵션 페이지에서 다음을 수행합니다.
        1. 소스 인증서의 경우 도메인 드롭다운에서 Oracle GoldenGate를 선택합니다.
        2. 별칭 드롭다운에서 소스 PostgreSQL 데이터베이스를 선택합니다.
        3. 추출 추적 이름에 2자 추적 이름(예: C1)을 입력합니다.
        4. 등록, 다음 순으로 누릅니다.
      • 추출 매개변수 페이지에서 다음을 추가합니다.
        TABLE src_ociggll.*;
    3. 생성 및 실행을 누릅니다.
  2. 초기 로드 추출 추가:
    1. 추출 페이지에서 추출 추가를 누른 다음 다음과 같이 추출 추가 양식을 완성합니다.
      • 추출 정보 페이지에서 다음을 수행합니다.
        1. 추출 유형에 대해 초기 로드 추출을 선택합니다.
        2. 프로세스 이름EIL과 같은 이름을 입력합니다.
        3. 다음을 누르십시오.
      • 추출 옵션 페이지에서 다음을 수행합니다.
        1. 소스 인증서의 경우 도메인 드롭다운에서 Oracle GoldenGate를 선택합니다.
        2. 별칭 드롭다운에서 PostgreSQL 데이터베이스를 선택합니다.
        3. 추출 추적 이름에 2자 추적 이름(예: I1)을 입력합니다.
        4. 다음을 누르십시오.
      • 추출 매개변수 페이지에서 TABLE *.*를 다음으로 바꿉니다.
        TABLE src_ociggll.*;
    2. 생성 및 실행을 누릅니다.
추출 페이지로 돌아가서 추출이 시작되는 것을 확인할 수 있습니다.

작업 4: Initial Load Extract에 대한 Distribution Path 생성

Initial Load Extract에 대한 Distribution Path를 생성하려면 다음을 수행합니다.
  1. Oracle Cloud 콘솔의 [배치] 페이지에서 대상 빅데이터 배치를 선택합니다.
  2. 배포 세부정보 페이지에서 콘솔 실행을 누릅니다. 작업 1, 단계 2에서 생성된 관리 사용자 세부정보로 로그인합니다.
  3. IAM 인증서 저장소를 사용하는 경우 Distribution Path 생성 단계로 이동합니다. GoldenGate 인증서 저장소를 사용하는 경우 소스 GoldenGate에서 대상 GoldenGate에 접속하는 데 사용할 사용자를 생성합니다.
    1. 탐색 메뉴에서 사용자 관리를 누릅니다.
    2. 새 사용자 추가(더하기 아이콘)를 누르고 다음과 같이 필드에 정보를 입력한 다음 제출을 누릅니다.
      • 사용자 이름ggsnet을 입력합니다.
      • 역할에 대해 연산자를 선택합니다.
      • 확인을 위해 암호를 두 번 입력합니다.
  4. source PostgreSQL 배치 콘솔에서 이전 단계에서 생성한 사용자에 대한 경로 접속을 생성합니다.
    1. 탐색 메뉴에서 경로 접속을 누릅니다.
    2. 경로 접속 추가(더하기 아이콘)를 누르고 다음과 같이 필드에 정보를 입력한 다음 제출을 누릅니다.
      • Credential Alias에 dpuser을 입력합니다.
      • 사용자 ID에 ggsnet를 입력합니다.
      • Password에 이전 단계에서 사용한 것과 동일한 암호를 입력합니다.
  5. Distribution Path를 생성합니다.
    1. 서비스 메뉴 모음에서 Distribution Service을 누른 다음 Distribution Path 추가(더하기 아이콘)를 누릅니다.
    2. 다음과 같이 Add Path Form을 완료합니다.
      • [경로 정보] 페이지에서 다음을 수행합니다.
        1. 경로 이름에 이 경로의 이름을 입력합니다.
        2. 다음을 누르십시오.
      • Source Options 페이지에서 다음을 수행하십시오.
        1. Source Extract의 경우 비워 둡니다.
        2. 추적 이름Initial Load Extract 추적 이름(I1)을 입력합니다.
        3. 다음을 누르십시오.
      • Target Options 페이지에서 다음을 수행하십시오.
        1. Target Protocol에 대해 wss를 선택합니다.
        2. 대상 호스트의 경우 https:// 또는 후행 슬래시 없이 대상 배치 URL을 입력합니다.
        3. 포트 번호에서 443을 입력합니다.
        4. Trail NameI1을 입력합니다.
        5. Target Authentication Method(대상 인증 방법)에 대해 OAuth을 선택합니다.

          주:

          배치를 생성할 때 GoldenGate가 인증서 저장소로 선택된 경우 UserID 별칭을 선택합니다. 그렇지 않은 경우 OAuth을 선택합니다.
        6. 도메인에 대해 이전 단계에서 생성한 도메인 이름을 입력합니다.
        7. 별칭에 대해 이전 단계에서 생성한 별칭(dpuser)을 입력합니다.
        8. 다음을 누르십시오.
    3. 생성 및 실행을 누릅니다.
    생성된 경로를 검토할 수 있는 Distribution Service 페이지로 돌아갑니다.
  6. 대상 Big Data 배치 콘솔에서 Distribution path의 결과로 생성된 Receiver Path를 검토합니다.
    1. Receiver Service을 누릅니다.
    2. Receiver Path 세부 정보를 검토합니다.

작업 5: Initial Load에 대한 Replicat 추가

  1. 대상 Big Data 배치 콘솔에서 Initial Load Replicat를 추가합니다.
    1. 탐색 메뉴에서 복제를 누른 다음 복제 추가(더하기 아이콘)를 누릅니다.
    2. Replicats 페이지에서 다음과 같이 Add Replicat 필드를 완성합니다.
      1. Replication Information 페이지에서 다음을 수행합니다.
        1. Replicat 유형에 대해 Coordinated Replicat를 선택합니다.
        2. 프로세스 이름RIL과 같은 이름을 입력합니다.
        3. 다음을 누르십시오.
      2. Replicat Options 페이지에서 다음을 수행합니다.
        1. 복제 추적 이름에 태스크 2의 추적 이름(I1)을 입력합니다.
        2. 대상에 대해 Snowflake를 선택합니다.
        3. 대상 인증서의 경우 Snowflake 접속에 대해 도메인별칭을 선택합니다.
        4. 사용 가능한 별칭의 경우 드롭다운(예: Snowflake)에서 별칭을 선택합니다.
        5. 스트리밍을 선택합니다.
        6. 다음을 누르십시오.
      3. 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;
      4. Properties 페이지에서 속성을 검토하고 jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true를 추가합니다.
      5. 생성 및 실행을 누릅니다.

    Replicats 페이지로 돌아가서 Replicat 세부정보를 검토할 수 있습니다.

  2. Initial Load를 확인하려면 Snowflake 데이터베이스에 접속하여 다음 질의를 실행하십시오.
    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    출력은 Initial Load의 결과로 Target Database 테이블에 로드된 데이터를 반환해야 합니다.

작업 6: Change Data Capture에 대한 Distribution Path 생성

Change Data Capture에 대한 Distribution Path를 생성하려면 다음을 수행합니다.
  1. 소스 PostgreSQL 배치 콘솔에서 배포 서비스를 누릅니다.
  2. Distribution Path 추가를 누릅니다.
  3. 다음과 같이 Add Path Form을 완료합니다.
    1. [경로 정보] 페이지에서 다음을 수행합니다.
      1. 경로 이름에 이름을 입력합니다.
      2. 다음을 누르십시오.
    2. Source Options 페이지에서 다음을 수행하십시오.
      1. 소스 Extract에 대해 Change Data Capture Extract(ECDC))을 선택합니다.
      2. 추적 이름에 대해 Change Data Capture 추적 파일(C1)을 선택합니다.
      3. 다음을 누르십시오.
    3. Target Options 페이지에서 다음을 수행하십시오.
      1. 대상에 대해 wss를 선택합니다.
      2. 대상 호스트의 경우 대상 배치 콘솔 URL을 입력합니다. 이 URL은 배포 세부정보 페이지에서 https:// 또는 후행 슬래시 없이 찾을 수 있습니다.
      3. 포트 번호에서 443을 입력합니다.
      4. Trail NameC1을 입력합니다.
      5. Target Authentication Method(대상 인증 방법)에 대해 OAuth을 선택합니다.

        주:

        배치를 생성할 때 GoldenGate가 인증서 저장소로 선택된 경우 UserID 별칭을 선택합니다. 그렇지 않은 경우 OAuth을 선택합니다.
      6. 도메인에 도메인 이름을 입력합니다.
      7. 별칭에서 별칭을 입력합니다.
    4. 경로 생성 및 실행을 누릅니다.
  4. 대상 Big Data 배치 콘솔에서 Receiver Service을 누르고 생성된 Receiver path를 검토합니다.

작업 7: Change Data Capture에 대한 Replicat 추가

소스 PostgreSQL 데이터베이스에 대한 업데이트를 수행하여 Snowflake에 대한 복제를 확인합니다.
  1. Replicat를 추가합니다.
    1. 대상 Big Data 배치 콘솔에서 Administration Service을 누르고 탐색 메뉴에서 Replicats을 누릅니다.
    2. Replicats 페이지에서 Replicat 추가(더하기 아이콘)를 누른 다음 다음과 같이 Replicat 추가 폼을 완료합니다.
      • Replicat Information 페이지에서 다음을 수행합니다.
        1. Replicat 유형에 대해 Classic 또는 Coordinated을 선택합니다.
        2. 프로세스 이름RCDC과 같은 이름을 입력합니다.
        3. 다음을 누르십시오.
      • Replicat 옵션 페이지에서 다음을 수행합니다.
        1. Replicat 추적 이름에 태스크 3의 추적 이름(C1)을 입력합니다.
        2. 대상에 대해 Snowflake를 선택합니다.
        3. 대상 인증서의 경우 Snowflake 접속에 대한 도메인 및 별칭을 선택합니다.
        4. 스트리밍을 선택합니다.
      • [매개변수 파일] 페이지에서 다음 매핑을 추가하고 다음을 누릅니다.
        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

    Replicats 페이지로 돌아가서 Replicat 세부정보를 검토할 수 있습니다.

  2. Change Data Capture를 확인합니다.
    1. 소스 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);
    2. 소스 PostgreSQL 배치 콘솔에서 RCDC을 선택한 다음 통계를 누릅니다. src_ociggll.src_city에 10개의 삽입이 있는지 확인합니다.

      주:

      Extract가 삽입을 캡처하지 않은 경우 ECDC Extract를 재시작합니다.
    3. 대상 Big Data 배치 콘솔에서 RCDC을 선택하고 세부정보통계를 검토하여 삽입 수를 확인합니다.

작업 8: 프로세스 모니터 및 유지 관리

  1. 성능 모니터.
  2. 추적 파일 관리.