사전 요구 사항
- 원본 PostgreSQL 데이터베이스에 액세스할 수 있어야 합니다.
- 로컬 머신에
psql,pg_dump,pg_restore가 설치되어 있어야 합니다. 이는 대상 데이터베이스에 빈 테이블을 만들기 위해 필요합니다. 일반적으로 PostgreSQL 설치 시 함께 제공됩니다. 설치되어 있지 않다면 PostgreSQL 공식 웹사이트에서 다운로드할 수 있습니다. - 원본 데이터베이스는 ClickHouse Managed Postgres에서 접근할 수 있어야 합니다. 필요한 방화벽 규칙 또는 Security Group 설정이 이 연결을 허용하는지 확인하십시오. Managed Postgres 인스턴스의 egress IP는 다음을 실행해 확인할 수 있습니다:
설정
- 원본 데이터베이스에서
wal_level이logical로 설정되어 있어야 합니다. - 원본 데이터베이스에서
max_replication_slots가 최소1로 설정되어 있어야 합니다. - RDS(이 가이드에서는 예시로 사용)에서는 parameter group에
rds.logical_replication이1로 설정되어 있는지 확인해야 합니다. - 원본 데이터베이스 사용자는
REPLICATION권한을 가지고 있어야 합니다. RDS의 경우 다음을 실행하십시오: - 대상 데이터베이스에 사용할 역할(Role)에는 대상 데이터베이스 객체에 대한 쓰기 권한이 있어야 합니다:
소스 데이터베이스의 스키마만 덤프하기
pg_dump를 사용해 소스 데이터베이스의 스키마만 포함된 덤프를 만들 수 있습니다:
<user>,<password>,<host>,<port>,<database>를 소스 데이터베이스 자격 증명으로 바꾸십시오.-s는 스키마만 덤프하도록 지정합니다.--format directory는 덤프를 디렉터리 포맷으로 생성하도록 지정하며, 이 포맷은pg_restore에 적합합니다.-f rds-dump는 덤프 파일의 출력 디렉터리를 지정합니다. 이 디렉터리는 자동으로 생성되므로 미리 존재하지 않아야 합니다.
events와 users 두 개입니다. events에는 100만 개의 행이 있고, users에는 1천 개의 행이 있습니다.
Managed Postgres 인스턴스 생성
ClickHouse Managed Postgres에 스키마 복원하기
pg_restore를 사용해 ClickHouse Managed Postgres 인스턴스에 복원할 수 있습니다:
<user>,<password>,<host>,<port>,<database>를 대상 ClickHouse Managed Postgres 데이터베이스의 자격 증명으로 바꾸십시오.--verbose는 복원 과정에서 자세한 출력을 제공합니다. 이 명령은 데이터는 제외한 채 대상 데이터베이스에 모든 테이블, 인덱스, 뷰 및 기타 스키마 객체를 생성합니다.
논리적 복제 설정
원본 데이터베이스에 publication 생성하기
테이블이 많은 경우 FOR ALL TABLES publication을 생성하면 네트워크 오버헤드가 발생할 수 있습니다. 복제할 테이블만 지정하는 것이 좋습니다.
대상 ClickHouse Managed Postgres 데이터베이스에서 subscription 만들기
주의 사항 및 고려 사항
- 논리적 복제는 데이터 변경(INSERT, UPDATE, DELETE)만 복제합니다. 스키마 변경(예: ALTER TABLE)은 별도로 처리해야 합니다.
- 복제 중단을 방지하려면 원본 데이터베이스와 대상 데이터베이스 간 네트워크 연결이 안정적인지 확인하세요.
- 대상 데이터베이스가 원본 데이터베이스의 변경 사항을 제때 반영하고 있는지 확인하려면 복제 지연을 모니터링하세요. 원본 데이터베이스에서
max_slot_wal_keep_size를 적절한 값으로 설정하면 계속 커지는 replication slot을 관리하고 과도한 디스크 공간 사용을 방지하는 데 도움이 됩니다. - 사용 사례에 따라 복제 프로세스에 대한 모니터링 및 알림을 설정하는 것이 좋습니다.
다음 단계
pg_dump와 pg_restore를 사용하여 PostgreSQL 데이터베이스를 ClickHouse Managed Postgres로 성공적으로 마이그레이션했습니다. 이제 Managed Postgres의 기능과 ClickHouse와의 통합을 살펴볼 준비가 되었습니다. 시작에 도움이 되는 10분 분량의 빠른 시작 가이드는 다음과 같습니다.