SELECT 및 INSERT 쿼리를 수행할 수 있습니다.
구문
인수
| 인수 | 설명 |
|---|---|
host:port | PostgreSQL 서버의 주소입니다. |
database | 원격 데이터베이스 이름입니다. |
table | 원격 테이블 이름입니다. |
user | PostgreSQL 사용자 이름입니다. |
password | 사용자 비밀번호입니다. |
schema | 기본 스키마가 아닌 테이블 스키마입니다. 선택 사항입니다. |
on_conflict | 충돌 해결 전략입니다. 예시: ON CONFLICT DO NOTHING. 선택 사항입니다. |
host와 port는 별도로 지정해야 합니다. 프로덕션 환경에서는 이 방식을 권장합니다.
반환 값
컬럼 이름 목록이 포함된 테이블 이름과 테이블 함수
postgresql(...)를 INSERT 쿼리에서 구분하려면 FUNCTION 또는 TABLE FUNCTION 키워드를 사용해야 합니다. 아래 예시를 참조하십시오.구현 세부 사항
SELECT 쿼리는 각 SELECT 쿼리 후 커밋되는 읽기 전용 PostgreSQL 트랜잭션 내에서 COPY (SELECT ...) TO STDOUT 형태로 실행됩니다.
=, !=, >, >=, <, <=, IN과 같은 단순한 WHERE 절은 PostgreSQL 서버에서 실행됩니다.
모든 조인, 집계, 정렬, IN [ array ] 조건 및 LIMIT 샘플링 제약은 PostgreSQL 쿼리가 완료된 후에만 ClickHouse에서 실행됩니다.
PostgreSQL 측의 INSERT 쿼리는 각 INSERT 문 후 자동 커밋되는 PostgreSQL 트랜잭션 내에서 COPY "table_name" (field1, field2, ... fieldN) FROM STDIN 형태로 실행됩니다.
PostgreSQL 배열 타입은 ClickHouse 배열로 변환됩니다.
주의하십시오. PostgreSQL에서는 Integer[]와 같은 배열 데이터 타입 컬럼에 행마다 서로 다른 차원의 배열이 들어갈 수 있지만, ClickHouse에서는 모든 행에서 동일한 차원의 다차원 배열만 허용됩니다.
|로 구분해 나열해야 합니다. 예시는 다음과 같습니다:
0입니다.
예시
PeerDB를 사용해 Postgres 데이터를 복제하거나 마이그레이션하기
테이블 함수 외에도 ClickHouse의 PeerDB를 사용하면 Postgres에서 ClickHouse로 이어지는 연속적인 데이터 파이프라인을 언제든지 설정할 수 있습니다. PeerDB는 CDC(Change Data Capture)를 사용해 Postgres에서 ClickHouse로 데이터를 복제하도록 특별히 설계된 도구입니다.