メインコンテンツまでスキップ
バージョン: 4.x

Clickhouse JDBC カタログ

Doris JDBC Catalogは標準のJDBCインターフェースを通じてClickHouseデータベースへの接続をサポートします。このドキュメントでは、ClickHouseデータベース接続の設定方法について説明します。

JDBC Catalogの概要については、以下を参照してください:JDBC カタログ 概要

使用上の注意

ClickHouseデータベースに接続するには、以下が必要です

  • ClickHouseバージョン23.x以上(これより低いバージョンは完全にテストされていません)。

  • ClickHouseデータベース用のJDBCドライバー。最新バージョンまたは指定バージョンのClickHouse JDBCドライバーはMaven Repositoryからダウンロードできます。ClickHouse JDBC Driverはバージョン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 Driver 構成で確認できます。

接続セキュリティ

データソースにグローバルに信頼された証明書がインストールされたTLSを設定している場合は、jdbc_urlプロパティに設定されたJDBC接続文字列にパラメータを追加することで、クラスターとデータソース間のTLSを有効にできます。

たとえば、jdbc_url設定プロパティにssl=trueパラメータを追加してTLSを有効にします:

'jdbc_url' = 'jdbc:clickhouse://example.net:8123/db?ssl=true'

TLS設定オプションの詳細については、Clickhouse JDBC Driver Documentation SSL 構成 Sectionを参照してください。

階層マッピング

ClickHouseをマッピングする際、DorisのDatabaseはClickHouseのDatabaseに対応します。そして、DorisのDatabase下のTableは、ClickHouseのそのDatabase下のTablesに対応します。マッピング関係は以下の通りです:

DorisClickHouse
カタログClickHouse サーバー
DatabaseDatabase
TableTable

カラムタイプマッピング

ClickHouse タイプDoris タイプComment
boolboolean
stringstring
date/date32date
datetime(S)/datetime64(S)datetime(S)
float32float
float64double
int8tinyint
int16/uint8smallintDorisはUNSIGNEDデータ型を持たないため、1段階スケールアップされます
int32/uInt16int上記と同様
int64/uint32bigint上記と同様
int128/uint64largeint上記と同様
int256/uint128/uint256stringDorisはこの規模のデータ型を持たないため、STRINGで処理されます
decimal(P, S)decimal(P, S) or stringDorisがサポートする最大精度を超える場合は、stringを使用して処理します
enum/ipv4/ipv6/uuidstring
arrayarray
otherUNSUPPORTED

関連パラメータ

  • jdbc_clickhouse_query_final

    セッション変数、デフォルトはfalseです。trueに設定すると、Clickhouseに送信されるSQL文にSETTINGS final = 1が追加されます。

よくある問題

  1. Clickhouseデータの読み取り時にNoClassDefFoundError: net/jpountz/lz4/LZ4Factoryエラーメッセージが発生する場合

    まずlz4-1.3.0.jarパッケージをダウンロードし、各FEおよびBEディレクトリ下のcustom_lib/ディレクトリに配置してください(存在しない場合は手動で作成してください)。