分享

sqoop导入数据问题求助

grinsky 2018-11-28 15:40:00 发表于 异常错误 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 4499
本帖最后由 grinsky 于 2018-11-28 17:07 编辑

使用sqoop从sqlserver中将数据导入到hive中。
数据抽取并成功存到hdfs中,但在导入到hive中出错,出现字段类型不对,指定类型后虽然成功导入了,但有个疑问想询问下(google了下 没找到相关问题……)

sqoop抽数据是先将数据从sqlserver中抽取出来存放的hdfs上,然后在执行导入到hive中,
但这里有一个问题,如果后面导入失败了,我要如何才能使用之前已经抽取好的数据从新导入到hive,而不是删除文件在从头开始去sqlserver中抽取一遍
,因单表数据量有点大,交换机又low每次都要抽取一个多小时……

ps:在额外问个问题,关于spark sql的,建立jdbc后使用sparksql查询sqlserver,发现小表查询很快,但大表却非常慢(select * from table1 limit 10),
而且发现本地流量很大,想问下spark中的jdbc查询是怎么运行的?难道是把远程的数据库中表的数据全拉到本地然后在查询?还是只是把sql语句传到数据库,
然后等待接收结果?

已有(2)人评论

跳转到指定楼层
yaojiank 发表于 2018-11-28 19:51:37
可以了解下sqoop的append的模式
sqoop 常见问题及解决办法(sqoop增量倒入)
http://www.aboutyun.com/forum.php?mod=viewthread&tid=9867



ps:在额外问个问题,关于spark sql的,建立jdbc后使用sparksql查询sqlserver,发现小表查询很快,但大表却非常慢(select * from table1 limit 10),
而且发现本地流量很大,想问下spark中的jdbc查询是怎么运行的?难道是把远程的数据库中表的数据全拉到本地然后在查询?还是只是把sql语句传到数据库,
然后等待接收结果?

猜测是这样,比如hive可以spark作为引擎,那么sqlserver同样也是借用spark为引擎,具体原理,楼主可以查看hive on spark.个人认为应该差不多

回复

使用道具 举报

ledasion 发表于 2018-12-3 14:35:36
可以把字段类型都指定为 string
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条