Skip to content

Instantly share code, notes, and snippets.

@nlpjoe
Last active April 29, 2021 03:31
Show Gist options
  • Save nlpjoe/7189270e6e23ebf66bc27c2a603eb36e to your computer and use it in GitHub Desktop.
Save nlpjoe/7189270e6e23ebf66bc27c2a603eb36e to your computer and use it in GitHub Desktop.
[api调用]#sql

gbdt & ps 回归

pai参数

-DmaxHungTimeBeforeGCInSeconds=86000
-DuseSparseClusterSchema=true
-DenableJITDeviceTuning=false
-DenableDynamicCluster=true
Map设置
set odps.sql.mapper.cpu=100
作用:
设定处理map task每个instance的cpu数目,默认为100。[50,,800]之间调整

set odps.sql.mapper.memory=1024
作用:
设定map task每个instance的memory大小,单位M,默认1024M。[256,12288]之间调整

set odps.sql.mapper.merge.limit.size=64
作用:
设定控制文件被合并的最大阈值,单位M,默认64M。用户可以通过控制这个变量,从而达到对map端输入的控制。[0,Integer.MAX_VALUE]之间调整

set odps.sql.mapper.split.size=256
作用:
设定一个map的最大数据输入量,单位M,默认256M。用户可以通过控制这个变量,从而达到对map端输入的控制。[1,Integer.MAX_VALUE]之间调整

Join设置
set odps.sql.joiner.instances=-1
作用: 设定Join task的instance数量,默认为-1。[0,2000]之间调整

set odps.sql.joiner.cpu=100
作用: 设定Join task每个instance的cpu数目,默认为100。[50,800]之间调整

set odps.sql.joiner.memory=1024
作用:设定Join task每个instance的memory大小,单位为M,默认为1024M。[256
,12288]之间调整

Reduce设置
set odps.sql.reducer.instances=-1
作用: 设定reduce task的instance数量,默认为-1。[0,2000]之间调整

set odps.sql.reducer.cpu=100
作用: 设定处理reduce task每个instance的cpu数目,默认为100。[50,800]之间调整

set odps.sql.reducer.memory=1024
作用: 设定reduce task每个instance的memory大小,单位M,默认1024M。[256,12288]之间调整

Udf设置
set odps.sql.udf.jvm.memory=1024
作用: 设定UDF jvm heap使用的最大内存,单位M,默认1024M。[256,12288]之间调整

set odps.sql.udf.timeout=600
作用:设置UDF超时时间,默认为600秒,单位秒。[0,3600]之间调整

set odps.sql.udf.python.memory=256
作用:设定UDF python 使用的最大内存,单位M,默认256M。[64,3072]之间调整

set odps.pypy.enabled=true/false
作用:python性能优化,设置true后,odps sql都会使用odps-pypy执行python udf/udtf。false 为回到老引擎

set odps.sql.udf.optimize.reuse=true/false
作用:
开启后,相同的UDF函数表达式,只计算一次,可以提高性能,默认为true。

set odps.sql.udf.strict.mode=false/true
作用:
true为金融模式和false为淘宝模式,控制有些函数在遇到脏数据时是返回NULL还是抛异常,true是抛出异常,false是返回null。

正则优化
odps.sql.udf.regexp.optimize=true/false
作用:基于google re2的正则表达式引擎,对正则表达式相关函数进行了优化,true为开启

Mapjoin设置
set odps.sql.mapjoin.memory.max=512
作用:设置mapjoin时小表的最大内存,默认512,单位M,[128,2048]之间调整

动态分区设置
set odps.sql.reshuffle.dynamicpt=true/false
作用:
(1)false:不会产生倾斜
(2)true:合并小文件。
默认为true

数据倾斜设置
set odps.sql.groupby.skewindata=true/false
作用:开启group by优化

set odps.sql.skewjoin=true/false
作用:开启join优化,必须设置odps.sql.skewinfo 才有效

set odps.sql.skewinfo
作用:设置join优化具体信息,格式
set odps.sql.skewinfo=skewed_src:(skewed_key)[("skewed_value")]
例子:
针对单个字段单个倾斜数值
set odps.sql.skewinfo=src_skewjoin1:(key)[("0")]

explain select a.key c1, a.value c2, b.key c3, b.value c4 from src a join src_skewjoin1 b on a.key = b.key;
针对单个字段多个倾斜数值
set odps.sql.skewinfo=src_skewjoin1:(key)[("0")("1")]

explain select a.key c1, a.value c2, b.key c3, b.value c4 from src a join src_skewjoin1 b on a.key = b.key;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment