ClickHouse Cloud를 사용해 Managed Postgres로 마이그레이션
ClickHouse Cloud에는 외부 PostgreSQL 데이터베이스를 Managed Postgres 서비스로 마이그레이션하는 기본 제공 가져오기 마법사가 포함되어 있습니다. 이 마법사는 5단계 안내를 통해 소스 연결, schema 내보내기 및 가져오기, 복제 설정, 테이블 선택을 처리합니다.
사전 요구 사항
- 복제 권한이 있는 사용자 계정으로 소스 PostgreSQL 데이터베이스에 접근할 수 있어야 합니다.
- 마이그레이션 대상으로 사용할 ClickHouse Managed Postgres 서비스가 있어야 합니다. 아직 없다면 quickstart를 참조하십시오.
- 로컬 머신에
pg_dump와psql이 설치되어 있어야 합니다. 두 도구 모두 표준 PostgreSQL 클라이언트 도구에 포함되어 있습니다.
마이그레이션 전에 고려할 사항
- DDL 전파: 지속적 복제(CDC)는 DML 작업과
ADD COLUMN만 캡처합니다.DROP COLUMN,ALTER COLUMN과 같은 다른 DDL 변경은 전파되지 않으므로 대상에 수동으로 적용해야 합니다. - 외래 키 제약 조건: 외래 키 검사로 인해 수집이 차단되지 않도록 대상 역할에 일시적으로
session_replication_role = replica를 설정합니다. 이 내용은 아래 3단계에서 다룹니다.
1단계: 원본 데이터베이스에 연결
ClickHouse Cloud 콘솔을 열고 Managed Postgres 서비스를 선택합니다.

왼쪽 사이드바에서 Data sources를 클릭합니다.

Start import를 클릭합니다.

원본 PostgreSQL 데이터베이스의 연결 정보를 입력합니다. 호스트, 포트, 사용자 이름, 비밀번호, 데이터베이스 이름을 입력합니다. 원본 데이터베이스에서 요구하는 경우 TLS를 활성화합니다.
원본 데이터베이스에 대한 프라이빗 연결이 필요하면 SSH tunneling을 선택하고 필요한 SSH 정보를 입력할 수 있습니다. 이렇게 하면 공개적으로 액세스할 수 없는 데이터베이스에도 마이그레이션이 안전하게 연결할 수 있습니다.
수집 방식을 선택합니다:
- 초기 적재 + CDC — 기존 데이터를 복사한 다음, 이후 발생하는 변경 사항이 대상에 계속 동기화되도록 유지합니다.
- 초기 적재 only — 1회성 복사이며, 이후 복제는 수행하지 않습니다.
- CDC only — 초기 복사는 건너뛰고 이 시점 이후의 새로운 변경 사항만 복제합니다.

Next를 클릭합니다.
2단계: 데이터베이스 schema 내보내기
마법사에는 소스 연결 세부 정보가 미리 입력된 pg_dump 명령어가 표시됩니다. 터미널에서 이 명령어를 실행하세요:

이 명령을 실행하면 현재 디렉터리에 pg.sql 파일이 생성됩니다.

Next를 클릭하세요.
Step 3: Managed Postgres 서비스로 schema 가져오기
드롭다운에서 대상 데이터베이스를 선택하거나, 새 데이터베이스 만들기를 클릭하여 새로 생성합니다.
마법사에는 Managed Postgres 서비스에 schema 덤프를 적용하는 psql 명령어가 표시됩니다. 터미널에서 실행하세요:


schema를 적용한 후에는 외래 키 제약 조건이 수집을 막지 않도록 대상 역할에서 session_replication_role을 replica로 설정합니다:

다음을 클릭하세요.
4단계: 수집 설정 구성
논리 복제에 사용할 publication을 지정합니다. 비워 두면 publication이 자동으로 생성됩니다.
처리량을 조정하려면 고급 복제 설정을 펼치십시오:
| 설정 | 기본값 | 설명 |
|---|---|---|
| 동기화 간격(초) | 10 | replication slot을 폴링하는 빈도 |
| 초기 적재용 병렬 스레드 | 4 | 대량 복사 단계에 사용하는 스레드 수 |
| 가져오기 배치 크기 | 100,000 | 복제 배치마다 가져오는 행 수 |
| 파티션당 스냅샷 행 수 | 100000 | 대용량 테이블 스냅샷의 파티션 크기 |
| 병렬 스냅샷 테이블 수 | 1 | 동시에 스냅샷하는 테이블 수 |

Next를 클릭하십시오.
5단계: 테이블 선택
복제할 테이블을 선택합니다. 테이블은 schema별로 그룹화되어 있습니다. 개별 테이블을 선택하거나 schema를 펼쳐 전체를 선택할 수 있습니다.

Create migration을 클릭합니다.
마이그레이션 모니터링
마이그레이션을 생성하면 Data sources에 Running 상태로 표시됩니다.

마이그레이션을 클릭하여 상세 보기를 여십시오. Tables 탭에는 처리된 행 수, 파티션, 파티션당 평균 시간을 포함해 각 테이블의 초기 적재 진행 상황이 표시됩니다. Metrics 탭에는 CDC가 시작되면 복제 지연과 처리량이 표시됩니다.

마이그레이션 후 작업
초기 적재가 완료되고, CDC를 사용하는 경우 복제 지연이 거의 0이 되면 다음을 수행하십시오:
행 수를 검증하십시오. 트래픽을 전환하기 전에 원본과 대상의 주요 테이블에서 행 수를 선별적으로 확인하십시오:
원본에 대한 쓰기를 중지하세요. 애플리케이션의 쓰기 작업을 일시 중지하십시오. 전환 중 읽기 전용 모드를 적용하려면:
복제가 모두 따라왔는지 확인합니다. 소스와 대상의 최신 행을 비교합니다:
제약 조건을 다시 활성화하고 복제 역할을 복원합니다. 가져오는 동안 미뤄 둔 인덱스, 제약 조건, 트리거를 모두 적용한 다음 대상 역할을 다시 설정합니다:
시퀀스를 재설정합니다. 각 테이블의 현재 최댓값에 맞게 시퀀스를 조정합니다:
애플리케이션 트래픽을 전환하세요. 읽기 및 쓰기 요청을 Managed Postgres 서비스로 전환하고 오류, 제약 조건 위반, 복제 상태를 모니터링하십시오.
정리하세요. 전환을 완료하고 새 서비스가 정상 상태임을 확인한 후 Data sources에서 마이그레이션을 삭제하십시오. CDC를 사용한 경우 리소스를 확보하려면 소스에서 replication slot을 삭제하십시오: