Sqoop 将db2数据导入到hive中出现数据条数不一致问题分析

本文介绍从DB2数据库向Hive进行数据迁移的过程,重点讲解如何通过合理设置参数来提高迁移效率,包括使用合适的分隔符、选择主键作为分块依据等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import
--connect
jdbc:db2://host:port/database   //db2驱动
--username
xxx //用户名
--password
xxx //密码
--table
db2table //db2中的表名字
--split-by
id //分块建议使用主键column字段名称作为分割块的依据,这样减少导入误差
--m
16 //1-更大 速度主要取决于系统性能  建议20
--hive-database
test //hive中的数据库名称  如果需要建库 则需要 创建 database 。构建参考语句 create database test;
--hive-table
a //建议使用db2原表名
--fields-terminated-by
'\n' //自定义列分割符号。默认为 '\001'
--lines-terminated-by 
',' //自定义行分割符号。'\n'

--hive-import


在此之前我未使用  自定义分隔符 导致 出现如下警告

我选择的分割列是 一个 double 类型的列。。导致了这个问题。


当我把 --split by换成 主键后 问题消失


因为 分割块的时候  他会 找出 分个块中的最小值 和 最大值。。 

18/05/17 16:13:17 INFO db.DataDrivenDBInputFormat: BoundingValsQuery: SELECT MIN(column), MAX(column) FROM xxx 

然后计算 平均分配到 每个 mapreduce 节点上。


刚学习大数据。如果有说的不对的地方请指出。谢谢


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值