sqoop import命令中$ conditions子句的意义是什么?
select col1, col2 from test_table where \$CONDITIONS
答案 0 :(得分:2)
Sqoop通过继承Hadoop的并行性来执行高效的数据传输。
帮助Sqoop将您的查询分成多个可以的块 和平转移,你 需要在查询的where子句中包含$ CONDITIONS占位符。
Sqoop 将自动用生成的条件指定替换此占位符 每个单独的任务应该传输哪一片数据。
虽然你可以跳过 $ CONDITIONS通过强制Sqoop使用--num-mappers 1 param-只运行一个作业 但是,这种限制会对性能造成严重影响。
例如: -
如果您运行并行导入,则地图任务将执行您的查询 在$ CONDITIONS中替换了不同的值。一个映射器 可以执行"从foo WHERE(id> = 0 AND id< 10000)"中选择bla,并且 下一个映射器可以执行"从foo WHERE中选择bla(id> = 10000 AND id< 20000)"等等。