創建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:刪除當前項目空間支持的賬號體系信息。