SeaTunnel 2.1.2的源码解析(4)seatunnel-connectors-flink-clickhouse


本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star


提示:以下是本篇文章正文内容,下面源码分析可供参考,如有出错请指正!

一、seatunnel-connectors-flink-clickhouse

1.总览

seatunnel-connectors-flink-clickhouse1
seatunnel-connectors-flink-clickhouse2

2.源码分析

ClickHouse的底层访问接口支持TCP和HTTP两种协议,其中,TCP协议拥有更好的性能,其默认端口为9000,主要用于集群间的内部通信及CLI客户端;而HTTP协议则拥有更好的兼容性,可以通过REST服务的形式被广泛用于JAVA、Python等编程语言的客户端,其默认端口为8123。但ClickHouse的访问接口并不仅限于此、它还拥有原生的C++、ODBC接口及众多第三方的集成接口(Python、NodeJS、Go、PHP等)。--引用《ClickHouse原理解析与应用实践》

这里SeaTunnel项目连接ClickHouse用JDBC封装接口。pom.xml引用依赖如下:
ck-jdbc依赖包
ClickhouseClient类的构造函数如下:

     public ClickhouseClient(Config config) {
        //设置JDBC参数
        Properties clickhouseProperties = new Properties();
        if (TypesafeConfigUtils.hasSubConfig(config, CLICKHOUSE_PREFIX)) {
            TypesafeConfigUtils.extractSubConfig(config, CLICKHOUSE_PREFIX, false).entrySet().forEach(e -> {
                clickhouseProperties.put(e.getKey(), String.valueOf(e.getValue().unwrapped()));
            });
        }
        clickhouseProperties.put("user", config.getString(USERNAME));
        clickhouseProperties.put("password", config.getString(PASSWORD));
        String jdbcUrl = "jdbc:clickhouse://" + config.getString(HOST) + "/" + config.getString(DATABASE);
        //声明数据源,balancedClickhouseDataSource对象支持设置多个host地址
        this.balancedClickhouseDataSource = new BalancedClickhouseDataSource(jdbcUrl, clickhouseProperties);
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值