PostgreSQL에서 Google BigQuery로 데이터 복제

OCI GoldenGate를 사용하여 PostgreSQL에서 Google BigQuery로 데이터를 복제하는 방법을 알아보세요.

시작하기 전에

이 퀵타트를 성공적으로 완료하려면 다음이 있어야 합니다.

환경 설정: PostgreSQL

이 Quickstart에 대한 환경을 설정하려면 다음과 같이 하십시오.
  1. 다음 명령을 실행하여 PostgreSQL를 설치합니다.
    1. PostgreSQL 서버를 설치합니다.
      sudo yum install postgresql-server
    2. 이 SQL 예외사항을 방지하려면 postgresql-contrib 모듈을 설치하십시오.
      sudo yum install postgresql-contrib
    3. 새 PostgreSQL 데이터베이스 클러스터를 생성합니다.
      sudo postgresql-setup --initdb
    4. postgresql.service를 사용으로 설정합니다.
      sudo systemctl enable postgresql.service
    5. postgresql.service를 시작합니다.
      sudo systemctl start postgresql.service
  2. 기본적으로 PostgreSQL는 로컬 연결만 허용합니다. PostgreSQL에 대한 원격 접속을 허용합니다.
    1. /var/lib/pgsql/data/postgresql.conf에서 복제할 데이터베이스를 준비합니다.
    2. listen_addresses = 'localhost'를 찾아 주석 처리를 해제하고 localhost를 별표(*)로 변경합니다.
      listen_addresses = '*'
    3. 다음 매개변수를 다음과 같이 설정하십시오.
      • wal_level = logical
      • max_replication_slots = 1
      • max_wal_senders = 1
      • track_commit_timestamp = on

      주:

      Oracle GoldenGate 호스트의 접속을 허용하도록 클라이언트 인증이 설정되도록 /var/lib/pgsql/data/pg_hba.conf를 구성합니다. 예를 들어 다음을 추가합니다.
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      자세한 내용은 The pg_hba.conf File을 참조하십시오.
    4. PostgreSQL 서버를 재시작합니다.
      sudo systemctl restart postgresql.service
  3. Oracle Cloud Compute를 사용하여 PostgreSQL을 호스트하는 경우 포트 5432를 엽니다.
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. VCN의 보안 목록에서 포트 5432를 엽니다.
  5. PostgreSQL에 접속.
    > sudo su - postgres
    > psql

    주:

    또는 위 예가 작동하지 않을 경우 sudo su - postgres psql를 입력할 수 있습니다.
  6. PostgreSQL를 설정합니다.
    1. seedSRCOCIGGLL_PostgreSQL.sql를 다운로드하고 실행하여 데이터베이스를 설정하고 샘플 데이터를 로드합니다.
    2. 다음 명령을 실행하여 사용자를 설정합니다. <password>를 실제 암호로 바꿔야 합니다.
      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

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

  1. 소스 PostgreSQL 데이터베이스에 대한 배포를 생성합니다.
  2. 빅데이터 배치를 생성하여 Google BigQuery 대상에 대해 배치합니다.
  3. 대상 Google BigQuery에 대한 연결을 만듭니다.
  4. 소스 PostgreSQL 데이터베이스에 대한 접속을 생성합니다.
    1. 유형에 대해 PostgreSQL 서버를 선택했는지 확인합니다.
    2. 데이터베이스 이름ociggll을 입력합니다.
    3. 호스트에 대해 PostgreSQL가 실행되는 컴퓨트 인스턴스의 퍼블릭 IP를 입력합니다.
    4. 포트5432을 입력합니다.
    5. 사용자 이름에 대해 ggadmin을 입력합니다.
    6. 비밀번호에 비밀번호를 입력합니다.
    7. 보안 프로토콜의 경우 일반을 선택합니다.
  5. GoldenGate에 대한 접속을 생성한 다음 이 접속을 소스 PostgreSQL 배치에 지정합니다.
  6. 소스 PostgreSQL 배치에 소스 접속을 지정합니다.
  7. 대상 Big Data 배치에 대상 접속을 지정합니다.

작업 2: 보완 로깅 활성화

보완 로깅을 사용으로 설정하려면 다음과 같이 하십시오.
  1. PostgreSQL GoldenGate 배치 콘솔을 실행합니다.
    1. [배치] 페이지에서 PostgreSQL 배치를 선택하여 세부정보를 봅니다.
    2. PostgreSQL 배치 세부정보 페이지에서 콘솔 실행을 누릅니다.
    3. 배치 콘솔 사인인 페이지에서 작업 1, 단계 1에 제공된 GoldenGate 관리 인증서를 입력합니다.
  2. GoldenGate 23ai에서 왼쪽 탐색의 DB 접속, 소스 PostgreSQL 데이터베이스, Trandata를 차례로 누릅니다.
  3. TRANDATA 페이지의 TRANDATA 정보 옆에 있는 TRANDATA 추가(더하기 아이콘)를 누릅니다.
  4. Trandata 패널에서 스키마 이름src_ociggll.*을 입력한 다음 제출을 누릅니다.

    주:

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

작업 3: Extract 생성

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

    Extracts가 시작되는 것을 확인할 수 있는 Extracts 페이지로 돌아갑니다.

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

Change Data Capture에 대한 Distribution Path을 생성하려면 다음을 완료하십시오.

  1. Oracle Cloud 콘솔의 [배치] 페이지에서 대상 빅데이터 배치를 선택합니다.
  2. 배포 세부정보 페이지에서 콘솔 실행을 누릅니다. 작업 1, 단계 2에서 생성된 관리 사용자 세부정보로 로그인합니다.
  3. IAM 인증서 저장소를 사용하는 경우 Distribution Path 생성 단계로 이동합니다. GoldenGate 인증서 저장소를 사용하는 경우 소스 GoldenGate에서 대상 GoldenGate에 접속하는 데 사용할 사용자를 생성합니다.
    1. 탐색 메뉴에서 사용자 관리를 누릅니다.
    2. 새 사용자 추가(더하기 아이콘)를 누르고 다음과 같이 필드에 정보를 입력한 다음 제출을 누릅니다.
      • 사용자 이름에 대해 ggsnet을 입력합니다.
      • 역할에 대해 연산자를 선택합니다.
      • 확인을 위해 비밀번호를 두 번 입력합니다.
  4. 소스 PostgreSQL 배치 콘솔에서 이전 단계에서 생성한 사용자에 대한 경로 접속을 생성합니다.
    1. 탐색 메뉴에서 경로 접속을 누릅니다.
    2. Add Path Connection(더하기 아이콘)을 누르고 다음과 같이 필드에 정보를 입력한 다음 Submit을 누릅니다.
      • Credential Alias에 dpuser을 입력합니다.
      • 사용자 ID에 ggsnet를 입력합니다.
      • Password에 이전 단계에서 사용한 것과 동일한 암호를 입력합니다.
  5. Distribution Path 추가를 누릅니다.
  6. 다음과 같이 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. 대상 인증 방법에 대해 UserID 별칭을 선택합니다.
      6. 도메인에 도메인 이름을 입력합니다.
      7. 별칭에서 별칭을 입력합니다.
    4. 경로 생성 및 실행을 누릅니다.
  7. 대상 Big Data 배치 콘솔에서 Receiver Service을 누르고 생성된 Receiver Path를 검토합니다.

작업 5: Replicat 추가

  1. 대상 Big Data 배치 콘솔 탐색 메뉴에서 Replicats을 누른 다음 Replicat 추가(더하기 아이콘)를 누릅니다.
  2. Replicats 페이지에서 Replicat 추가(더하기 아이콘)를 누른 다음 다음과 같이 Replicat 추가 양식을 완성합니다.
    1. Replicat 정보 페이지에서 다음을 수행합니다.
      1. Replicat 유형에 대해 Parallel 또는 Coordinated Replicat을 선택합니다.
      2. 프로세스 이름에서 RCDC과 같은 이름을 입력합니다.
      3. 다음을 누르십시오.
    2. Replicat 옵션 페이지에서 다음을 수행합니다.
      1. Replicat 추적 이름에 태스크 3의 추적 이름(C1)을 입력합니다.
      2. 대상 인증서의 경우 Google Big Query 접속에 대해 도메인별칭을 선택합니다.
      3. 사용 가능한 스테이징 위치의 경우 드롭다운에서 Google Cloud Storage를 선택합니다.
      4. 스테이징 별칭을 통해의 경우 드롭다운에서 Google Cloud Storage 연결을 선택합니다.
    3. Parameter File 페이지에서 다음 매핑을 추가하고 Next를 누릅니다.
      MAP *.*, TARGET *.*;
    4. [속성 파일] 페이지에서 필요한 속성을 필요에 따라 구성합니다. #TODO로 표시된 항목을 찾은 다음 다음을 누릅니다.
      수정을 고려할 일부 등록 정보는 다음과 같습니다.
      • gg.eventhandler.gcs.bucketMappingTemplate: 스테이지 스토리지로 사용할 버킷의 이름을 제공합니다.
  3. 생성 및 실행을 누릅니다.

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

작업 6: Change Data Capture 확인

소스 PostgreSQL 데이터베이스에 대한 업데이트를 수행하여 Google BigQuery에 대한 복제를 확인합니다.
  1. 다음 스크립트를 실행하여 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 배치 콘솔에서 Extract 이름(EDCD)을 선택한 다음 통계를 누릅니다. src_ociggll.src_city에 10개의 삽입이 있는지 확인합니다.

    주:

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