全部產品
Search
文件中心

MaxCompute:SETPROJECT

更新時間:Jun 19, 2024

建立MaxCompute專案空間後,您需要進入專案空間才可以執行後續開發、分析、營運等一系列操作。

工具平台

本文中的命令您可以在MaxCompute用戶端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.memodps.stage.reducer.memodps.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.sizeodps.stage.reducer.memodps.stage.joiner.num屬性。

    說明

    SQL語句中使用Limit,會限制Limit作用的Worker單並發運行。因此在設定該配置項的時候,SQL語句中應避免使用Limit。

    -

    ALL

    調度

    Project

    odps.instance.priority.enable

    使用訂用帳戶計算資源專案空間的作業優先順序功能開關。關於作業優先順序功能的更多資訊,請參見作業優先順序

    取值範圍:0~9,預設值為9。數值越小,優先順序越高。

    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.sql.udf.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支援。具體操作,請參見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.hive.compatible

    Hive相容模式開關。開啟Hive相容模式後,MaxCompute才支援Hive指定的各種文法,例如inputRecordReaderoutputRecordReaderSerde。關於相容資料類型的更多資訊,請參見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 byorder 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

    單作業最大執行時間。

    說明

    若需要在專案層級設定,您可以通過申請連結或搜尋(DingTalk群號:11782920)加入MaxCompute開發人員社區釘群聯絡MaxCompute支援人員團隊在後台設定。

    取值範圍為:24~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>;
  • 參數說明

  • 使用樣本

    設定允許在專案空間執行全表掃描操作。

    setproject odps.sql.allow.fullscan=true;

相關命令