全部產品
Search
文件中心

MaxCompute:Flag參數列表

更新時間:Dec 21, 2024

您可在參數列表頁面搜尋參數,查看參數的影響範圍、屬性名稱和屬性描述。

分類

影響範圍

屬性名稱

屬性描述

取值範圍

主要影響的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.sql.split.size

設定表層級平行處理的單個分區資料大小。

單位MiB。

樣本:{"table1": 1024, "table2": 512}

ALL

調度

Session

odps.sql.split.row.count

設定表層級平行處理的單個分區行數。

說明

只能用於內部表、非事務表和非聚簇表。

取值範圍:大於0的整數。

樣本:{"table1": 100, "table2": 500}

ALL

調度

Session

odps.sql.split.dop

設定表層級的並行度。

說明

只能用於內部表、非事務表和非聚簇表。

取值範圍:大於0的整數。

樣本:{"table1": 1, "table2": 5}

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.numodps.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.merge.partitioned.table

當一個查詢重複使用相同的分區表時,支援設定該參數,系統會對分區表進行合并,以最大限度地減少對分區表的IO操作,提升效能。

  • True:開啟。

  • False:關閉。

SELECT

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。

說明

該參數同時受Task層級的總記憶體全域限制影響。同Task多個小表總記憶體全域上限=std::min(8G, odps.sql.mapjoin.memory.max * 同Task小表個數)

取值範圍:0 MiB~8192 MiB

JOIN

SQL

Session

odps.sql.distributed.map.join.memory.max

設定MAPJOIN時,HashTableBuilder的每個執行個體的記憶體大小。預設2048,單位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

Session/Project

odps.sql.unstructured.file.pattern.black.list

在MaxCompute SQL讀取外表指向的OSS或HDFS Location情境下,可以自動忽略Spark寫入此目錄時引入的_SUCCESS檔案,避免MaxCompute SQL無法讀目錄中資料的問題。例如Session層級指定:

CREATE EXTERNAL TABLE IF NOT EXISTS test_oss_pt( 
  t_id INT,
  t_string STRING)
PARTITIONED BY (pt1 INT,pt2 INT)
STORED BY 'com.aliyun.odps.CsvStorageHandler' 
WITH serdeproperties (
 'odps.properties.rolearn'='acs:ram::xxxxxx:role/aliyunodpsdefaultrole'
) 
LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/oss-mc-test/Demo3/';

SET odps.sql.unstructured.file.pattern.black.list=.*_SUCCESS$;
INSERT INTO test_oss_pt PARTITION (pt1=8,pt2=8) VALUES (1,'tree');
SELECT t_id, t_string FROM test_oss_pt WHERE pt1=8 AND pt2=8;

取值: .*_SUCCESS$

外表寫入

SQL

Session

odps.meta.exttable.stats.onlinecollect

由於外部查詢的資料存放區在資料湖中,出於開放性的考慮,無法進行本地中繼資料的處理。而且資料位元於外部且未提前收集統計資訊,在產生執行計畫時往往採取較為保守的策略,導致運行效率不高。

該功能支援Optimizer在Query執行中臨時統計表的Stats來發現小表,並主動採用Hash Join、最佳化Join Order、減少大量Shuffle和縮短執行的Pipeline等方法,最終最佳化查詢計劃。

True:開啟。

False(預設):關閉。

外表查詢

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.io.oss.use.vipserver

外表採用VIPServer方式訪問OSS,不開啟此設定則採用SLB方式訪問OSS。採用VIPServer可以實現更高的資料傳輸量上限,也可以被流控,但存在一定的穩定性風險(例如查詢失敗等)。您可以評估風險後使用。

  • True:開啟

  • False(預設):關閉

外表查詢

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指定的各種文法,例如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支援人員團隊在後台設定。

取值範圍為: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(預設):關閉。

表結構變更。

Flag參數值查詢

您可以根據以下方式查詢Project層級或Session層級的Flag參數值。

  • Project層級:在MaxCompute用戶端(odpscmd)工具中執行setproject;命令即可查出專案中所有的Flag參數值。

  • Session層級:Session層級的參數值請在Logview中查看。