clickhouse 分布式表数据导入导出

数据导出

命令行导出

clickhouse-client -d yourdb --password yourpasswrod --query="select * from t_fenqun_result FORMAT CSV" > fenqun_result.csv

注意参数中间只能有一个空格,否则或报错
导出的数据字段用逗号分割,但是会用双引号包裹,需去掉双引号

sed -i 's/\"//g' fenqun_result.csv

dbeaver工具导出

另外也可以通过dbeaver工具进行数据的导出
选择表->鼠标右键->出现菜单栏->导出数据

选择导出到csv文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据导入

此处数据导入是针对分布式表数据的导入
1.需求
针对t_fenqun_result表查询效率慢的问题(数量在150w),要重新分区
旧的t_fenqun_result是 PARTITION BY dt_date ORDER BY (task_id),查询user_id时会全表检索,性能较低。
新的表根据user_id生成hash_code,然后取余 hash_code%128,在查询 user_id 的同时将 hash_code 也作为查询条件。通过观察查询日志,发现检索量很小,有利于检索性能
python 代码
java 代码

2.思路
由于t_fenqun_result是在用表,不能删除后长时间缺失,打算先将重新分区后的数据写入到clickhouse临时表,然后通过临时表再导入,(因为从临时表导入速度很快,150w数据1.6秒就完成导入)

第一步

将数据生成至临时表

-- 分布式表
itv.t_fenqun_result_new_local
-- 总表 
itv.t_fenqun_result_new

第二步

-- 删除旧表
drop table itv.t_fenqun_result on cluster czf_cluster;
drop table itv.t_fenqun_result_local on cluster czf_cluster;

第三步

-- 仿制分布式表
create table itv.t_fenqun_result_local  on cluster czf_cluster as itv.t_fenqun_result_new_local;
-- 创建总表
CREATE TABLE itv.t_fenqun_result AS itv.t_fenqun_result_local ENGINE = Distributed('czf_cluster', 'itv', 't_fenqun_result_local', rand());
-- 插入数据
insert into itv.t_fenqun_result select * from itv.t_fenqun_result_new;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive是一个基于Hadoop的数据仓库基础设施,而ClickHouse则是俄罗斯搜索引擎Yandex开发的用于分布式数据分析的列式数据库管理系统。将Hive中的数据导出ClickHouse可以实现数据的高效查询和分析。 实现Hive数据导出ClickHouse的一种方法是通过Hive的外部特性。首先,需要安装ClickHouse并创建相应的结构以匹配Hive中的数据。然后,通过Hive创建外部,指定ClickHouse作为目标。接下来,使用INSERT INTO语句将Hive中的数据导入到外部,从而实现将Hive数据导出ClickHouse的目的。 具体步骤如下: 1. 在ClickHouse中创建目标,以与Hive中的数据结构相匹配,包括数据类型、列名和约束等。 2. 在Hive中创建外部,通过指定ClickHouse的URL、用户名和密码等连接信息,将ClickHouse作为目标。 3. 使用INSERT INTO语句将Hive中的数据插入到外部中,触发数据导出和传输过程。 在执行导出过程时,需要注意以下几点: 1. 需要确保Hive和ClickHouse之间的网络连接畅通。 2. 导出过程可能会消耗一定的时间和资源,特别是当数据量较大时,需要评估系统资源的使用情况。 3. 需要注意数据类型的兼容性,确保Hive中的数据类型与ClickHouse中的数据类型一致或能够进行转换。 4. 对于导出数据的频率和间隔,可以根据需求设置合适的调度策略,以定期或实时导出数据。 通过以上步骤和注意事项,可以实现将Hive中的数据导出ClickHouse,进而在ClickHouse中进行高效的数据查询和分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值