kettle实现MySQL数据库向hive数据仓库大数据同步经验分享

本文详细记录了使用Kettle v8.2在CDH集群环境下进行MySQL至Hive的大数据同步测试,包括全量及增量同步的性能表现,并提出多项优化策略,如通过HDFS文件导入提升效率、字段最小宽度选择、动态分区优化等。

一、同步性能测试

1、测试环境信息

kettle:版本8.2,carte独立部署,内存参数-Xms1024m -Xmx4096m

mysql数据库:8核CPU,CPU主频2.20GHz,16G内存,版本号5.7.25

大数据环境采用CDH,包含HDFS、hive等组件

CDH集群服务器(共4台):8核CPU,CPU主频2.20GHz,16G内存,CDH版本5.14.4

2、性能测试结果

全量同步

3000万xxx_log表数据,14个字段,从MySQL数据库同步导入hive仓库,第一次同步耗时290秒,平均10.34万条/秒

第二次同步耗时186秒,平均16.13万条/秒,472天数据按天动态分区,加载到hive分区表耗时179秒

增量同步

3000万xxx_log表历史数据,14个字段,每天100万增量数据,从MySQL数据库按天增量同步到hive仓库,按天静态分区,同步耗时8.689秒,平均11.51万条/秒,加载到hive分区表耗时1.142秒(与同步并行执行),总耗时8.689秒

二、性能优化点

1、不能直接将MySQL数据库查询出来的数据写入hive仓库,需要先导出到HDFS文件,再通过hive的load命令导入hive仓库。因为hive数据仓库插入数据很慢,插入1条数据可能要10来秒钟;而通过load方式加载HDFS数据文件的方式导入数据,数据量即使有几千万条也只要几百毫秒时间。

2、导出到HDFS文件,字段要选择最小宽度,可以提升几倍性能。因为默认未选择最小宽度,从MySQL中导出的数据存到HDFS文件时每个字段可能会填充空格值使字段长度达到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值