分享

无意中发现了一个BUG,求解

evababy 发表于 2017-3-2 10:10:51 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 6415
计划从mysql导入到hbase中,但是mysql表中只有一个字段,此时--columns只能写这个唯一字段,现象是导入没提示错误,结果也显示了XXXXX条数据,hbase中没数据,最终测试发现是一个字段导致的,请问有啥办法可以解决么?
使用 id,null 替代提示错误,说表中没null字段,无语啊,如何能解决呢? 非要在表中加一个字段才可以么?

已有(7)人评论

跳转到指定楼层
langke93 发表于 2017-3-2 10:34:32
本帖最后由 langke93 于 2017-3-2 10:36 编辑

mysql只有一个字段。这个表存在问题,mysql应该至少有主键吧。
楼主这个表是用来做什么的
另外是使用的sqoop吧,把命令贴出来看下
回复

使用道具 举报

lenovoyufeilil 发表于 2017-3-2 11:02:47
个人觉得rowkey本身就是一个列字段,所以hbase建表最少就需要两列,你mysql表一个字段本身设计就不合理,更别提一个字段映射到hbase两个列了
回复

使用道具 举报

evababy 发表于 2017-3-2 11:29:15
langke93 发表于 2017-3-2 10:34
mysql只有一个字段。这个表存在问题,mysql应该至少有主键吧。
楼主这个表是用来做什么的
另外是使用的sq ...

sqoop import --connect jdbc:mysql://xxxxx/xxx--table xxx--username xxx--password xxx--target-dir /sqoop/test --columns id --incremental lastmodified --check-column gxsj --last-value "2017-02-01 00:00:00" --hbase-create-table --hbase-table test --column-family col_fam_name --hbase-row-key id --m 85

清理数据产生很大量的ID数据

这个是用一个测试表的测试语句,语句本身没问题,发现--columns id只有一个字段无法导入,估计和二楼说的--hbase-row-key id本身就把columns的id给占用了
回复

使用道具 举报

evababy 发表于 2017-3-2 11:31:06
无解啊,给表增加了一个空字段,顺利执行中
回复

使用道具 举报

evababy 发表于 2017-3-2 11:34:14
其实MYSQL只有一个字段,只是作为一个数据临时存储的过度,也不是作为长期使用,所以也不能说mysql设计不当,也不能说sqooop有缺陷,可能机制就这样,去除key的一个字段,那么sqoop导入字段必须有大于一个
回复

使用道具 举报

NEOGX 发表于 2017-3-2 13:09:07
evababy 发表于 2017-3-2 11:34
其实MYSQL只有一个字段,只是作为一个数据临时存储的过度,也不是作为长期使用,所以也不能说mysql设计不当 ...

hbase至少两列,rowkey是必须的,外加一个列簇。
对于临时表可以临时变通下。
不过hbase在这方面确实没有考虑的
回复

使用道具 举报

evababy 发表于 2017-3-2 14:47:52
再补充以下:及时数据库中的表有两列,一列作为ID(主键),另外一列也必须有值,空值也无法导入!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条