sqoop优化
sqoop优化
batch
语法:--batch,指示使用批处理模式执行底层的SQL语句。在导出数据时,该参数能够将相关的SQL语句组合在一起批量执行,也可以使用有效的API在JDBC接口中配置批处理参数
Dsqoop.export.records.per.statement
指定批处理数据条数,可和batch联合使用
boundary-query
可解决数据倾斜问题
–boundary-query: select 1 as MIN , sum(1) as MAX from table where xxx
具体原理就是通过ROWNUM() 生成一个严格均匀分布的字段,然后指定为分割字段
指定导入数据的范围值。当仅使用split-by参数指定的分隔列不是最优时,可以使用boundary-query参数指定任意返回两个数字列的查询。它的语法如下:--boundary-
query select min(id), max(id) from
min(
fetch-size
导入数据时,指示每次从数据库读取的记录数。使用下面的语法:--fetch-size=
量、可用的内存和带宽大小适当增加fetch-size的值。某些情况下这可以提升25%的性能。
num-mappers
该参数的语法为--num-mappers
split-by
该参数的语法为--split-by