批量插入(BCP)到SQL服务器VS Sqoop导出到Sql Server

时间:2017-06-27 09:00:30

标签: sql-server hadoop

为了将数据从hive / hdfs导出到sql server,在速度和性能方面,以下哪个选项是更好的选择。

1)使用 Sqoop Export 工具连接到RDBMS(SQL服务器)并直接导出数据。

2)使用 INSERT OVERWRITE LOCAL DIRECTORY 命令使用HIVE转储CSV文件,然后对这些CSV文件执行 BCP (或批量插入查询)以将数据放入SQL服务器数据库。

或者, 还有其他更好的选择吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,我尽可能使用bcp。从我能说出最快的方法将数据霰弹到数据库中,并且可以在(某种程度上)细粒度级别上进行配置。

要考虑的事情:

  1. 使用临时表。没有主键,没有索引,只有原始数据。
  2. 进行"合并" proc在加载后移动数据。
  3. 使用大约5000的行大小开始,但如果性能最受关注,请进行测试。
  4. 确保延长超时时间。