Skip to main content
이 경로를 직접 따라 해도 되고, 스크립트로 자동화해도 되며, AI agent에 맡겨도 됩니다. 콘솔 버전은 Cloud UI 보기로 전환하세요.이 페이지에서는 ClickHouse CLI (clickhousectl)와 psql을 사용해 명령줄에서 ClickHouse Managed Postgres를 Provisioning하고, 데이터를 적재하고, 이를 ClickHouse로 복제한 뒤 쿼리하는 방법을 설명합니다. 모든 명령은 비대화형이며, clickhousectl--json 옵션을 사용하면 JSON을 출력합니다.

사전 요구 사항

ClickHouse CLI를 설치합니다:
psql(PostgreSQL 클라이언트 도구, macOS에서는 brew install libpq)와 jq도 필요합니다.쓰기 작업(생성, 삭제)에는 API Key 인증이 필요하고, OAuth 로그인은 읽기 전용입니다:
또는 CLICKHOUSE_CLOUD_API_KEYCLICKHOUSE_CLOUD_API_SECRET 환경 변수를 설정하십시오. clickhousectl cloud auth status로 확인했을 때 범위가 read/write인 항목이 표시되어야 합니다.

Part 1: Postgres 생성 및 데이터 적재

Postgres 서비스 생성

서비스를 생성한 후 응답을 저장하십시오. 비밀번호는 한 번만 표시됩니다:
응답에는 서비스 ID, 호스트명, 그리고 바로 사용할 수 있는 connection string이 포함됩니다:
이 가이드의 나머지 부분에 필요한 정보를 추출합니다:
비밀번호를 분실한 경우 clickhousectl cloud postgres reset-password $PG_ID --generate 명령으로 새 비밀번호를 생성하세요.

서비스 Provisioning이 완료될 때까지 기다리기

Provisioning에는 몇 분 정도 소요됩니다. 상태가 running이 될 때까지 폴링하세요:

샘플 데이터 로드

두 개의 테이블을 생성하고 psql을 사용해 이벤트 100만 건을 삽입합니다:
NVMe 스토리지 덕분에 c6gd.large(가장 작은 사양)에서는 100만 행 삽입이 약 7초 만에 완료됩니다. 쿼리로 확인하세요. 데이터는 random()으로 생성되므로 실행할 때마다 행 수가 달라집니다:

파트 2: ClickHouse로 복제하기

ClickHouse 서비스 생성

같은 리전에 서비스를 생성하고 응답을 저장하십시오. 비밀번호는 생성 시 응답에만 표시됩니다:
실행 중이 될 때까지 기다리세요; ClickPipe에는 실행 중인 대상이 필요합니다:
대신 기존 서비스를 사용하려면 clickhousectl cloud service list에서 CH_ID를 설정하고, pg_clickhouse 단계에 필요한 해당 서비스의 default 사용자 password를 CH_PASSWORD로 설정하십시오.

테이블을 ClickHouse로 복제

ClickHouse 서비스에서 Managed Postgres 호스트명을 대상으로 Postgres CDC ClickPipe를 생성하세요. 이 파이프는 기존 행을 복사한 후, 이후 발생하는 변경 사항도 반영하여 ClickHouse와 계속 동기화합니다:
참고:
  • 복제된 테이블(Replicated Tables)은 --table-mapping 대상 이름으로 ClickHouse 서비스의 default 데이터베이스에 생성됩니다
  • publication과 replication slot은 자동으로 생성되며, publication은 매핑된 테이블 범위로 설정됩니다. 직접 관리하는 publication을 사용하려면 --publication-name을 전달하세요
  • Postgres의 직접 호스트명을 사용하세요. PgBouncer를 통한 복제는 지원되지 않습니다

파이프가 Running 상태가 될 때까지 기다리기

파이프는 Running 상태가 되기 전에 Provisioning, Setup, 그리고 (테이블이 큰 경우) Snapshot 단계를 거칩니다. 서비스에서 첫 번째 파이프가 Running 상태에 도달하는 데는 약 4분이 걸립니다. FailedInternalError는 최종 상태입니다:

ClickHouse에서 복제된 데이터 쿼리하기

CLI에서 ClickHouse 서비스에 직접 SQL을 실행합니다. 처음 호출하면 Query API 엔드포인트와 서비스 범위의 API Key가 자동으로 프로비저닝됩니다:
Postgres에 새로 기록되는 데이터는 지속적으로 복제됩니다. 행을 삽입한 다음 개수가 1,000,001이 될 때까지 폴링하세요(일반적으로 1분 이내).

Postgres에서 ClickHouse 쿼리하기

pg_clickhouse 확장 기능을 사용하면 Postgres를 트랜잭션 데이터와 분석 데이터를 모두 아우르는 통합 쿼리 계층으로 사용할 수 있습니다. 먼저 ClickHouse HTTPS 호스트명을 확인한 다음, psql에서 확장 기능을 설정하십시오:
Heredoc은 의도적으로 따옴표로 감싸지 않았으므로, SQL이 Postgres에 전달되기 전에 셸이 $CH_HOST$CH_PASSWORD를 치환합니다. 이제 복제된 테이블이 organization 스키마의 외부 테이블(foreign table)로 표시되며, 해당 테이블에 대한 쿼리는 ClickHouse에서 실행됩니다.이 데이터셋을 사용해 c6gd.large에서 측정한 결과, 분석 쿼리는 외부 테이블을 통해 실행할 때 6~9배 더 빠르게 실행됩니다(예: 5개 집계 GROUP BY는 ClickHouse 경유 시 176ms, 로컬에서는 1,133ms이며, 집계가 포함된 JOIN은 298ms 대 2,764ms입니다).

정리

먼저 ClickPipe를 삭제한 다음 Postgres 서비스를 삭제하십시오. 서비스를 삭제하면 해당 서비스의 모든 데이터가 영구적으로 삭제됩니다:
실행 중인 ClickHouse 서비스는 바로 삭제할 수 없습니다. 먼저 중지하고 stopped 상태가 될 때까지 기다린 다음 삭제하세요:
마지막 수정일 2026년 7월 24일