- PostgreSQL 테이블에서 읽기 위해
PostgreSQL테이블 엔진을 사용하는 방법 - PostgreSQL의 데이터베이스를 ClickHouse의 데이터베이스와 동기화하기 위해 experimental
MaterializedPostgreSQL데이터베이스 엔진을 사용하는 방법
PostgreSQL 테이블 엔진 사용하기
PostgreSQL 테이블 엔진을 사용하면 ClickHouse에서 원격 PostgreSQL 서버에 저장된 데이터에 대해 SELECT 및 INSERT 작업을 수행할 수 있습니다.
이 문서에서는 하나의 테이블을 사용해 통합하는 기본 방법을 설명합니다.
1. PostgreSQL 설정
postgresql.conf에 PostgreSQL이 네트워크 인터페이스를 통해 연결을 수신하도록 다음 항목을 추가하십시오:
- ClickHouse에서 접속할 사용자를 생성합니다. 데모용으로, 이 예시에서는 슈퍼유저 권한을 모두 부여합니다.
- PostgreSQL에서 새 데이터베이스를 생성하세요:
- 새 테이블을 생성합니다:
- 테스트를 위해 몇 개의 행을 추가해 보겠습니다:
- 복제를 위해 새 사용자로 새 데이터베이스에 연결할 수 있도록 PostgreSQL을 구성하려면
pg_hba.conf파일에 다음 항목을 추가하십시오. 주소 줄은 PostgreSQL 서버의 서브넷 또는 IP 주소로 업데이트하십시오:
pg_hba.conf구성을 다시 불러옵니다(버전에 따라 이 명령을 조정하십시오):
- 새
clickhouse_user로 로그인할 수 있는지 확인하세요:
이 기능을 ClickHouse Cloud에서 사용하는 경우, ClickHouse Cloud IP 주소에서 PostgreSQL 인스턴스에 액세스할 수 있도록 허용해야 할 수 있습니다.
아웃바운드 트래픽에 대한 자세한 내용은 ClickHouse Cloud Endpoints API에서 확인하십시오.
2. ClickHouse에서 테이블 정의하기
clickhouse-client에 접속하세요:
- 새 데이터베이스를 생성합니다:
PostgreSQL테이블 엔진을 사용하는 테이블을 생성합니다:
| 매개변수 | 설명 | 예시 |
|---|---|---|
| host:port | 호스트명 또는 IP 주소와 포트 | postgres-host.domain.com:5432 |
| database | PostgreSQL 데이터베이스 이름 | db_in_psg |
| user | PostgreSQL에 연결할 사용자 이름 | clickhouse_user |
| password | PostgreSQL에 연결할 비밀번호 | ClickHouse_123 |
전체 매개변수 목록은 PostgreSQL 테이블 엔진 문서 페이지에서 확인하십시오.
3 통합 테스트
- ClickHouse에서 초기 행을 조회합니다:
- 다시 PostgreSQL로 돌아가 테이블에 행 2개를 추가합니다:
- 새로 추가된 2개의 행이 ClickHouse 테이블에 표시되어야 합니다:
- ClickHouse 테이블에 행을 추가했을 때 어떤 일이 발생하는지 살펴보겠습니다:
- ClickHouse에 추가된 행이 PostgreSQL 테이블에 표시됩니다:
PostrgeSQL 테이블 엔진을 사용해 PostgreSQL과 ClickHouse를 기본적으로 통합하는 방법을 설명했습니다.
스키마 지정, 일부 컬럼만 반환, 여러 레플리카 연결과 같은 추가 기능은 PostgreSQL 테이블 엔진 문서 페이지에서 확인하십시오. 또한 ClickHouse and PostgreSQL - a match made in data heaven - part 1 블로그도 참고하십시오.
MaterializedPostgreSQL 데이터베이스 엔진 사용
psql)와 ClickHouse CLI (clickhouse-client)를 사용합니다. PostgreSQL 서버는 Linux에 설치되어 있습니다. 아래 내용은 PostgreSQL 데이터베이스를 새로 테스트 설치한 경우의 최소 설정입니다.
1. PostgreSQL에서
postgresql.conf에서 최소 리스닝 수준, 복제용 WAL 수준, 복제 슬롯을 설정합니다:
logical WAL 수준과 2개의 replication slot이 필요합니다
- 관리자 계정을 사용해 ClickHouse에서 접속할 사용자를 생성합니다:
- 새 데이터베이스를 생성합니다:
psql에서 새 데이터베이스에 접속하세요:
- 새 테이블을 만드세요:
- 초기 행 추가:
- 복제를 위해 새 사용자가 새 데이터베이스에 연결할 수 있도록 PostgreSQL을 구성합니다. 아래는
pg_hba.conf파일에 추가할 최소 항목입니다:
- 다음과 같이
pg_hba.conf구성을 다시 로드합니다(버전에 맞게 조정하십시오):
- 새
clickhouse_user로 로그인이 되는지 확인합니다:
2. ClickHouse에서
- ClickHouse CLI에 접속합니다
- 데이터베이스 엔진에서 PostgreSQL 실험 기능을 활성화하세요:
- 복제할 새 데이터베이스를 생성하고 초기 테이블을 정의합니다:
| 매개변수 | Description | example |
|---|---|---|
| host:port | 호스트명 또는 IP 주소와 포트 | postgres-host.domain.com:5432 |
| database | PostgreSQL 데이터베이스 이름 | db1 |
| user | PostgreSQL에 연결할 사용자 이름 | clickhouse_user |
| password | PostgreSQL에 연결할 비밀번호 | ClickHouse_123 |
| settings | 엔진의 추가 설정 | materialized_postgresql_tables_list = ‘table1’ |
PostgreSQL 데이터베이스 엔진에 대한 전체 가이드는 https://clickhouse.com/docs/engines/database-engines/materialized-postgresql/#settings 를 참조하십시오.
- 초기 테이블에 데이터가 있는지 확인합니다:
3. 기본 복제 테스트
- PostgreSQL에서 새 행을 추가합니다:
- ClickHouse에서 새 행이 보이는지 확인합니다:
4. 요약
고급 옵션에서 사용할 수 있는 추가 기능은 참고 문서에서 확인하십시오.