CREATE DICTIONARY ... SOURCE PostgreSQL
CREATE DICTIONARY ... SOURCE PostgreSQL
PostgreSQL 소스는 PostgreSQL 데이터베이스에서 딕셔너리 데이터를 로드해요.
출처: 문서
본문
설정 예시:
- DDL
- Configuration file
SOURCE(POSTGRESQL(
port 5432
host 'postgresql-hostname'
user 'postgres_user'
password 'postgres_password'
db 'db_name'
table 'table_name'
replica(host 'example01-1' port 5432 priority 1)
replica(host 'example01-2' port 5432 priority 2)
where 'id=10'
invalidate_query 'SQL_QUERY'
query 'SELECT id, value_1, value_2 FROM db_name.table_name'
))
<source>
<postgresql>
<host>postgresql-hostname</host>
<port>5432</port>
<user>clickhouse</user>
<password>qwerty</password>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
</postgresql>
</source>
설정 필드:
| Setting | Description |
|---|---|
host |
PostgreSQL 서버의 호스트예요. 모든 리플리카에 대해 지정하거나 각각 개별로(내부 <replica>) 지정할 수 있어요. |
port |
PostgreSQL 서버의 포트예요. 모든 리플리카에 대해 지정하거나 각각 개별로 지정할 수 있어요. |
user |
PostgreSQL 사용자의 이름이에요. 모든 리플리카에 대해 지정하거나 각각 개별로 지정할 수 있어요. |
password |
PostgreSQL 사용자의 비밀번호예요. 모든 리플리카에 대해 지정하거나 각각 개별로 지정할 수 있어요. |
replica |
리플리카 구성 섹션이에요. 여러 섹션이 있을 수 있어요. |
replica/host |
PostgreSQL 호스트예요. |
replica/port |
PostgreSQL 포트예요. |
replica/priority |
리플리카 우선순위예요. 연결을 시도할 때 ClickHouse는 우선순위 순서대로 리플리카를 순회합니다. 숫자가 낮을수록 우선순위가 높아요. |
db |
데이터베이스의 이름이에요. |
table |
테이블의 이름이에요. |
where |
선택 기준이에요. 조건의 문법은 PostgreSQL의 WHERE 절과 같아요. 예: id > 10 AND id < 20. 선택 사항이에요. |
invalidate_query |
딕셔너리 상태를 확인하는 쿼리예요. 선택 사항이에요. Refreshing dictionary data using LIFETIME 섹션에서 자세히 알아보세요. |
background_reconnect |
연결이 실패하면 백그라운드에서 리플리카에 다시 연결해요. 선택 사항이에요. |
query |
사용자 정의 쿼리예요. 선택 사항이에요. |
sslmode |
libpq로 전달되는 TLS/SSL 모드예요: disable, allow, prefer, require, verify-ca 또는 verify-full. 설정하지 않으면 libpq 기본값 prefer가 적용됩니다. 선택 사항이에요. |
sslrootcert_pem |
PostgreSQL 서버 인증서가 검증되는 CA 인증서의 내용이에요. 선택 사항이에요. |
sslcert_pem |
인증서 기반 인증을 위한 클라이언트 인증서의 내용이에요. 선택 사항이에요. |
sslkey_pem |
sslcert_pem에 속하는 개인 키의 내용이에요. 선택 사항이에요. |
sslrootcert, sslcert, sslkey |
서버의 파일 경로로 제공되는 동일한 자격 증명이에요. 서버 구성 파일 또는 거기에 정의된 named collection으로 정의된 딕셔너리에만 허용됩니다(아래 참조). 선택 사항이에요. |
table 또는 where 필드는 query 필드와 함께 사용할 수 없어요. 그리고 table 또는 query 필드 중 하나는 반드시 선언해야 합니다.
sslrootcert, sslcert, sslkey는 서버가 자기 권한으로 여는 파일을 지정하므로, 서버 구성 파일 또는 거기에 정의된 named collection으로 정의된 딕셔너리에서만 허용됩니다. CREATE DICTIONARY 쿼리로 만든 딕셔너리는 대신 내용을 sslrootcert_pem, sslcert_pem, sslkey_pem으로 전달해야 해요. 이 값들은 비밀번호와 같은 방식으로 로그 및 SHOW 쿼리에서 마스킹됩니다.