全部產品
Search
文件中心

MaxCompute:引擎版本發布記錄

更新時間:Nov 26, 2025

本文為您介紹MaxCompute產品功能的發布資訊。

2025年07月

2025年07月正式發布MaxCompute引擎 V52版本,新增功能如下:

數倉引擎

2025年04月

2025年04月正式發布MaxCompute引擎 V51版本,新增功能如下:

數倉引擎

  • 新功能

    支援基於時間計算函數的自動分區表(AUTO PARTITION),支援對錶中的時間/日期類型(DATE、DATETIME、TIMESTAMP、TIMESTAMP_NTZ)的資料列,使用特定的時間計算函數進行截斷處理,自動根據資料列計算後的結果產生分區列的值,從而實現表分區。詳情請參見基於時間計算函數的自動分區表。

  • 功能增強

    • 使用ALTERTABLE REBUILD INDEX進行BLOOMFILTER索引重建時,支援REBUILD多個分區。詳情請參見產生Bloomfilter index。

    • 建立物化視圖時,在支援GETDATE基礎上,新增支援使用MAX_PT,且在改寫時用建立時刻的MAX_PT值,提升物化視圖改寫覆蓋率。詳情請參見建立物化視圖(支援分區和聚簇)。

  • 語言/文法

  • 內建函數

    • 新增 TRUNC_TIME函數,支援將日期或時間類型資料按照datepart指定的時間單位進行截取後,返回STRING類型資料。詳情請參見TRUNC_TIME。

    • 新增 BOOL_AND和BOOL_OR函數,分別對一組布爾值執行邏輯與(AND)和邏輯或(OR)操作,返回所有非空輸入值的邏輯與(AND)和邏輯或(OR)結果。詳情請參見BOOL_AND、BOOL_OR。

    • 新增 BIT_COUNT 函數,用於計算給定輸入值的二進位表示中包含1的個數。詳情請參見BIT_COUNT。

    • 新增 BITWISE_XOR_AGG 函數,對所有輸入值按位異或(XOR)計算結果。詳情請參見BITWISE_XOR_AGG。

    • 新增 ANY 函數,用於判斷輸入中是否存在至少一個為True的元素。詳情請參見ANY。

  • 效能/參數升級

    進一步增強Shuffle Removal能力,在寫Cluster表的情境下消除不必要的Shuffle,提升作業效能。

2025年02月

2025年02月正式發布MaxCompute SQL V50版本,新增功能如下:

數倉引擎

  • 資料格式

    Decimal資料類型支援更高精度的scale:Decimal小數部分的位元scale,取值範圍從[0, 18]擴大至[0, 38],需要通過Flag參數SET odps.sql.decimal2.extended.scale.enable=true;進行設定。詳情請參見2.0資料類型版本。

  • 語言/函數增強

    • STRUCT文法功能增強:支援STRUCT Expression文法,使用Named Expression命名運算式構造STRUCT類型資料,提供構造複雜類型STRUCT資料的一種新方法。詳情請參見STRUCT資料類型。

    • FIND_IN_SET函數功能增強:支援在以分隔字元分隔的字串中尋找指定的字串,並返回其位置。相比原先僅支援逗號(,)分隔字元,現支援使用者自訂STRING類型的分隔字元,實現更靈活的字串位置尋找。詳情請參見FIND_IN_SET。

    • 新增內建函數GET_DATA_FROM_OSS:支援使用函數下載Object Table表中的OSS對象檔案資料,返回BINARY位元據以供後續計算。詳情請參見查詢對象內容進行業務計算。

  • 功能增強

    • 支援MATERIALIZED CTE功能:定義CTE時,可在SELECT語句中使用MATERIALIZE HINT將CTE的計算結果緩衝至一張暫存資料表中。後續訪問該CTE時,可直接從緩衝中讀取結果,從而避免了多層CTE嵌套情境下的記憶體超限問題,同時提升了CTE語句的效能。詳情請參見MATERIALIZE CTE。

    • Bloomfilter index可觀測性增強:支援在Logview中的SubStatusHistory查看Bloomfilter index彙總花費時間。詳情請參見產生Bloomfilter index。

    • 物化視圖功能增強:完善查詢改寫能力,支援更多運算元,包括DISTRIBUTED BY、ORDER BY、ORDER BY+LIMIT、LIMIT。詳情請參見物化視圖查詢改寫。

  • 效能/參數升級

    • 對於ARRAY_CONTAINS函數,在字串尋找情境下,最佳化器將自動識別輸入參數進行SPLIT的情境,並預設將其最佳化為等價的FIND_IN_SET操作,同時適配了更多的分隔字元情境。例如:ARRAY_CONTAINS(SPLIT(c1, '_'), c2)被自動最佳化為FIND_IN_SET(c1, c2, '_'),提升了ARRAY_CONTAINS的執行效能。

    • 預設開啟動態分區Reshuffle Split能力,實現動態分區Reshuffle情境最佳化。通過對動態分區資料分路,僅對單路進行Reshuffle寫入,從而減少動態分區Reshuffle開銷,同時避免小檔案過多的問題。

    • 進一步增強Shuffle Removal能力,在MAPJOIN和PARTITIONED HASH JOIN情境下消除不必要的Shuffle,提升作業效能。

近即時數倉

  • Delta Table增量表格式CDC特性發布

    Delta Table CDC(Change Data Capture)定義了識別並捕獲資料庫表中資料的變更情境,用於記錄Delta Table增量錶行層級的插入、更新和刪除等操作,從而有效捕捉該表的資料變化事件。Delta Table CDC支援在建立時自動產生定時調度任務,調度任務會執行非同步任務產生CDC。相關文法包括CREATE、ALTER、DROP等,使用者可以基於CDC事件驅動,輔助實現增量計算、資料同步以及數倉分層等業務需求。詳情請參見CDC(邀測)。

  • Stream資料流對象新特性發布

    Stream是MaxCompute自動管理Delta Table增量查詢資料版本的流對象,記錄對增量表所進行的資料操作語言(DML)更改,包括插入、更新和刪除操作,並附帶每次更改的中繼資料,以便於您基於更改後的資料採取相應的操作。詳情請參見流對象(Stream)。

  • 周期性調度任務特性發布

    MaxCompute周期調度任務(Periodic Task)可以靈活自訂任務調度策略,執行對應的SQL計算邏輯,自動構建資料管道,簡化ETL鏈路。使用者可將任務與表資料變更以及流讀情境相結合,從而實現連續的ETL工作流程,以處理最近更改的資料。詳情請參見周期調度任務(邀測)。

  • Flink資料寫入Delta Table生態支援

    MaxCompute Delta Table支援多種資料寫入方式,MaxCompute提供了新版的Flink Connector外掛程式,支援將Flink資料寫入至MaxCompute的普通表和Delta Table類型表,提高了Flink資料寫入MaxCompute的便捷性。另外,支援Flink CDC直接寫入Delta Table。詳情請參見使用Flink寫入資料到MaxCompute。

湖倉一體和外部表格能力

  • 建立外部表格解析PARQUET格式資料檔案時,支援部分資料類型的隱式轉換,如TINYINT、SMALLINT、DATETIME等類型。

  • 外部表格支援使用MAX_PT函數查詢最新分區,可使用MAX_PT函數查詢OSS外部表格的最新的有資料的分區。詳情請參見MAX_PT。

2024年11月

2024年11月正式發布MaxCompute SQL V49版本,新增功能如下:

數倉引擎

  • 新功能

    • 支援Bitmap index(位元影像索引):在基數較大(存在大量相同值)的列上建立索引,範圍過濾情境下最多可過濾掉超過50%以上的資料,從而起到查詢加速的效果。詳情請參見Bitmap Index(Beta)。

    • 支援Bloomfilter index:布隆過濾器(Bloomfilter)是一種高效的機率型資料結構,MaxCompute支援使用Bloomfilter index處理大規模資料點查情境,減少查詢過程中不必要的資料掃描,從而提高整體的查詢效率和效能。詳情請參見Bloomfilter index(Beta)。

  • 內建函數

    • 新增內建函數JSON_EXPLODE:支援將JSON數組或JSON對象中的每個元素拆解(展開)成多行記錄。詳情請參見JSON_EXPLODE。

  • 語言增強

    • CREATE TABLE支援使用OR REPLACE更新表資訊:如果目標表已存在,可以直接更新Meta資訊。不需要先刪除表後再建立,簡化使用者SQL語句的使用,提升易用性。詳情請參見建立和刪除表。

    • 支援一次性注釋SQL中的單行或多行內容,增強代碼的可讀性。詳情請參見SQL注釋。

    • 支援SUBQUERY_MAPJOIN HINT:部分子查詢(如SCALAR/IN/EXISTS)會在執行過程中被轉換成JOIN進行計算,支援使用者在SUBQUERY中通過顯式指定Hint來使用MAPJOIN演算法提升執行效率。詳情請參見SUBQUERY_MAPJOIN HINT。

  • 新增參數

    • 原有的odps.stage.mapper.split.size參數僅支援在Mapper階段進行整體設定,新增Flag支援靈活地指定表按行或按並行度進行切分。尤其是在表中每行資料的size較小,而後續計算負擔較重的情況下,可以提高任務的並行度。詳情請參見Flag參數列表。

    • 當一個查詢重複使用相同的分區表時,您可以設定set odps.optimizer.merge.partitioned.table=true;參數,系統會對分區表進行合并,以最大限度地減少對分區表的IO操作,提升效能。詳情請參見Flag參數列表。

  • 行為變更

    • 預設對所有DML操作開啟動態分區轉靜態分區最佳化功能,以提升查詢效能。該最佳化對於UPDATE/DELETE/MERGE INTO操作有行為變更影響。詳情請參見動態分區轉靜態分區最佳化公告。

巨量資料AI(MaxFrame)

  • Logview 2.0適配MaxFrame,支援以下MaxFrame的相關功能,詳情請參見通過Logview 2.0查看MaxFrame作業:

    • 查看MaxFrame Session中提交的所有DAG的執行記錄、運行耗時等資訊。

    • 互動式查看每個DAG中的SubDAG的執行順序、已耗用時間、運算元拓撲和狀態關係。

    • 支援查看每個子執行個體的設定、運行狀態、記憶體和CPU等資源使用方式。

  • MaxFrame支援自動化打包服務:簡化了Python開發中第三方包的管理操作。該服務支援在作業開發時聲明所需的外部依賴包,在作業運行時,這些包會自動被打包並整合到作業環境中,無需手動上傳,從而減少繁瑣的打包管理工作。詳情請參見自動化打包服務。

湖倉一體和外部表格能力

  • JNI寫入Parquet外部表格時支援ZSTD壓縮

    相比原先Parquet外部表格寫入僅支援Uncompressed和Snappy壓縮格式的檔案 ,現新增對ZSTD壓縮格式的支援,即建立Parquet外部表格時支援寫入ZSTD壓縮格式的檔案,以提升壓縮率及讀寫效能,實現降本增效。詳情請參見ORC外部表格。

  • CsvStorageHandler/OpenCsvSerde資料讀寫補充資料類型支援

    • MaxCompute具備與Hive相容的OpenCSV讀寫標準(以下簡稱CsvSerde),其資料類型為Hive相容資料類型。此外,MaxCompute還提供了自訂的CsvStorageHandler讀寫標準(以下簡稱CsvHandler),其資料類型為ODPS2.0資料類型。儘管資料類型並不完全相同,但仍存在多種基本類型欄位的交集,例如INT和FLOAT等。然而,二者在對這些資料類型的解析行為上仍存在諸多差異,並且尚未形成統一標準。例如對於FLOAT類型,CsvSerde規定了對INF等特殊值的處理,而CsvHandler則沒有處理特殊值,僅嘗試使用parseFloat方法進行解析,這導致使用者在混合使用CsvHandler和CsvSerde時,會遇到基礎資料型別 (Elementary Data Type)解析行為不一致的問題。

    • 此外,CsvStorageHandler支援BOOLEAN、TIMESTAMP、DATE、DATETIME等多種基礎資料型別 (Elementary Data Type),便於將所有資料類型從MaxCompute匯出至OSS,並以CSV格式儲存。通過OSS進行跨地區複製後,資料可恢複至MaxCompute。

  • OSS外部表格支援使用RAMRole身份進行STS鑒權

    為了支援客戶通過RAMRole身份(免AK)訪問MaxCompute,或者通過雲上其他產品使用RAM Role身份訪問MaxCompute時,在外部表格情境下能夠順利進行,現已最佳化了功能。原先由於外部表格中包含MaxCompute訪問對端產品的表屬性集成的RAMRole,在角色扮演過程中無法擷取到訪問者的RAMRole身份中的使用者資訊,導致不支援直接以RAMRole身份訪問這些外部表格。現在,即便是在涉及外部表格的情況下,也能確保RAMRole身份的有效利用與無縫訪問。詳情請參見ORC外部表格。

  • Optimizer支援在Query執行中臨時統計表的Stats,從而發現小表,最佳化查詢計劃

    由於外部表格查詢的資料位元於外部資料湖,為了確保資料的開放性,系統不在本地建立中繼資料。同時由於缺乏預先統計資訊,查詢最佳化工具採用保守策略,導致查詢效率低。現支援Optimizer在Query執行中臨時統計表的Stats(統計資訊)以發現小表,從而可以主動使用HashJoin、最佳化Join Order、減少大量Shuffle或縮短執行的Pipeline等方法,最終最佳化查詢計劃。詳情請參見Paimon外部表格。