이 경로를 직접 따라 해도 되고, 스크립트로 자동화해도 되며, AI agent에 맡겨도 됩니다. 콘솔 버전은 Cloud UI 보기로 전환하세요.이 페이지에서는 ClickHouse CLI (ClickHouse CLI를 설치합니다:또는 서비스를 생성한 후 응답을 저장하십시오. 비밀번호는 한 번만 표시됩니다:응답에는 서비스 ID, 호스트명, 그리고 바로 사용할 수 있는 connection string이 포함됩니다:이 가이드의 나머지 부분에 필요한 정보를 추출합니다:비밀번호를 분실한 경우 Provisioning에는 몇 분 정도 소요됩니다. 상태가 두 개의 테이블을 생성하고 NVMe 스토리지 덕분에 같은 리전에 서비스를 생성하고 응답을 저장하십시오. 비밀번호는 생성 시 응답에만 표시됩니다:실행 중이 될 때까지 기다리세요; ClickPipe에는 실행 중인 대상이 필요합니다:대신 기존 서비스를 사용하려면 ClickHouse 서비스에서 Managed Postgres 호스트명을 대상으로 Postgres CDC ClickPipe를 생성하세요. 이 파이프는 기존 행을 복사한 후, 이후 발생하는 변경 사항도 반영하여 ClickHouse와 계속 동기화합니다:참고:파이프는 CLI에서 ClickHouse 서비스에 직접 SQL을 실행합니다. 처음 호출하면 Query API 엔드포인트와 서비스 범위의 API Key가 자동으로 프로비저닝됩니다:Postgres에 새로 기록되는 데이터는 지속적으로 복제됩니다. 행을 삽입한 다음 개수가 1,000,001이 될 때까지 폴링하세요(일반적으로 1분 이내).Heredoc은 의도적으로 따옴표로 감싸지 않았으므로, SQL이 Postgres에 전달되기 전에 셸이 먼저 ClickPipe를 삭제한 다음 Postgres 서비스를 삭제하십시오. 서비스를 삭제하면 해당 서비스의 모든 데이터가 영구적으로 삭제됩니다:실행 중인 ClickHouse 서비스는 바로 삭제할 수 없습니다. 먼저 중지하고
clickhousectl)와 psql을 사용해 명령줄에서 ClickHouse Managed Postgres를 Provisioning하고, 데이터를 적재하고, 이를 ClickHouse로 복제한 뒤 쿼리하는 방법을 설명합니다. 모든 명령은 비대화형이며, clickhousectl은 --json 옵션을 사용하면 JSON을 출력합니다.사전 요구 사항
psql(PostgreSQL 클라이언트 도구, macOS에서는 brew install libpq)와 jq도 필요합니다.쓰기 작업(생성, 삭제)에는 API Key 인증이 필요하고, OAuth 로그인은 읽기 전용입니다:CLICKHOUSE_CLOUD_API_KEY 및 CLICKHOUSE_CLOUD_API_SECRET 환경 변수를 설정하십시오. clickhousectl cloud auth status로 확인했을 때 범위가 read/write인 항목이 표시되어야 합니다.Part 1: Postgres 생성 및 데이터 적재
Postgres 서비스 생성
clickhousectl cloud postgres reset-password $PG_ID --generate 명령으로 새 비밀번호를 생성하세요.서비스 Provisioning이 완료될 때까지 기다리기
running이 될 때까지 폴링하세요:샘플 데이터 로드
psql을 사용해 이벤트 100만 건을 삽입합니다:c6gd.large(가장 작은 사양)에서는 100만 행 삽입이 약 7초 만에 완료됩니다. 쿼리로 확인하세요. 데이터는 random()으로 생성되므로 실행할 때마다 행 수가 달라집니다:파트 2: ClickHouse로 복제하기
ClickHouse 서비스 생성
clickhousectl cloud service list에서 CH_ID를 설정하고, pg_clickhouse 단계에 필요한 해당 서비스의 default 사용자 password를 CH_PASSWORD로 설정하십시오.테이블을 ClickHouse로 복제
- 복제된 테이블(Replicated Tables)은
--table-mapping대상 이름으로 ClickHouse 서비스의default데이터베이스에 생성됩니다 - publication과 replication slot은 자동으로 생성되며, publication은 매핑된 테이블 범위로 설정됩니다. 직접 관리하는 publication을 사용하려면
--publication-name을 전달하세요 - Postgres의 직접 호스트명을 사용하세요. PgBouncer를 통한 복제는 지원되지 않습니다
파이프가 Running 상태가 될 때까지 기다리기
Running 상태가 되기 전에 Provisioning, Setup, 그리고 (테이블이 큰 경우) Snapshot 단계를 거칩니다. 서비스에서 첫 번째 파이프가 Running 상태에 도달하는 데는 약 4분이 걸립니다. Failed와 InternalError는 최종 상태입니다:ClickHouse에서 복제된 데이터 쿼리하기
Postgres에서 ClickHouse 쿼리하기
pg_clickhouse 확장 기능을 사용하면 Postgres를 트랜잭션 데이터와 분석 데이터를 모두 아우르는 통합 쿼리 계층으로 사용할 수 있습니다. 먼저 ClickHouse HTTPS 호스트명을 확인한 다음, psql에서 확장 기능을 설정하십시오:$CH_HOST와 $CH_PASSWORD를 치환합니다. 이제 복제된 테이블이 organization 스키마의 외부 테이블(foreign table)로 표시되며, 해당 테이블에 대한 쿼리는 ClickHouse에서 실행됩니다.이 데이터셋을 사용해 c6gd.large에서 측정한 결과, 분석 쿼리는 외부 테이블을 통해 실행할 때 6~9배 더 빠르게 실행됩니다(예: 5개 집계 GROUP BY는 ClickHouse 경유 시 176ms, 로컬에서는 1,133ms이며, 집계가 포함된 JOIN은 298ms 대 2,764ms입니다).정리
stopped 상태가 될 때까지 기다린 다음 삭제하세요: