我们可以在 Sqoop 中控制 $CONDITIONS 吗?
Can we control $CONDITIONS in Sqoop?
$Conditions 根据自己决定的占位符将自由格式查询分成不同的拆分。
比如说,我们有一个查询,它给出了 1000 条记录的结果。默认情况下,它将被 $CONDITIONS 分解为 4 个具有边界条件
的不同查询
(1,250) (251,500) (501,750) and (751,1000).
我们可以做些什么来根据我们的要求实现查询拆分?
您不能选择查询分区偏移量。您可以控制两件事:
--boundary-query <statement>
用于创建拆分。
--num-mappers
用于控制分割数。
显然是 --split-by
列。
为每个拆分选择边界听起来是个好主意。但是从数据中获得这样的见解是非常昂贵的。
你怎么知道分裂点?
通过迭代该特定列的全部数据并创建一些逻辑来创建理想的分区。
但您可以 运行 sqoop 作业(使用默认分区)比此迭代更快。
我想这就是人们对此功能不太感兴趣的原因。
$Conditions 根据自己决定的占位符将自由格式查询分成不同的拆分。 比如说,我们有一个查询,它给出了 1000 条记录的结果。默认情况下,它将被 $CONDITIONS 分解为 4 个具有边界条件
的不同查询(1,250) (251,500) (501,750) and (751,1000).
我们可以做些什么来根据我们的要求实现查询拆分?
您不能选择查询分区偏移量。您可以控制两件事:
--boundary-query <statement>
用于创建拆分。--num-mappers
用于控制分割数。
显然是 --split-by
列。
为每个拆分选择边界听起来是个好主意。但是从数据中获得这样的见解是非常昂贵的。
你怎么知道分裂点?
通过迭代该特定列的全部数据并创建一些逻辑来创建理想的分区。
但您可以 运行 sqoop 作业(使用默认分区)比此迭代更快。
我想这就是人们对此功能不太感兴趣的原因。