对当前Session设置MaxCompute系统变量。
命令格式
set =
参数说明
-
KEY:属性名称。
-
VALUE:属性值。
Session级的常用属性如下。
属性名称
属性描述
取值范围
console.sql.result.instancetunnel
-
True:打开
-
False:关闭
odps.stage.mapper.mem
设置每个Map Worker的内存大小。
256 MB~12288 MB。默认值为1024 MB。
odps.stage.reducer.mem
设置每个Reduce Worker的内存大小。
256 MB~12288 MB。默认值为1024 MB。
odps.stage.joiner.mem
设置每个Join Worker的内存大小。
256 MB~12288 MB。默认值为1024 MB。
odps.stage.mem
设置MaxCompute指定任务下所有Worker的内存大小。优先级低于odps.stage.mapper.mem、odps.stage.reducer.mem和odps.stage.joiner.mem属性。
256 MB~12288 MB。无默认值。
odps.stage.mapper.split.size
修改每个Map Worker的输入数据量,即输入文件的分片大小,从而间接控制每个Map阶段下Worker的数量。
说明
SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
单位MB,默认值为256 MB。
odps.stage.reducer.num
修改每个Reduce阶段的Worker数量。
说明
SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
无默认值。
odps.stage.joiner.num
修改每个Join阶段的Worker数量。
说明
SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
无默认值。
odps.stage.num
修改MaxCompute指定任务下所有Worker的并发数,优先级低于odps.stage.mapper.split.size、odps.stage.reducer.mem和odps.stage.joiner.num属性。
说明
SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
无默认值。
odps.sql.reshuffle.dynamicpt
动态分区开关,以避免拆分动态分区时产生过多小文件。
-
True:打开
-
False:关闭
说明
如果生成的动态分区个数很少,建议将值设为False,以避免数据倾斜。
odps.sql.type.system.odps2
2.0新数据类型开关。2.0数据类型详情请参见2.0数据类型版本。
-
True:打开
-
False:关闭
odps.sql.hive.compatible
Hive兼容模式开关。打开Hive兼容模式后,MaxCompute才支持Hive指定的各种语法,例如
inputRecordReader
、outputRecordReader
和Serde
。Hive兼容数据类型详情请参见Hive兼容数据类型版本。-
True:打开
-
False:关闭
odps.sql.executionengine.coldata.deep.buffer.size.max
设置MaxCompute在写表过程中,为复杂数据类型的列预先申请的缓存大小,以便提高写入性能。
如果输出的表中的复杂数据类型过多或输出表中含有的某个单独的复杂类型变量大小过大,可以设置该参数。
-
如果输出的表有3个列的Schema是复杂数据类型,例如列类型为(STRING、MAP、STRUCT、ARRAY或BINARY),则默认情况下MaxCompute将会为写表操作预留64 MB×3大小的内存。每一列预先申请的缓存将会用来存放这一列
batch row count
行的数据。 -
如果预估表的复杂类型变量占用的空间比较小,建议调小此值。例如,如果每个复杂类型变量大小不会超过1024 Byte,同时
batch row count
值使用的是默认值(1024),则可以将属性值设置为1024×1024,示例如下。set odps.sql.executionengine.coldata.deep.buffer.size.max=1048576;
-
如果您预先知道每个复杂类型的值都在7 MB~8 MB间,同时指定了
batch row count
为32,则该值可以被调整为8 MB×32。 -
如果输出的表有复杂类型,或
MAPJOIN
小表有复杂类型,调整该值会影响到作业执行过程中使用的内存。根据前面的计算方法,值设的过大有可能导致OOM(Out Of Memory)内存溢出。
单位Byte,默认值为67108864 Byte。
odps.task.quota.preference.tag
指定作业的Quota组(即MaxCompute管家中的配额组)。使用包年包月资源的项目空间可以通过该属性指定作业使用某个具体的二级Quota组。如果提交作业时设置的Quota Tag和某个Quota组属性中的Quota Tag相等,作业就会被优先调度到这个Quota组中。否则,会被调度到所属项目空间指定的Quota组中。
执行如下语句进行设置。
set odps.task.quota.preference.tag = tag_name;
说明
该属性当前仅支持SQL作业。
tag_name为MaxCompute管家中配额组的配额组标签。配额组只能取作业所属项目空间Owner所在区域的配额组。tag_name只允许使用字母、数字和下划线(_)。
说明
仅当您在MaxCompute管家中为配额组设置了标签后,才可以使用odps.task.quota.preference.tag参数。
odps.sql.udf.getjsonobj.new
设置GET_JSON_OBJECT函数的返回行为是否开启保留原始字符串的方式。
自2021年1月21日及之后新创建的MaxCompute项目中,GET_JSON_OBJECT函数的返回行为默认为保留原始字符串。2021年1月21日之前创建的MaxCompute项目中,GET_JSON_OBJECT函数的返回行为默认为JSON保留字符转义,以免行为变更对存量作业造成影响。
更多GET_JSON_OBJECT函数信息,请参见GET_JSON_OBJECT。
-
True:打开
-
False:关闭
odps.sql.udf.jvm.memory
设置UDF JVM Heap使用的最大内存。
某些UDF在内存计算、排序的数据量比较大时,会报内存溢出错误,这时候可以调大该参数,但该方法只能暂时缓解,您需要从业务上去优化UDF代码。
256 MB~12288 MB。默认值为1024 MB。
odps.sql.udf.timeout
设置UDF超时时间。
0s~3600s。默认值为600s。
LabelSecurity
设置是否开启LabelSecurity安全机制。更多LabelSecurity安全机制信息,请参见Label权限控制。
-
True:打开
-
False:关闭
odps.sql.session.resources
指定UDT引用的资源,可以指定多个,用英文逗号(,)分隔。更多引用资源信息,请参见UDT概述。
上传的资源
odps.sql.udt.display.tostring
设置是否开启将所有以UDT为最终输出的列Wrap上
java.util.Objects.toString(...)
的机制。-
True:打开
-
False:关闭
odps.sql.session.java.imports
指定UDT引用的Java Package,可以指定多个,用英文逗号(,)分隔。更多引用Java Package信息,请参见UDT概述。
上传的Java Package
CheckPermissionUsingACL
设置是否开启ACL授权机制。更多ACL授权信息,请参见MaxCompute权限。
-
True:打开
-
False:关闭
CheckPermissionUsingPolicy
设置是否开启Policy授权机制。更多Policy授权信息,请参见Policy权限控制。
-
True:打开
-
False:关闭
ObjectCreatorHasAccessPermission
设置对象创建者是否默认拥有访问权限。
-
True:允许对象创建者默认拥有访问权限
-
False:禁止对象创建者默认拥有访问权限
ObjectCreatorHasGrantPermission
设置对象创建者是否默认拥有授权权限。
-
True:允许对象创建者默认拥有授权权限
-
False:禁止对象创建者默认拥有授权权限
ProjectProtection
设置是否开启数据保护机制。更多数据保护机制信息,请参见数据保护机制。
-
True:打开
-
False:关闭
odps.output.field.formatter
设置SQL查询结果的动态脱敏规则。更多动态脱敏信息,请参见MaxCompute数据动态脱敏。
自定义的动态脱敏规则
odps.isolation.session.enable
设置是否在单Session级别开启动态脱敏。更多动态脱敏信息,请参见MaxCompute数据动态脱敏。
-
True:打开
-
False:关闭
odps.sql.skewjoin
设置是否开启SKEWJOIN功能,解决长尾问题。
-
True:打开
-
False:关闭
odps.sql.skewinfo
设置SKEWJOIN的目标Key及对应的值。更多信息,请参见数据倾斜调优。
无
odps.sql.reducer.instances
设置哈希桶的数量。更多哈希桶信息,请参见表操作。
0~4000
odps.sql.udf.ppr.deterministic
设置是否在自定义函数中开启分区裁剪机制。更多分区裁剪信息请参见WHERE子句(where_condition)。
-
True:打开
-
False:关闭
odps.sql.udf.ppr.to.subquery
设置是否开启忽略分区裁剪回填报错问题机制。更多分区裁剪信息请参见WHERE子句(where_condition)。
-
True:打开
-
False:关闭
odps.optimizer.enable.range.partial.repartitioning
设置Range聚簇表是否开启Shuffle Remove机制。
-
True:打开
-
False:关闭
odps.optimizer.skew.join.topk.num
设置优化器运行Aggregate时获取的热值数量。详情请参见SKEWJOIN HINT。
无
odps.optimizer.stat.collect.auto
设置是否开启Freeride功能。开启后自动收集表的Column Stats。详情请参见优化器信息收集。
-
True:打开
-
False:关闭
odps.optimizer.stat.collect.plan
设置收集计划,收集指定列的指定Column Stats指标。详情请参见优化器信息收集。
无
odps.sql.executionengine.batch.rowcount
设置SQL引擎一次同时处理的数据行数。默认值是1024。一般不需要手动调整,遇到单行大字段导致OOM或UDF性能较差导致的超时场景需要手动调小。建议不要设置太小否则会影响性能。
1~1024
odps.sql.external.net.vpc
设置是否开启外部表VPC支持。详情请参见HBase外部表(HBase标准版或增强版)、RDS外部表或Hologres外部表。
-
True:打开
-
False:关闭
odps.sql.groupby.position.alias
设置是否开启将
groupby
中的整型常量做为SELECT的列序号处理。-
True:打开
-
False:关闭
odps.sql.groupby.skewindata
设置是否开启
groupby
防倾斜机制。-
True:打开
-
False:关闭
odps.sql.orderby.position.alias
设置是否开启将
orderby
中的整型常量做为SELECT的列序号处理。-
True:打开
-
False:关闭
odps.sql.groupby.orderby.position.alias
设置是否开启将
group by
和order by
中的整型常量做为SELECT的列序号处理。推荐使用该参数。说明
对于存量项目,如果在项目级别开启该参数,可能会对您已有的任务解析和执行操作造成影响,请确认并务必保证存量任务在此参数设置下仍可以按照原有逻辑正确执行后,再修改该参数。否则,请在Session级别设置。
-
True:打开
-
False:关闭
odps.sql.mapjoin.memory.max
设置MAPJOIN场景小表读入内存后的大小,单位MB。
0 MB~8192 MB
odps.sql.metering.value.max
设置单SQL消费限制值。详情请参见消费监控告警。
无
odps.sql.python.version
设置运行SQL句的Python版本。
-
cp27
-
cp37
odps.sql.select.output.format
设置是否在MaxCompute客户端的返回结果中显示表头信息。详情请参见使用客户端(odpscmd)连接。
-
{""needHeader"":false,""fieldDelim"":""""}
:不显示表头信息。 -
{""needHeader"":true,""fieldDelim"":""""}
:显示表头信息
odps.sql.timezone
设置MaxCompute项目的时区。更多时区信息,请参见时区配置操作。
无
odps.sql.unstructured.data.oss.use.https
设置访问外部表时,是否需要开启底层通过HTTPS方式获取数据的机制。更多信息,请参见创建OSS外部表。
-
True:打开
-
False:关闭
odps.sql.unstructured.oss.commit.mode
设置是否开启通过OSS的分片上传功能向OSS外部表写入数据。详情请参见将数据写入OSS。
-
True:打开
-
False:关闭
-
使用示例
--调整每个Mapper读取数据的大小为256 MB。
set odps.stage.mapper.split.size=256;
相关命令
SHOW:显示set命令设置的属性。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/158465.html