Clickhouse快速上手 使用篇

接着clickhouse原理篇,下面来介绍他的具体使用场景,包括数据导入,更新等

1. 数据导入

根据官方介绍,Clickhouse的分布式表数据导入有两种形式,一种是在外部将数据划分好分片,分别并行的加载到各个节点的本地表,这种速度是最快的,同时也不需要分布式引擎处理网络发送各个节点数据;另外一种是直接将数据批量插入分布式表,由分布式表引擎处理数据到各节点的写入,需要节点间的网络通信,速度稍慢,但是在实际观察中,也还好,更重要的是操作方便,重跑容易;

调研

目前见过的几种写入形式:

1. 这里我参考过一些大厂的方法,其中我感觉最有效的是,k8s动态创建出一个新的clickhouse 集群,写入数据利用这个集群生成对应的分区文件,然后直接将文件attach到生产集群上的clickhouse各节点,并销毁用来生成分区文件的clickhouse集群。这才是终极操作,直接加载目的文件!
2. 使用阿里云的产品的话,他们有提供专门的spark + waterdrop 对接clickhouse, 这里他们使用虚拟ip 加上spark多进程写入clickhouse集群
3. 自己使用jdbc 写入,如果是向单点分布式表写入再由它分发的话,速度可想而知了,不过也可以自己整多线程 + vip写入集群,速度理论和2 差不多

我这里使用的是腾讯云的Ck产品,由于才刚上不久缺乏对应完善的配套,导入数据就比较麻烦了,由于需要替换greenplum,自然想到继承原来的集群间数据中转方式: 腾讯云对象存储cos。这里我们将在gp中计算好的数据通过外表方式写入到cos文件系统中以csv存储;然后下一步就需要clickhouse 中导入cos数据了,这里我测试了clickhouse 集成的COSN表引擎,从该表读取数据向分布式表插入, 但是这么做,首先是单点写入,性能不足,其次,cosn引擎实现的并不好,insert into xx select * from cosn_tb时,需要将cos指定的全部文件载入内存,轻易就OOM了,根本无法使用,腾讯云那边似乎也拿不出解决方式。

计划

由于时间拖的非常久了,领导说数据导入的事情该要了结了。。
此时我这里就只能用上老本行spark了,花了一天的时间搭建和调试,在买来的cvm搭建了5个节点的hadoop + spark 集群(这里不敢尝试太高版本,hadoop 2.7.6 + spark 2.4.7 ),然后参考了阿里云那边spark 导入数据到clickhouse 的代码,通过自己调节并行度,+ 虚拟ip 直接使用spark-shell 粘贴代码做不同并行度的写入测试。

数据源: cos上的csv
schema: jdbc读取pg表后df.schema<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值