dataX 迁移 mysql2clickhouse 报Too many parts错误

目录

1.引言

2.配置环境

3.网上的其他方法

3.1减少插入频次(加大批次读取的数量,降低读取的次数)

3.2升级硬盘

4.最终解决的方法


1.引言

昨天用DataX做数据迁移的时候,遇到了一个频繁插入的问题,五分钟一次,一次才几十条数据(60多个字段)。结果就报插入频繁的错误。

Too many parts (301). Merges are processing significantly slower than inserts.

寻思也没有超过官方文档里的一秒一次的频次,怎么会报错呢?然后时间间隔扩大到十分钟,也是不行。

2.配置环境

clickhouse 21.9.1.7498

mysql:5.6

dataX 某二开版本

3.网上的其他方法

网上的很多方法都是大数据采用的,用的大部分是spark等工具,所以能调整批次大小和批次频率,公司规模较小不需要用到大数据工具,只是简单的数据集市。

3.1减

DataX是一个阿里开源的数据同步工具,可以用于高效、稳定地将数据从Hive等数据源迁移ClickHouse这样的目标系统。从Hive到ClickHouse的数据迁移通常涉及以下几个步骤: 1. **配置DataX**: 首先需要在DataX的配置文件中指定源端为Hive,目标端为ClickHouse。确保提供正确的Hive连接信息(如主机名、端口、用户名、密码以及Hive表名称),同时设置ClickHouse的相关连接参数。 ```yaml datax: job: name: "Hive to ClickHouse" read: hive: url: "jdbc:hive2://<host>:<port>" username: "<username>" password: "<password>" tables: ["<table_name>"] write: clickhouse: host: "<clickhouse_host>" port: <clickhouse_port> user: "<clickhouse_user>" password: "<clickhouse_password>" ``` 2. **数据映射**: DataX支持按列选择模式,可以根据需要选择Hive表中的特定列导出到ClickHouse,因为ClickHouse的数据模型可能与Hive不同。 3. **数据清洗和转换**: 如果有需要,可以在DataX的任务中添加预处理逻辑(比如数据清洗、转换),以满足ClickHouse的要求。 4. **执行任务**: 使用DataX命令行工具(`bin/datax.sh`)或者通过调度系统(如Airflow或Dockerfile)启动数据同步任务。 **注意事项**: - 数据类型映射:确保字段类型在两个数据库间是一致的,例如日期时间格式、数字类型等。 - 特殊处理:对于ClickHouse特有的特性,如分区、列存等,可能需要特殊处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值