如果表没有主键或唯一键,如何在两个不同的文件(记录均匀分布)中导入表的20000条记录?

时间:2016-09-06 03:04:15

标签: mysql hadoop sqoop

我在表格中有20000条记录。我想将它们复制到两个单独的文件(记录均匀分布)到HDFS(使用Sqoop)。 如果表没有主键或唯一键,我们如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

确保你使用-m 2给--split-by col1,否则你会看到错误。

答案 1 :(得分:-1)

拥有主键或唯一键不是并行导入的限制。

不建议在非均匀分布的列上拆分,因为这会导致任务不平衡。

现在您的记录均匀分布。因此,这不会有任何性能问题。

让我解释它正在使用一个例子,

您有一个列col1的表,其值为1 -100(某些重复值也在那里)。

现在,sqoop将确定最小值和最大值并将其分成两部分

  • 1 - 50
  • 51 - 100

Mappers将使用像

这样的查询通过JDBC获取数据
  • SELECT * FROM sometable WHERE id >= 1 AND id < 50

  • SELECT * FROM sometable WHERE id >= 51 AND id < 100

因此,请使用两个映射器(-m 2)继续执行sqoop导入查询。