创建MaxCompute项目空间后,您需要进入项目空间才可以执行后续开发、分析、运维等一系列操作。
工具平台
本文中的命令您可以在MaxCompute客户端、云命令行(odpscmd)或DataWorks的ODPS SQL节点中执行。
注意事项
项目空间非工作空间。项目空间名称获取方式:登录MaxCompute控制台,选择工作区 > 项目管理,项目管理页面的MaxCompute项目名。
MaxCompute没有提供创建和删除项目空间的命令。创建项目空间操作详情请参见创建MaxCompute项目。
查看项目空间属性
显示当前项目空间Project级的属性配置信息。MaxCompute也支持查看Session级的属性,详情请参见show flags。
命令格式
setproject;
属性说明
项目空间的常用属性如下。
分类
影响范围
属性名称
属性描述
取值范围
主要影响的SQL命令和函数
生态
Session
console.sql.result.instancetunnel
InstanceTunnel开关。关于Tunnel命令的更多信息,请参见使用说明。
True:打开。
False:关闭。
SELECT
调度
Session
odps.stage.mapper.mem
设置每个Map Worker的内存大小。
取值范围:256 MiB~12288 MiB。默认值为1024 MiB。
ALL
调度
Session
odps.stage.reducer.mem
设置每个Reduce Worker的内存大小。
取值范围:256 MiB~12288 MiB。默认值为1024 MiB。
ALL
调度
Session
odps.stage.joiner.mem
设置每个Join Worker的内存大小。
取值范围:256 MiB~12288 MiB。默认值为1024 MiB。
ALL
调度
Session
odps.stage.mem
设置MaxCompute指定任务下所有Worker的内存大小。优先级低于odps.stage.mapper.mem、odps.stage.reducer.mem和odps.stage.joiner.mem属性。
取值范围:256 MiB~12288 MiB。无默认值。
ALL
调度
Session
odps.stage.mapper.split.size
修改每个Map Worker的输入数据量,即输入文件的分片大小,从而间接控制每个Map阶段下Worker的数量。
说明SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
单位MiB,默认值为256 MiB。
ALL
调度
Session
odps.stage.reducer.num
修改每个Reduce阶段的Worker数量。
说明SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
-
ALL
调度
Session
odps.stage.joiner.num
修改每个Join阶段的Worker数量。
说明SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
-
ALL
调度
Session
odps.stage.num
修改MaxCompute指定任务下所有Worker的并发数,优先级低于odps.stage.mapper.split.size、odps.stage.reducer.num和odps.stage.joiner.num属性。
说明SQL语句中使用Limit,会限制Limit作用的Worker单并发运行。因此在设置该配置项的时候,SQL语句中应避免使用Limit。
-
ALL
调度
Project
odps.instance.priority.enable
使用包年包月计算资源项目空间的作业优先级功能开关。关于作业优先级功能的更多信息,请参见作业优先级。
True:打开。
False:关闭。
说明仅Project Owner或拥有Super_Administrator角色的用户可以执行该命令打开优先级功能开关。
ALL
SQL
Session
odps.sql.reshuffle.dynamicpt
动态分区开关,以避免拆分动态分区时产生过多小文件。
True:打开。
False:关闭。
说明如果生成的动态分区个数很少,建议将值设为False,以避免数据倾斜。
INSERT INTO
INSERT OVERWRITE
SQL
Session
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函数的更多信息,请参见字符串函数。
True:打开。
False:关闭。
UDF
SQL
Session
odps.sql.udf.jvm.memory
设置UDF JVM Heap使用的最大内存。
部分UDF在内存计算、排序的数据量比较大时,会报内存溢出错误,这时候可以调大该参数,但该方法只能暂时缓解,您需要从业务上去优化UDF代码。
取值范围:256 MiB~12288 MiB。默认值为1024 MiB。
UDF
SQL
Session
odps.function.timeout
设置UDF超时时间。
取值范围:0s~3600s。默认值为600s。
UDF
SQL
Session
odps.sql.session.resources
指定UDT引用的资源,可以指定多个,用英文半角逗号(,)分隔。关于引用资源的更多信息,请参见UDT概述。
上传的资源。
UDT
SQL
Session
odps.sql.udt.display.tostring
设置是否开启将所有以UDT为最终输出的列Wrap上java.util.Objects.toString(...)的机制。
True:打开。
False:关闭。
UDT
SQL
Session
odps.sql.session.java.imports
指定UDT引用的Java Package,可以指定多个,用英文半角逗号(,)分隔。关于Java Package的更多信息,请参见UDT概述。
上传的Java Package。
UDT
SQL
Session
odps.sql.skewjoin
设置是否开启SKEWJOIN功能,解决长尾问题。
True:打开。
False:关闭。
SELECT
JOIN
SQL
Session
odps.sql.skewinfo
设置SKEWJOIN的目标Key及对应的值。具体操作,请参见数据倾斜调优。
-
SELECT
JOIN
SQL
Session
odps.sql.udf.ppr.deterministic
设置是否在自定义函数中开启分区裁剪机制。关于分区裁剪信息的更多信息,请参见WHERE子句(where_condition)。
True:打开。
False:关闭。
UDF
SQL
Session
odps.sql.udf.ppr.to.subquery
设置是否开启忽略分区裁剪回填报错问题机制。关于分区裁剪信息的更多信息,请参见WHERE子句(where_condition)。
True:打开。
False:关闭。
UDF
SQL
Session
odps.optimizer.enable.range.partial.repartitioning
设置Range聚簇表是否开启Shuffle Remove机制。
True:打开。
False:关闭。
INSERT OVERWRITE
CREATE TABLE
SQL
Session
odps.optimizer.skew.join.topk.num
设置优化器运行Aggregate时获取的热值数量。具体操作,请参见SKEWJOIN HINT。
-
SKEWJOIN HINT
SQL
Session
odps.optimizer.stat.collect.auto
设置是否开启Freeride功能,开启后自动收集表的Column Stats。关于优化器信息收集的更多信息,请参见优化器。
True:打开。
False:关闭。
CREATE TABLE
INSERT INTO
INSERT OVERWRITE
SQL
Session
odps.optimizer.stat.collect.plan
设置收集计划,收集指定列的指定Column Stats指标。关于优化器信息收集的更多信息,请参见优化器。
-
CREATE TABLE
INSERT INTO
INSERT OVERWRITE
SQL
Session
odps.sql.external.net.vpc
设置是否开启外部表VPC支持。具体操作,请参见HBase外部表(HBase标准版或增强版)、RDS外部表以及Hologres外部表。
True:打开。
False:关闭。
CREATE TABLE
SQL
Session
odps.sql.groupby.position.alias
设置是否开启将groupby中的整型常量作为SELECT的列序号处理。
True:打开。
False:关闭。
SELECT
GROUP BY
SQL
Session
odps.sql.groupby.skewindata
设置是否开启groupby防倾斜机制。
True:打开。
False:关闭。
GROUP BY
SQL
Session
odps.sql.orderby.position.alias
设置是否开启将orderby中的整型常量作为SELECT的列序号处理。
True:打开。
False:关闭。
ORDER BY
SELECT
SQL
Session
odps.sql.mapjoin.memory.max
设置MAPJOIN场景小表读入内存后的大小,单位MiB。
取值范围:0 MiB~8192 MiB
JOIN
SQL
Session
odps.sql.python.version
设置运行SQL句的Python版本。
cp27
cp37
UDTF
UDAF
SQL
Session
odps.sql.select.output.format
设置是否在MaxCompute客户端的返回结果中显示表头信息。关于使用MaxCompute客户端的更多信息,请参见使用本地客户端(odpscmd)连接。
{""needHeader"":false,""fieldDelim"":""""}
:不显示表头信息。{""needHeader"":true,""fieldDelim"":""""}
:显示表头信息。
ALL
SQL
Session
odps.sql.unstructured.data.oss.use.https
设置访问外部表时,是否需要开启底层通过HTTPS方式获取数据的机制。关于OSS外部表的更多信息,请参见创建OSS外部表。
True:打开。
False:关闭。
ALL
SQL
Session
odps.sql.decimal.tostring.trimzero
当数据类型为Decimal时是否去掉小数点后面末尾的零,默认值为
True
,代表默认去零。True:去掉小数据点后末尾的零。
False:保留小数据点后末尾的零。
CAST
SQL
Session
odps.sql.unstructured.tablestore.put.row
OTS外部表支持指定PutRow的写入方式。
说明PutRow详情请参考PutRow。
True:打开
False:关闭
ALL
SQL
Session
odps.sql.unstructured.external.max.dop
外表访问的Worker的最大并发度。
大于0的整数。
外表查询写入
SQL
Project
odps.sql.allow.fullscan
设置项目空间是否允许全表扫描。全表扫描会占用大量资源,为提升处理效率,不建议开启该功能。
True:允许全表扫描。
False:禁止全表扫描。
SELECT
SQL
Project
odps.table.lifecycle
设置项目空间下的表是否需要配置生命周期。
Optional:创建表时,Lifecycle子句为可选设置,如果不设置表的生命周期,则该表永久有效。
Mandatory:Lifecycle子句为必选设置,用户必须设置表的生命周期。
Inherit:创建表时,如果不设置表的生命周期,则该表的生命周期为odps.table.lifecycle.value的值。
CREATE TABLE
SQL
Project
odps.table.lifecycle.value
设置表的生命周期。单位:天。
取值范围:1~37231,默认值为37231。
CREATE TABLE
SQL
Project
READ_TABLE_MAX_ROW
设置SELECT语句返回的数据条数。
取值范围:1~10000,默认值为10000。
SELECT
SQL
Project
odps.output.field.formatter
设置SQL查询结果的动态脱敏规则。关于MaxCompute数据动态脱敏的更多信息,请参加数据动态脱敏。
自定义的动态脱敏规则。
SELECT
SQL
Project
odps.sql.acid.table.enable
设置是否开启ACID机制。关于ACID的更多信息,请参见ACID语义。
True:打开。
False:关闭。
ALL
SQL
Session/Project
odps.sql.executionengine.enable.string.to.date.full.format
如果需要转换带时分秒的日期字符串,需要把该参数值设置成True,默认值是False。
True:打开。
False:关闭。
CAST
SQL
Session/Project
odps.sql.executionengine.enable.rand.time.seed
当参数值为False时,Rand函数使用当前InstanceId作为随机数初始化Seed,可以保证函数幂等。
当Flag值为True时,Rand函数使用当前系统时间作为随机数初始化的Seed,但Rand函数不再幂等,不能作为Shuffle Key使用,会导致重跑的结果不相同。
默认值为False。
True:打开。
False:关闭。
RAND
SQL
Session/Project
odps.sql.type.system.odps2
2.0新数据类型开关。关于2.0数据类型的更多信息,请参见2.0数据类型版本。
True:打开。
False:关闭。
MaxCompute 2.0扩展函数
SQL
Session/Project
odps.sql.type.json.enable
JSON数据类型使用开关。关于JSON数据类型的更多信息,请参见MaxCompute JSON类型使用指南。
True:打开。
False:关闭。
MaxCompute JSON数据类型
SQL
Session/Project
odps.sql.hive.compatible
Hive兼容模式开关。打开Hive兼容模式后,MaxCompute才支持Hive指定的各种语法,例如inputRecordReader、outputRecordReader和Serde。关于兼容数据类型的更多信息,请参见Hive兼容数据类型版本。
True:打开。
False:关闭。
ALL
SQL
Session/Project
odps.sql.metering.value.max
设置单SQL消费限制值。关于消费者监控的更多信息,请参见消费监控告警。
-
ALL
SQL
Session/Project
odps.sql.timezone
设置MaxCompute项目的时区。关于时区的更多信息,请参见时区配置操作。
-
ALL
SQL
Session/Project
odps.sql.unstructured.oss.commit.mode
设置是否开启通过OSS的分片上传功能向OSS外部表写入数据。具体操作,请参见将数据写入OSS。
True:打开。
False:关闭。
INSERT OVERWRITE
SQL
Session/Project
odps.sql.groupby.orderby.position.alias
设置是否开启将group by和order by中的整型常量作为SELECT的列序号处理。
说明对于存量项目,如果在项目级别开启该参数,可能会对您已有的任务解析和执行操作造成影响,请确认并务必保证存量任务在此参数设置下仍可以按照原有逻辑正确执行后,再修改该参数。否则,请在Session级别设置
True:打开。
False:关闭。
GROUP BY
ORDER BY
SELECT
SQL
Session/Project
odps.ext.oss.orc.native
读表时使用Native ORC Reader。
True:打开。
False:关闭。
SELECT
SQL
Session/Project
odps.sql.job.max.time.hours
单作业最大执行时间。
说明若需要在项目级别设置,您可以通过申请链接或搜索(钉钉群号:11782920)加入MaxCompute开发者社区钉群联系MaxCompute技术支持团队在后台设置。
取值范围为:1~72,默认值为24。
SQL作业
计量计费
Session
odps.task.quota.preference.tag
指定作业的Quota组(即MaxCompute管家中的配额组)。使用包年包月资源的项目空间可以通过该属性指定作业使用某个具体的二级Quota组。如果提交作业时设置的Quota Tag和某个Quota组属性中的Quota Tag相等,作业就会被优先调度到这个Quota组中。否则,会被调度到所属项目空间指定的Quota组中。
执行如下语句进行设置。
set odps.task.quota.preference.tag = payasyougo
说明该属性当前仅支持SQL作业。
tag_name为MaxCompute管家中配额组的配额组标签。配额组只能取作业所属项目空间Owner所在区域的配额组。tag_name只允许使用字母、数字和下划线(_)。
ALL
计量计费
Session
odps.task.wlm.quota
用指定的资源去跑当前Session的任务,值为对应的QuotaName。
-
ALL
安全与权限
Project
odps.forbid.fetch.result.by.bearertoken
设置是否禁止Logview的Result页签显示作业运行结果。该参数主要用于保护数据安全。
True:禁止显示作业运行结果。
False:允许显示作业运行结果。
ALL
安全与权限
Project
LabelSecurity
设置是否开启LabelSecurity安全机制。关于LabelSecurity安全机制的更多信息,请参见Label权限控制。
True:打开。
False:关闭。
ALL
安全与权限
Project
CheckPermissionUsingACL
设置是否开启ACL授权机制。关于ACL授权的更多信息,请参见MaxCompute权限。
True:打开。
False:关闭。
ALL
安全与权限
Project
CheckPermissionUsingPolicy
设置是否开启Policy授权机制。关于Policy授权的更多信息,请参见Policy权限控制。
True:打开。
False:关闭。
ALL
安全与权限
Project
ObjectCreatorHasAccessPermission
设置对象创建者是否默认拥有访问权限。
True:允许对象创建者默认拥有访问权限。
False:禁止对象创建者默认拥有访问权限。
ALL
安全与权限
Project
ObjectCreatorHasGrantPermission
设置对象创建者是否默认拥有授权权限。
True:允许对象创建者默认拥有授权权限。
False:禁止对象创建者默认拥有授权权限。
ALL
安全与权限
Project
ProjectProtection
设置是否开启数据保护机制。关于数据保护机制的更多信息,请参见数据保护机制。
True:打开。
False:关闭。
ALL
安全与权限
Project
odps.output.field.formatter
设置SQL查询结果的动态脱敏规则。关于动态脱敏的更多信息,请参见数据动态脱敏。
自定义的动态脱敏规则。
SELECT
权限安全
Project
odps.security.ip.whitelist
设置经典网络场景下可以访问项目空间的IP白名单。关于IP白名单的更多信息,请参见管理IP白名单。
IP列表,以英文半角逗号(,)分隔。
ALL
权限安全
Project
odps.security.vpc.whitelist
指定VPC网络场景下可以访问项目空间的IP白名单。关于IP白名单的更多信息,请参见管理IP白名单。
RegionID_VPCID[IP Address]
ALL
数据类型
Project
odps.sql.decimal.odps2
DECIMAL 2.0数据类型DECIMAL(precision,scale)开关。关于数据类型的更多信息,请参见2.0数据类型版本。
True:打开。
False:关闭。
ALL
数据存储
Project
odps.timemachine.retention.days
设置备份数据的保留天数。关于数据备份的更多信息,请参见备份与恢复。
取值范围:0~30,默认值为1。
ALL
元数据
Project
odps.schema.evolution.enable
开通表结构变更能力。
True:打开。
False(默认):关闭。
表结构变更。
设置项目空间属性
设置项目空间的Project级属性。设置项目空间属性命令会存在0~5分钟的时延。命令执行成功后,请您等待5分钟后验证执行结果。MaxCompute也支持设置Session级的属性,详情请参见set。
权限说明
设置项目空间的Project级属性,需操作账号为项目的Owner或者账号被赋予了项目级别的Super_Administrator和Admin角色,操作详情请参见为用户赋予内置管理角色。
命令格式
setproject <KEY>=<VALUE>;
参数说明
KEY:属性名称。
VALUE:属性值。属性详情请参见查看项目空间属性。
使用示例
设置允许在项目空间执行全表扫描操作。
setproject odps.sql.allow.fullscan=true;
相关命令
ADD ACCOUNTPROVIDER:为当前项目空间增加RAM账号体系。
USE:进入指定的、具有访问权限的项目空间。
LIST ACCOUNTPROVIDERS:显示当前项目空间支持的账号体系信息。
REMOVE ACCOUNTPROVIDER:删除当前项目空间支持的账号体系信息。