我们可以在Sqoop中控制$ CONDITIONS吗?

时间:2017-06-29 06:46:37

标签: mysql hadoop sqoop

$条件根据自己决定的占位符在不同的分割中打破自由形式查询。 比如说,我们有一个查询,它给出了1000条记录的结果。默认情况下,它将被$ CONDITIONS分解为4个具有边界条件的不同查询

  

(1,250)(251,500)(501,750)和(751,1000)。

根据我们的要求,我们可以做些什么来实现查询分割?

1 个答案:

答案 0 :(得分:2)

您无法选择查询分区偏移量。你可以控制两件事:

  • --boundary-query <statement>用于创建拆分。
  • --num-mappers用于控制分割数量。

显然是--split-by列。

为每个分割选择边界听起来是个好主意。但是从数据中获取这些见解是非常昂贵的。

你怎么知道分裂点?

通过迭代该特定列的整个数据并创建一些逻辑来创建理想的分区。

但是你可以比这次迭代更快地运行sqoop job(使用默认分区)。

我猜这就是为什么人们对这个功能不太感兴趣。