- DDL
- 설정 파일
SOURCE(MYSQL(
port 3306
user 'clickhouse'
password 'qwerty'
replica(host 'example01-1' priority 1)
replica(host 'example01-2' priority 1)
db 'db_name'
table 'table_name'
where 'id=10'
invalidate_query 'SQL_QUERY'
fail_on_connection_loss 'true'
query 'SELECT id, value_1, value_2 FROM db_name.table_name'
enable_compression 1
))
<source>
<mysql>
<port>3306</port>
<user>clickhouse</user>
<password>qwerty</password>
<replica>
<host>example01-1</host>
<priority>1</priority>
</replica>
<replica>
<host>example01-2</host>
<priority>1</priority>
</replica>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<fail_on_connection_loss>true</fail_on_connection_loss>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
<enable_compression>1</enable_compression>
</mysql>
</source>
설정 필드:
| 설정 | 설명 |
|---|---|
port | MySQL 서버의 포트입니다. 모든 레플리카에 대해 지정하거나, 각 레플리카별로(<replica> 내부에) 개별 지정할 수 있습니다. |
user | MySQL 사용자 이름입니다. 모든 레플리카에 대해 지정하거나, 각 레플리카별로(<replica> 내부에) 개별 지정할 수 있습니다. |
password | MySQL 사용자의 비밀번호입니다. 모든 레플리카에 대해 지정하거나, 각 레플리카별로(<replica> 내부에) 개별 지정할 수 있습니다. |
replica | 레플리카 구성 섹션입니다. 여러 개를 지정할 수 있습니다. |
replica/host | MySQL 호스트입니다. |
replica/priority | 레플리카 우선순위입니다. 연결을 시도할 때 ClickHouse는 우선순위 순서대로 레플리카를 탐색합니다. 숫자가 낮을수록 우선순위가 높습니다. |
db | DB 이름입니다. |
table | 테이블 이름입니다. |
where | 선택 조건입니다. 조건 구문은 MySQL의 WHERE 절과 동일하며, 예를 들어 id > 10 AND id < 20처럼 작성합니다. 선택 사항입니다. |
invalidate_query | 딕셔너리 상태를 확인하는 쿼리입니다. 선택 사항입니다. 자세한 내용은 LIFETIME을 사용한 딕셔너리 데이터 갱신 섹션을 참조하십시오. |
fail_on_connection_loss | 연결이 끊어졌을 때 서버 동작을 제어합니다. true이면 클라이언트와 서버 간 연결이 끊어진 경우 즉시 예외가 발생합니다. false이면 서버는 오류를 보고하기 전에 데이터를 가져오려고 최소 세 번 재시도합니다. 재시도하면 응답 시간이 늘어날 수 있습니다. 기본값은 false입니다. |
query | 사용자 지정 쿼리입니다. 선택 사항입니다. |
enable_compression | MySQL 프로토콜 연결에 zlib 압축을 활성화합니다. 1로 설정하면 ClickHouse가 MySQL 서버에 프로토콜 수준 압축을 요청합니다. <replica> 내부에서 레플리카별로도 설정할 수 있습니다. 기본값은 0입니다. |
ssl_ca_pem | MySQL 서버 인증서를 검증하는 데 사용하는 CA 인증서의 내용입니다. 선택 사항입니다. |
ssl_cert_pem | 인증서 기반 인증에 사용하는 클라이언트 인증서의 내용입니다. 선택 사항입니다. |
ssl_key_pem | ssl_cert_pem에 해당하는 private key의 내용입니다. 선택 사항입니다. |
ssl_ca, ssl_cert, ssl_key | 동일한 자격 증명을 서버의 파일 경로로 지정합니다. 서버 설정 파일에 정의된 딕셔너리 또는 այնտեղ 정의된 명명된 컬렉션을 통해서만 허용되며, 아래를 참조하십시오. 선택 사항입니다. |
The
table 또는 where 필드는 query 필드와 함께 사용할 수 없습니다. 또한 table 또는 query 필드 중 하나는 반드시 선언해야 합니다.ssl_ca, ssl_cert, ssl_key는 서버가 자체 권한으로 여는 파일을 지정하므로 서버 설정 파일에 정의된 딕셔너리 또는 해당 파일에 정의된 명명된 컬렉션을 통해서만 허용됩니다. TLS 자격 증명을 직접 지정하는 CREATE DICTIONARY 쿼리는 대신 ssl_ca_pem, ssl_cert_pem, ssl_key_pem에 내용을 전달해야 합니다. 이러한 값은 비밀번호와 마찬가지로 로그와 SHOW 쿼리에서 마스킹됩니다.명시적인
secure 매개변수는 없습니다. SSL 연결을 설정할 때는 보안이 필수입니다.host와 socket을 설정하십시오.
설정 예시:
- DDL
- 설정 파일
SOURCE(MYSQL(
host 'localhost'
socket '/path/to/socket/file.sock'
user 'clickhouse'
password 'qwerty'
db 'db_name'
table 'table_name'
where 'id=10'
invalidate_query 'SQL_QUERY'
fail_on_connection_loss 'true'
query 'SELECT id, value_1, value_2 FROM db_name.table_name'
))
<source>
<mysql>
<host>localhost</host>
<socket>/path/to/socket/file.sock</socket>
<user>clickhouse</user>
<password>qwerty</password>
<db>db_name</db>
<table>table_name</table>
<where>id=10</where>
<invalidate_query>SQL_QUERY</invalidate_query>
<fail_on_connection_loss>true</fail_on_connection_loss>
<query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
</mysql>
</source>