首页 > 解决方案 > 解释并举例说明为什么我们在 sqoop 中使用 $CONDITIONS

问题描述

sqoop import --connect jdbc:mysql://localhost/retail_db --username root --password cloudera --query 'select * from table name where $CONDITIONS'

标签: sqoop

解决方案


如果要并行导入查询的结果,则每个映射任务都需要执行查询的副本,结果按 Sqoop 推断的边界条件进行分区。您的查询必须包含标记 $CONDITIONS,每个 Sqoop 进程将用唯一的条件表达式替换该标记。您还必须使用 --split-by 选择拆分列。

$ sqoop import \
--query 'SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS' \
--split-by a.id 
--target-dir /user/foo/joinresults

推荐阅读