ClickHouse Managed Postgres는 NVMe 스토리지를 기반으로 하는 엔터프라이즈급 Postgres로, EBS와 같은 네트워크 연결 스토리지 대비 디스크 입출력에 병목이 있는 워크로드에서 최대 10배 빠른 성능을 제공합니다. 이 quickstart는 두 부분으로 구성됩니다:이벤트와 사용자용 샘플 테이블 2개를 생성합니다:이제 이벤트 100만 개를 삽입한 뒤 NVMe 속도를 확인해 보세요:사용자 1,000명을 삽입합니다:JSONB 필터링 및 날짜 범위를 활용한 쿼리:이벤트와 사용자 조인(join):
다음을 클릭하면 테이블 선택기로 이동합니다. 여기서 필요한 작업은 다음과 같습니다:다음으로, ClickHouse에 대한 외부 서버 연결을 생성합니다. 보안 연결에는 포트 이제 ClickHouse 테이블을 Postgres 스키마로 가져옵니다:쿼리 2: 국가 및 플랫폼별 사용자 참여도이 쿼리는 이벤트와 사용자를 조인하여 참여 메트릭을 계산합니다:성능 비교:
- 파트 1: NVMe Postgres 시작하기 및 성능 체험하기
- 파트 2: ClickHouse와 통합해 실시간 분석 시작하기
- NVMe 기반 고성능 관리형 Postgres 인스턴스를 생성하세요
- 100만 개의 샘플 이벤트를 적재하고 NVMe 속도를 직접 확인하세요
- 쿼리를 실행하고 낮은 지연 시간의 성능을 체험하세요
- 실시간 분석을 위해 데이터를 ClickHouse로 복제하세요
pg_clickhouse를 사용해 Postgres에서 ClickHouse를 직접 쿼리하세요
1부: NVMe Postgres 시작하기
데이터베이스 생성
새로운 관리형 Postgres 서비스를 생성하려면 Cloud Console의 서비스 목록에서 New service 버튼을 클릭하십시오. 이후 데이터베이스 유형으로 Postgres를 선택할 수 있습니다.데이터베이스 인스턴스의 이름을 입력하고 Create service를 클릭합니다. 개요(Overview) 페이지로 이동합니다.관리형 Postgres 인스턴스는 3~5분 내에 프로비저닝되어 사용 가능한 상태가 됩니다.데이터베이스에 연결하기
왼쪽 사이드바에서 Connect 버튼을 확인할 수 있습니다. 이 버튼을 클릭하면 접속 정보와 다양한 포맷의 연결 문자열(connection string)을 확인할 수 있습니다.psql 연결 문자열을 복사하여 데이터베이스에 연결하십시오. DBeaver와 같은 Postgres 호환 클라이언트나 애플리케이션 라이브러리를 사용할 수도 있습니다.NVMe 성능 직접 체험하기
NVMe 기반 성능이 실제로 어느 정도인지 확인해 보겠습니다. 먼저 쿼리 실행 시간을 측정할 수 있도록psql에서 타이밍을 활성화합니다:데이터에 쿼리 실행하기
이제 몇 가지 쿼리를 실행해 NVMe 스토리지에서 Postgres가 얼마나 빠르게 응답하는지 확인해 보겠습니다.이벤트 100만 개를 유형별로 집계합니다:Postgres가 준비되었습니다이제 트랜잭션 워크로드에 사용할 수 있는 완전한 고성능 Postgres 데이터베이스가 준비되었습니다.파트 2로 이동하여 네이티브 ClickHouse 통합이 분석 성능을 어떻게 크게 향상시키는지 확인해 보세요.
Part 2: ClickHouse로 실시간 분석 추가하기
Postgres는 트랜잭션 워크로드(OLTP)에 탁월하고, ClickHouse는 대규모 데이터셋에 대한 분석 쿼리(OLAP)를 위해 특별히 설계되었습니다. 두 시스템을 통합하면 양쪽의 장점을 모두 활용할 수 있습니다:- 애플리케이션의 트랜잭션 데이터(삽입, 업데이트, 단건 조회)용 Postgres
- 수십억 개의 행을 1초 이내에 분석할 수 있는 ClickHouse
ClickHouse 통합 설정
이제 Postgres에 테이블과 데이터가 준비되었으니, 분석을 위해 테이블을 ClickHouse로 복제해 보겠습니다. 사이드바에서 ClickHouse integration을 클릭한 다음, Replicate data in ClickHouse를 클릭하십시오.다음 양식에서 통합의 이름을 입력하고 데이터를 복제할 기존 ClickHouse 인스턴스를 선택할 수 있습니다. ClickHouse 인스턴스가 아직 없는 경우, 이 양식에서 직접 생성할 수 있습니다.중요계속하기 전에 선택한 ClickHouse 서비스가 Running 상태인지 확인하세요.
- 복제할 ClickHouse 데이터베이스를 선택합니다.
- public 스키마를 펼친 다음, 앞서 생성한 users 테이블과 events 테이블을 선택합니다.
- Replicate data to ClickHouse를 클릭합니다.
Postgres에서 ClickHouse 쿼리하기
pg_clickhouse 확장 기능을 사용하면 표준 SQL로 Postgres에서 직접 ClickHouse 데이터를 쿼리할 수 있습니다. 즉, 애플리케이션이 트랜잭션 데이터와 분석 데이터 모두에 대해 Postgres를 통합 쿼리 레이어로 활용할 수 있습니다. 자세한 내용은 전체 문서를 참조하십시오.확장 기능을 활성화합니다:8443과 http 드라이버를 사용하십시오:<clickhouse_cloud_host>를 ClickHouse 호스트명으로, <database_name>을 복제 설정 시 선택한 데이터베이스 이름으로 대체하십시오. 호스트명은 사이드바에서 Connect를 클릭하여 ClickHouse 서비스에서 확인할 수 있습니다.이제 Postgres 사용자를 ClickHouse 서비스 자격 증명에 매핑합니다:<database_name>을 서버 생성 시 사용한 데이터베이스 이름으로 대체하십시오.이제 Postgres 클라이언트에서 ClickHouse 테이블을 모두 확인할 수 있습니다:분석 기능을 직접 확인해 보세요
통합 페이지로 돌아가 확인해 보세요. 초기 복제가 완료된 것을 확인할 수 있습니다. 통합 이름을 클릭하면 세부 정보를 볼 수 있습니다.서비스 이름을 클릭하여 ClickHouse 콘솔을 열고 복제된 테이블을 확인하십시오.Postgres와 ClickHouse 성능 비교
이제 몇 가지 분석 쿼리를 실행하여 Postgres와 ClickHouse 간의 성능을 비교해 보겠습니다. 복제된 테이블은public_<table_name> 명명 규칙을 사용한다는 점에 유의하십시오.쿼리 1: 활동량 기준 상위 사용자이 쿼리는 여러 집계 결과를 사용해 가장 활발하게 활동하는 사용자를 찾습니다:정리
이 빠른 시작에서 생성한 리소스를 삭제하려면 다음을 실행하십시오:- 먼저 ClickHouse 서비스에서 ClickPipe 통합을 삭제하십시오
- 그런 다음 Cloud Console에서 Managed Postgres 인스턴스를 삭제하십시오