1.背景:开始研究使用clickhouse,在检索clickhouse官网(https://clickhouse.tech/docs/en/)的时候看到jdbc 通过8123端口进行数据的导入和连接。然后写了一个工具往clickhou导入文件,发现是真的慢,而且容易崩。于是研究别的导入方式,发现其实通过客户端命令走9000端口进行导入其实真的又快又稳定。于是彻底抛弃了jdbc的导入方式,直接通过shell脚本控制将hdfs文件导入到clickhouse中,官方对客户端导入的格式是有限制的 详情参考:(https://clickhouse.tech/docs/en/interfaces/formats/) ,其中array类型是比较通用的但是无法导入的类型, 不过可以通过字符串的方式导入。只要hdfs中数据格式如下,然后clickhouse为array(string),就会制动转换成array类型,通过这种方式导入。
['a1','a2','a3','a4','a5','a6','a7','a8']
a.通过客户端将hdfs文件导入到clickhosue中, (为了脱敏,clickhouse的服务器ip 以及帐号密码等都处理了,按照需要填入即可)
#!/bin/sh
set -x
source /etc/profile
source ~/.bash_pr

本文介绍了如何利用clickhouse-client通过9000端口快速将HDFS数据导入ClickHouse,替代较慢的JDBC方式。针对Array类型数据,提出通过字符串格式在HDFS存储,然后在ClickHouse中自动转换为Array(String)类型的解决方案,详细步骤包括删除ClickHouse分区、HDFS文件处理和导入操作。
最低0.47元/天 解锁文章
4034

被折叠的 条评论
为什么被折叠?



