doris:ClickHouse

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 ClickHouse 数据库。本文档介绍如何配置 ClickHouse 数据库连接。

使用须知

要连接到 ClickHouse 数据库,您需要

  • ClickHouse 23.x 或更高版本 (低于此版本未经充分测试)。

  • ClickHouse 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的 ClickHouse JDBC 驱动程序。推荐使用 ClickHouse JDBC Driver 0.4.6 版本。

  • Doris 每个 FE 和 BE 节点和 ClickHouse 服务器之间的网络连接,默认端口为 8123。

连接 ClickHouse

复制代码
CREATE CATALOG clickhouse PROPERTIES (
    "type"="jdbc",
    "user"="default",
    "password"="password",
    "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。

例如,通过将 ssl=true 参数添加到 jdbc_url 配置属性来启用 TLS:

复制代码
"jdbc_url"="jdbc:clickhouse://example.net:8123/db?ssl=true"

有关 TLS 配置选项的更多信息,请参阅 Clickhouse JDBC 驱动程序文档 SSL 配置部分

层级映射

映射 ClickHouse 时,Doris 的一个 Database 对应于 ClickHouse 中的一个 Database。而 Doris 的 Database 下的 Table 则对应于 ClickHouse 中,该 Database 下的 Tables。即映射关系如下:

Doris ClickHouse
Catalog ClickHouse Server
Database Database
Table Table

类型映射

ClickHouse 到 Doris 类型映射

ClickHouse Type Doris Type Comment
Bool BOOLEAN
String STRING
Date/Date32 DATE
DateTime/DateTime64 DATETIME
Float32 FLOAT
Float64 DOUBLE
Int8 TINYINT
Int16/UInt8 SMALLINT Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级
Int32/UInt16 INT Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级
Int64/Uint32 BIGINT Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级
Int128/UInt64 LARGEINT Doris 没有 UNSIGNED 数据类型,所以扩大一个数量级
Int256/UInt128/UInt256 STRING Doris 没有这个数量级的数据类型,采用 STRING 处理
DECIMAL DECIMALV3/STRING 将根据 DECIMAL 字段的(precision, scale) 选择用何种类型
Enum/IPv4/IPv6/UUID STRING
Array ARRAY Array 内部类型适配逻辑参考上述类型
Other UNSUPPORTED

查询优化

谓词下推

  1. 当执行类似于 where dt = '2022-01-01' 这样的查询时,Doris 能够将这些过滤条件下推到外部数据源,从而直接在数据源层面排除不符合条件的数据,减少了不必要的数据获取和传输。这大大提高了查询性能,同时也降低了对外部数据源的负载。

  2. 当变量 enable_ext_func_pred_pushdown 设置为 true,会将 where 之后的函数条件也下推到外部数据源。

    目前支持下推到 ClickHouse 的函数有:

    Function
    FROM_UNIXTIME
    UNIX_TIMESTAMP

行数限制

如果在查询中带有 limit 关键字,Doris 会将 limit 下推到 ClickHouse,以减少数据传输量。

转义字符

Doris 会在下发到 ClickHouse 的查询语句中,自动在字段名与表名上加上转义符:(""),以避免字段名与表名与 ClickHouse 内部关键字冲突。

相关推荐
制造数据与AI践行者老蒋3 天前
智联工坊IoT 数据采集工程实战:2000 万条可复现设备数据生成(WorkBuddy 落地)
doris·制造业数字化·workbuddy·iot 数据采集·模拟数据生成·数据质量校验·dolphinschedul
hzp66615 天前
doris学习6:参数调优
数据库·doris·参数·数据库调优
SelectDB技术团队16 天前
Apache Doris 5.0 年度版本前瞻(一):构建统一的多模湖仓实时分析平台
大数据·doris·数据湖·湖仓一体·lakehouse·湖仓分析·多模分析
一路追寻17 天前
在大模型时代,Apache Doris 深度融合文本搜索、向量搜索、AI 函数能力,构建从数据存储、检索到分析的完整 AI 数据栈。
doris
迈巴赫车主17 天前
Doris简介
大数据·数据仓库·doris
SelectDB技术团队18 天前
Apache Doris 支持同步/异步物化视图与 ROLLUP,多表加速能力优于 StarRocks
大数据·数据库·doris·技术选型·物化视图·starrock·查询加速
SelectDB技术团队18 天前
统一全文检索与 SQL 分析:Apache Doris 日志分析实践
大数据·数据结构·后端·python·全文检索·doris·日志分析
SelectDB技术团队19 天前
StarRocks 适合做日志分析吗?
大数据·数据结构·后端·python·doris·日志分析·starrock
SL-staff23 天前
采购数据链打通实战:三步用JVS-BI实现跨系统ELT与嵌入式分析(附配置逻辑)
doris·数据集成·数据中台·elt·jvs-bi·采购数字化·低代码分析
hzp6661 个月前
Doris学习2: 数据分布与存储机制学习笔记
doris·sstable·lsm-tree·lsm·compression