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 쿼리에서 마스킹됩니다.

더 알아보기 (Learn more)