Clickhouse导入CSV文件

一、背景

平常开发会员一次性的需求,列入将一个大文件导入到CK中进行数据分析,以下记录一下CSV导入到CK的过程:

二、创建表结构

CREATE TABLE default.test_table (
`index` String,
`uuid` String,
`variables` String,
`title` String,
`title_explain` String,
`title_meaning` String
) ENGINE = MergeTree() PARTITION BY sipHash64(uuid)%20 ORDER BY sipHash64(uuid)%20 SETTINGS index_granularity = 8192

注:由于此表没有年月日,所以按照sipHash64(uuid)%20分成20个分区,若这里直接用uuid分区会产生太多的分区,有可能导致分区过多报错,我刚开始没注意的时候,就是因为产生了太多的分区导入失败,报错信息为:

Too many partitions for single INSERT block (more than 100),所以需要注意一下。

三.导入数据

方式一:登录服务器使用客户端

clickhouse-client -h xxx.x.x.x --database="default" --query="select * from default.test_table FORMAT CSV" < test.csv

方式二:直接连接数据库,例如用dbserver客户到,创建表之后,直接导入数据即可

原文地址:https://www.cnblogs.com/linzepeng/p/15127536.html