개요: ClickHouse JDBC Bridge를 JDBC 테이블 함수 또는 JDBC 테이블 엔진과 함께 사용하면, JDBC 드라이버를 사용할 수 있는 모든 외부 데이터 소스의 데이터에 ClickHouse가 액세스할 수 있습니다:

외부 데이터 소스에 네이티브로 제공되는 내장 integration 엔진, 테이블 함수 또는 외부 딕셔너리가 없더라도, 해당 데이터 소스용 JDBC 드라이버가 있다면 유용하게 사용할 수 있습니다.
ClickHouse JDBC Bridge는 읽기와 쓰기 모두에 사용할 수 있습니다. 또한 여러 외부 데이터 소스에 대해 병렬로 사용할 수 있으므로, 예를 들어 여러 외부 및 내부 데이터 소스에 걸쳐 ClickHouse에서 실시간으로 분산 쿼리를 실행할 수 있습니다.
이 문서에서는 ClickHouse를 외부 데이터 소스와 연결하기 위해 ClickHouse JDBC Bridge를 얼마나 쉽게 설치, 구성, 실행할 수 있는지 보여드립니다. 이 예제에서는 외부 데이터 소스로 MySQL을 사용합니다.
이제 시작하겠습니다!
ClickHouse JDBC Bridge를 로컬에 설치하기
ClickHouse JDBC Bridge를 사용하는 가장 쉬운 방법은 ClickHouse가 실행 중인 동일한 호스트에 이를 설치하고 실행하는 것입니다:

먼저 ClickHouse가 실행 중인 머신의 Unix 셸에 연결한 후, 나중에 ClickHouse JDBC Bridge를 설치할 로컬 폴더를 생성합니다(폴더 이름과 위치는 원하는 대로 지정해도 됩니다):
mkdir ~/clickhouse-jdbc-bridge이제 해당 폴더에 ClickHouse JDBC Bridge의 최신 버전을 다운로드합니다:
cd ~/clickhouse-jdbc-bridge
wget https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v2.0.7/clickhouse-jdbc-bridge-2.0.7-shaded.jarMySQL에 연결하기 위해 이름이 지정된 데이터 소스를 생성합니다:
cd ~/clickhouse-jdbc-bridge
mkdir -p config/datasources
touch config/datasources/mysql8.json이제 다음 구성을 ~/clickhouse-jdbc-bridge/config/datasources/mysql8.json 파일에 복사해 붙여넣으십시오:
{
"mysql8": {
"driverUrls": [
"https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar"
],
"jdbcUrl": "jdbc:mysql://<host>:<port>",
"username": "<username>",
"password": "<password>"
}
}이제 ClickHouse JDBC Bridge를 시작할 준비가 되었습니다:
cd ~/clickhouse-jdbc-bridge
java -jar clickhouse-jdbc-bridge-2.0.7-shaded.jarClickHouse 내에서 JDBC 연결 사용하기
이제 ClickHouse는 jdbc 테이블 함수 또는 JDBC 테이블 엔진을 사용해 MySQL 데이터에 액세스할 수 있습니다.
다음 예시를 실행하는 가장 쉬운 방법은 내용을 clickhouse-client 또는 Play UI에 복사해 붙여넣는 것입니다.
- jdbc 테이블 함수:
SELECT * FROM jdbc('mysql8', 'mydatabase', 'mytable');- JDBC 테이블 엔진:
CREATE TABLE mytable (
<column> <column_type>,
...
)
ENGINE = JDBC('mysql8', 'mydatabase', 'mytable');
SELECT * FROM mytable;ClickHouse JDBC Bridge를 외부에 설치하기
분산 ClickHouse 클러스터(ClickHouse 호스트가 2개 이상인 클러스터)에서는 ClickHouse JDBC Bridge를 별도의 전용 호스트에 외부로 설치하여 실행하는 것이 적절합니다.

이 방식의 장점은 각 ClickHouse 호스트가 JDBC Bridge에 액세스할 수 있다는 점입니다. 그렇지 않으면 Bridge를 통해 외부 데이터 소스에 액세스해야 하는 각 ClickHouse 인스턴스마다 JDBC Bridge를 로컬에 설치해야 합니다.
ClickHouse JDBC Bridge를 외부에 설치하려면 다음 단계를 수행하십시오.
-
이 가이드의 1절에 설명된 단계에 따라 전용 호스트에 ClickHouse JDBC Bridge를 설치, 구성, 실행합니다.
-
각 ClickHouse 호스트에서 다음 구성 블록을 ClickHouse 서버 구성에 추가합니다(선택한 구성 포맷에 따라 XML 또는 YAML 버전을 사용하십시오):
<jdbc_bridge>
<host>JDBC-Bridge-Host</host>
<port>9019</port>
</jdbc_bridge>jdbc_bridge:
host: JDBC-Bridge-Host
port: 9019