sqoop优化

sqoop优化

batch

语法:--batch,指示使用批处理模式执行底层的SQL语句。在导出数据时,该参数能够将相关的SQL语句组合在一起批量执行,也可以使用有效的APIJDBC接口中配置批处理参数

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<tablename>。在配置boundary-query参数时,查询语句中必须连同表名一起指定min(id)max(id)。如果没有配置该参数,默认时Sqoop使用select

min(<split-by>), max(<split-by>) from<tablename>查询找出分隔列的边界值。

fetch-size

导入数据时,指示每次从数据库读取的记录数。使用下面的语法:--fetch-size=<n>,其中<n>表示Sqoop每次必须取回的记录数,默认值为1000。可以基于读取的数据

量、可用的内存和带宽大小适当增加fetch-size的值。某些情况下这可以提升25%的性能。

num-mappers

该参数的语法为--num-mappers <number ofmap tasks>,用于指定并行数据导入的map任务数,默认值为4。应该将该值设置成低于数据库所支持的最大连接数。

split-by

该参数的语法为--split-by <column name>,指定用于Sqoop分隔工作单元的列名,不能与--autoreset-to-one-mapper选项一起使用。如果不指定列名,Sqoop基于主键列分隔 工作单元。

posted on   嘣嘣嚓  阅读(2182)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示