Clickhouse JDBC Catalog
Doris JDBC Catalog는 표준 JDBC 인터페이스를 통해 ClickHouse 데이터베이스에 연결할 수 있도록 지원합니다. 이 문서에서는 ClickHouse 데이터베이스 연결을 구성하는 방법을 설명합니다.
JDBC Catalog에 대한 개요는 JDBC Catalog 개요를 참조하세요.
사용 시 참고 사항
ClickHouse 데이터베이스에 연결하려면 다음이 필요합니다.
-
ClickHouse 버전 23.x 이상(이전 버전은 충분히 테스트되지 않았습니다).
-
ClickHouse 데이터베이스용 JDBC 드라이버. Maven 리포지토리에서 최신 버전 또는 특정 버전의 ClickHouse JDBC 드라이버를 다운로드할 수 있습니다. ClickHouse JDBC 드라이버 버전 0.4.6 사용을 권장합니다.
-
Doris의 각 FE 및 BE 노드와 ClickHouse 서버 간의 네트워크 연결. 기본 포트는 8123입니다.
ClickHouse 연결
CREATE CATALOG clickhouse PROPERTIES (
'type' = 'jdbc',
'user' = 'username',
'password' = 'pwd',
'jdbc_url' = 'jdbc:clickhouse://example.net:8123/',
'driver_url' = 'clickhouse-jdbc-0.4.6-all.jar',
'driver_class' = 'com.clickhouse.jdbc.ClickHouseDriver'
)
jdbc_url은 ClickHouse JDBC 드라이버에 전달할 연결 정보와 매개변수를 정의합니다. 지원되는 URL 매개변수는 ClickHouse JDBC 드라이버 구성에서 확인할 수 있습니다.
연결 보안
데이터 소스에 전역적으로 신뢰되는 인증서를 설치하여 TLS를 구성했다면, jdbc_url 속성에 설정된 JDBC 연결 문자열에 매개변수를 추가하여 클러스터와 데이터 소스 간에 TLS를 활성화할 수 있습니다.
예를 들어, jdbc_url 구성 속성에 ssl=true 매개변수를 추가하면 TLS를 활성화할 수 있습니다.
'jdbc_url' = 'jdbc:clickhouse://example.net:8123/db?ssl=true'
TLS 구성 옵션에 대한 자세한 내용은 Clickhouse JDBC 드라이버 문서의 SSL 구성 섹션을 참조하세요.
계층 매핑
ClickHouse를 매핑할 때 Doris의 데이터베이스는 ClickHouse의 데이터베이스에 대응합니다. 또한 Doris의 데이터베이스에 속한 테이블은 ClickHouse의 해당 데이터베이스에 속한 테이블에 대응합니다. 매핑 관계는 다음과 같습니다.
| Doris | ClickHouse |
|---|---|
| Catalog | ClickHouse 서버 |
| 데이터베이스 | 데이터베이스 |
| 테이블 | 테이블 |
컬럼 타입 매핑
| ClickHouse 타입 | Doris 타입 | 설명 |
|---|---|---|
| bool | boolean | |
| string | string | |
| date/date32 | date | |
| datetime(S)/datetime64(S) | datetime(S) | |
| float32 | float | |
| float64 | double | |
| int8 | tinyint | |
| int16/uint8 | smallint | Doris에는 UNSIGNED 데이터 타입이 없으므로 한 단계 더 큰 타입으로 매핑합니다 |
| int32/uInt16 | int | 위와 동일 |
| int64/uint32 | bigint | 위와 동일 |
| int128/uint64 | largeint | 위와 동일 |
| int256/uint128/uint256 | string | Doris에는 이 크기의 데이터 타입이 없으므로 STRING으로 처리합니다 |
| decimal(P, S) | decimal(P, S) 또는 string | Doris에서 지원하는 최대 정밀도를 초과하면 string으로 처리합니다 |
| enum/ipv4/ipv6/uuid | string | |
| array | array | |
| 기타 | UNSUPPORTED |
관련 매개변수
-
jdbc_clickhouse_query_final세션 변수이며 기본값은 false입니다. true로 설정하면 Clickhouse로 전송되는 SQL 문에
SETTINGS final = 1이 추가됩니다.
일반적인 문제
-
Clickhouse 데이터를 읽을 때
NoClassDefFoundError: net/jpountz/lz4/LZ4Factory오류 메시지가 발생하는 경우먼저 lz4-1.3.0.jar 패키지를 다운로드한 다음, 각 FE 및 BE 디렉터리 아래의
custom_lib/디렉터리에 배치하세요(디렉터리가 없으면 직접 생성하세요).