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

vhmi4jdf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(350)

我在一张table上有两万张唱片。我想将它们复制到两个单独的文件(记录平均分布)到hdfs中(使用sqoop)。如果表没有主键或唯一键,我们如何实现这一点?

6g8kf2rb

6g8kf2rb1#

确保您给出的是--col1除以-m2,否则您将看到一个错误。

lymgl2op

lymgl2op2#

具有主键或唯一键不是并行导入的限制。
不建议在中的非均匀分布列上拆分,因为这可能会导致任务不平衡。
现在你的记录被平均分配了。因此,这不会有任何性能问题。
让我用一个例子来解释它的工作原理,
您有一个列为的表 col1 值在1到100之间(有些重复的值也存在)。
现在,sqoop将确定最小值和最大值,并将其分成两部分
1 - 50
51 - 100
Map程序将使用如下查询通过jdbc获取数据-
SELECT * FROM sometable WHERE id >= 1 AND id < 50 SELECT * FROM sometable WHERE id >= 51 AND id < 100 因此,使用两个Map器继续执行sqoop导入查询( -m 2 ).

相关问题