全部產品
Search
文件中心

ApsaraDB for ClickHouse:24.12企業版發布詳情

更新時間:Jul 11, 2025

本文介紹雲資料庫ClickHouse24.12企業發布的功能詳情。

新特性

  • 支援通過SYSTEM LOAD PRIMARY KEY命令,載入指定表(或所有表)所有分區的主索引,有助於基準測試和避免查詢執行時的額外延遲。

  • 新增CHECK GRANT查詢,用於檢查目前使用者/角色是否擁有特定許可權,以及對應表/列是否存在於記憶體中。

  • 新增工作負載和資源管理的SQL文法描述。

  • 實現Iceberg格式表的讀取功能,支援列順序、列名變更及簡單類型擴充。

  • 允許每種認證方式設定獨立到期時間,並從使用者實體中移除相關設定。

  • 支援將外部使用者角色從查詢發起節點推送到叢集其他節點(適用於僅發起節點可訪問外部認證服務如LDAP的情況)。

  • 支援從String類型ALTER到JSON類型,同時將JSON和Dynamic類型的序列化升級為V2版本(可通過設定merge_tree_use_v1_object_and_dynamic_serialization回退到V1版本)。

  • 新增toUnixTimestamp64Second函數,將DateTime64轉換為固定秒精度的Int64值(支援1970年1月1日前的負值)。

  • 新增設定enforce_index_structure_match_on_partition_manipulation,允許當源表的投影和二級索引是目標表子集時執行ATTACH操作。

  • 新增Spark文本輸出格式支援(預設關閉)。

  • S3端點新增access_header認證頭類型(優先順序最低,可被其他配置覆蓋)。

  • 初步實現設定分層功能。

  • 支援ORDER BY WITH FILL中的staleness子句。

  • 實現Map/Tuple/Object到JSON的簡單CAST轉換(通過JSON字串序列化/還原序列化)。

  • 為彙總函式any/anyLast新增camelCase風格別名(如anyLastRespectNulls)。

  • 新增配置參數date_time_utc,支援JSON日誌使用RFC 3339/ISO8601格式的UTC時間。

  • 新增設定query_plan_join_swap_table,可選擇作為內表(構建表)的串連側(auto模式下自動選擇行數較少的表)。

  • 最佳化索引粒度值的記憶體使用量(當分區粒度恒定時),新增設定use_const_adaptive_granularity確保記憶體最佳化。

  • 實現全域開關allowed_feature_tier以禁用所有實驗性/測試功能。

  • 新增iceberg/deltaLake/hudi的Cluster表函數。

  • 支援ALTER USER/ROLE/PROFILE的SETTING/PROFILE修改文法。

  • 新增arrayPrAUC函數(計算精確召回曲線下面積)。

  • 為MergeTree表實現 primary index 緩衝(通過use_primary_key_cache啟用),支援按需載入(類似標記緩衝)和預熱(通過prewarm_primary_key_cache)。

  • 新增數組函數indexOfAssumeSorted(針對非遞減排序數組最佳化搜尋)。

  • 彙總函式groupConcat支援分隔字元作為第二選擇性參數。

  • 新增設定http_response_headers支援自訂HTTP回應標頭。

  • 新增fromUnixTimestamp64Second函數(將Int64時間戳記轉為DateTime64)。

效能最佳化

  • 新增設定short_circuit_function_evaluation_for_nulls,當Nullable列中NULL值比例超過閾值時,函數僅對非NULL行執行。

  • 最佳化Object Storage Service磁碟的--recursive刪除操作記憶體使用量。

  • 使用join_algorithm='parallel_hash'時避免為平行處理複製輸入塊列。

  • 為更多運算式啟用JIT編譯(如abs/bitCount/比較函數/邏輯函數等)。

  • join_algorithm設為default時優先考慮parallel_hash演算法。

  • 最佳化非相交分區的Replacing合并演算法。

  • 通過減少臨界區提升system.query_metric_log收集效能。

  • 新增設定optimize_extract_common_expressions支援從WHERE/ON條件提取公用運算式以減少串連時的雜湊表數量。

  • 支援對LowCardinality(String)使用索引。

  • 在並行副本查詢中,工作節點跳過索引分析(由協調節點完成)。

  • 最佳化Compact Part單列子列讀取最佳化。

  • 最佳化LowCardinality(String)列排序效能。

  • 最佳化單一資料型別的argMin/Max函數效能。

  • 最佳化記憶體跟蹤器的共用鎖定爭用。

  • 新增設定use_async_executor_for_materialized_views支援物化視圖非同步多線程執行(提升INSERT效能但增加記憶體消耗)。

  • 提高彙總和串連預分配記憶體的預設閾值(至10^12)。

  • 最佳化彙總函式狀態(AggregateFunction資料類型和分散式查詢中)的還原序列化效能,略微提升RowBinary格式解析效能。

非相容變更

  • 函數greatestleast現在會忽略NULL輸入值,而此前只要有一個參數為NULL就會返回NULL。例如SELECT greatest(1, 2, NULL)現在返回2,該行為與PostgreSQL保持一致。

  • 預設禁止在ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY中使用Variant/Dynamic類型,因其可能導致意外結果。

  • 移除系統資料表generate_seriesgenerateSeries(此前被錯誤添加)。

  • 修複JSON子列檔案中因特殊符號未轉義導致的“檔案不存在”錯誤。

  • Kafka、NATS和RabbitMQ表引擎現在歸入SOURCES層級中的獨立許可權項,需為非預設資料庫使用者添加這些引擎的建立許可權。

  • 在執行query前全面檢查mutation查詢(包括子查詢),防止意外執行無效的查詢或mutation。

  • 重新命名檔案系統快取設定skip_download_if_exceeds_query_cachefilesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit

  • 禁止在min/max函數中使用Dynamic/Variant類型以避免混淆。

  • 移除deltaSumTimestamp函數對Enum、UInt128和UInt256參數的支援,同時移除其對第二參數("timestamp")的Int8/UInt8/Int16/UInt16支援。

  • 新增字典源查詢驗證功能(當ClickHouse作為字典資料來源時)。

改進

  • 含常量數組的高階函數將返回常量值。

  • 通過虛設項目列產生最佳化有序讀取(特別適用於多分區情境)。

  • 查詢計劃步驟名和流水線處理器名現在包含唯一ID尾碼(便於與效能分析工具關聯)。

  • 顯式取消或終結寫緩衝區,異常時通過HTTP協議中斷通知用戶端。

  • 移除allow_experimental_join_condition設定,預設允許非等值串連條件。

  • 預設啟用parallel_replicas_local_plan(在查詢發起節點構建完整本地計劃提升效能)。

  • http_handlers支援設定使用者/密碼(用於dynamic_query_handler/predefined_query_handler)。

  • S3Queue儲存支援ALTER TABLE MODIFY/RESET SETTING修改特定設定。

  • 列表目錄時不調用Object Storage ServiceAPI(改為記憶體隱藏檔名列表,權衡初始載入時間和記憶體佔用)。

  • 新增設定prewarm_mark_cache支援在插入/合并/擷取分區時預熱標記緩衝。

  • Parquet原生閱讀器支援布爾類型。

  • 增加S3錯誤重試類型(如“Malformed message”)。

  • 降低部分S3相關記錄層級。

  • 支援寫入含空格路徑的HDFS檔案。

  • 修複並行副本查詢中的RIGHT/FULL串連(RIGHT表現在可分布式讀取)。

  • 新增複製表/字典/視圖的數量限制設定。

  • 自動根據記憶體使用量情況啟用GROUP BY/ORDER BY外部排序(通過max_bytes_ratio_before_external_group_by/sort控制)。

  • 函數translate支援字元刪除(當from參數比to參數長時)。

  • 新增parseDateTime64系列函數(返回DateTime64類型)。

  • 收縮MergeTree系列引擎的index_granularity數組記憶體佔用。

  • 命令列應用支援多語句文法高亮。

  • 命令列應用在錯誤時返回非零退出碼。

  • Vertical格式(\G結尾時啟用)新增Pretty格式特性(如數字千分位分隔)。

  • 允許通過filesystem_cache_prefer_bigger_buffer_size禁用檔案系統快取記憶體緩衝增長。

  • 新增background_download_max_file_segment_size設定控制檔案系統快取後台下載分段大小。

  • 預設啟用HTTP壓縮(enable_http_compression=1)。

  • 支援從Object類型ALTER到JSON類型。

  • 改進JSON類型解析:當路徑對應多類型值時按首選順序嘗試。

  • 讀取system.asynchronous_metrics不再等待並發更新完成。

  • 設定polling_max_timeout_ms=10分鐘,polling_backoff_ms=30秒。

  • 簡單查詢(如SELECT - FROM t LIMIT 1)不再載入分區索引。

  • 預設啟用allow_reorder_prewhere_conditions(舊相容設定下)。

  • 字典直查時只需SELECT或dictGet許可權(修複ACL繞過問題)。

  • 進階儀錶盤頁面新增system.dashboards表的選取器。

  • 分布式INSERT...SELECT時尊重prefer_locahost_replica設定。

  • 將JSON/Dynamic/Variant類型從實驗功能更新為Beta。

  • 允許在物化視圖查詢中使用UNION(僅第一個表會觸發插入)。

  • 最佳化單分區索引值批插入的MergeTree寫入效能。

  • 新增system.metrics指標MergeTreeIndexGranularityInternalArraysTotalSize(用於檢測高記憶體使用量問題)。

  • 識別Format Null查詢中的所有Null拼字變體。

  • 允許Enum類型的set中存在未知值。

  • 新增system.tables的total_bytes_with_inactive列統計非活躍分區大小。

  • 將MergeTreeSettings加入system.settings_changes。

  • 支援Enum類型的字串搜尋操作(如like)。

  • 支援JSON類型的notEmpty函數。

  • 支援解析GCS S3的AuthenticationRequired錯誤。

  • 支援Dynamic類型在ifNull和coalesce函數中使用。

  • 新增JoinBuildTableRowCount/JoinProbeTableRowCount/JoinResultRowCount效能事件。

  • 支援Dynamic類型在toFloat64/toUInt32等函數中使用。

bug修複

  • 修複ATTACH PART查詢中重複分區卡在attaching_狀態的問題。

  • 修複DateTime64在IN函數中丟失精度的問題。

  • 修複ORDER BY ... WITH FILL中IGNORE/RESPECT NULLS函數的邏輯錯誤。

  • 修複Native格式非同步插入達到記憶體限制時的邏輯錯誤。

  • 修複EPHEMERAL列CREATE TABLE注釋問題。

  • 修複JSONExtract與LowCardinality(Nullable)的類型錯誤。

  • 修複表名過長時的行為問題。

  • URL引擎支援通過使用者頭覆蓋Content-Type。

  • 修複StorageS3Queue“無法在/processed建立持久節點”錯誤。

  • 修複輕量級刪除投影重建時未考慮_row_exists列的問題。

  • 修複system.query_metric_log因競態條件導致的值錯誤。

  • 修複quantileExactWeightedInterpolated函數名不匹配問題。

  • 修複Dynamic類型比較函數中的bad_weak_ptr異常。

  • 零拷貝複製下存在使用節點時不刪除blob。

  • 修複HTTP和非同步插入中Native格式設定被忽略的問題。

  • 修複use_query_cache=1時含系統資料表字面量的查詢被拒絕問題。

  • 修複未配置緩衝的磁碟儲存記憶體增長問題。

  • 修複Dynamic列還原序列化LowCardinality字典時的“無法讀取所有資料”錯誤。

  • 修複用戶端並行輸出格式清理不完整問題。

  • 修複命名集合中的轉義缺失問題(可能導致服務無法啟動)。

  • 修複原生協議空塊的非同步插入問題。

  • 修複錯誤萬用字元授權時的AST格式化不一致問題。

  • 修複含Variant列的Chunk行數錯誤。

  • 修複mongodb表函數參數錯誤(如NULL)時的崩潰。

  • 修複optimize_rewrite_array_exists_to_has導致的崩潰。

  • 修複palin_rewritable磁碟建立目錄失敗時的交易回復錯誤。

  • 修複max_insert_delayed_streams_for_parallel_write在寫入多分區時的高記憶體使用量問題。

  • 修複WHERE條件中出現arrayJoin時的“函數參數必須為常量”錯誤(舊分析器)。

  • 修複SortCursor在0列時的崩潰(舊分析器)。

  • 修複ORC資料未初始化導致的date32越界問題。

  • 修複Dynamic和JSON類型在wide部分的大小統計。

  • 修複物化視圖內查詢使用CTE的IN子句時的分析器問題。

  • 修複bitShift函數越界時返回0或預設字元(而非拋出異常)。

  • 修複特定引擎物化視圖的伺服器崩潰問題。

  • 修複含常量數組別名的嵌套結構體ARRAY JOINnull 指標解引用。

  • 修複空元組ALTER時的LOGICAL_ERROR。

  • 修複NOT IN操作符下分區列謂詞的常量集合轉換問題。

  • 修複LowCardinality(Nullable)到Dynamic的CAST錯誤。

  • 修複DateTime64主鍵上toDayOfWeek在WHERE條件中的異常。

  • 修複稀疏列解析後的預設值填充問題。

  • 修複分布式表ALIAS輸入時GROUPING函數錯誤。

  • 修複WITH TIES子句可能返回不足行數的問題。

  • 修複arrayWithConstant評估誤判數組大小限制導致的TOO_LARGE_ARRAY_SIZE異常。

  • 修複clickhouse-client進度列指示器與進度表的資料競爭(使用FROM INFILE時可見)。

  • 修複Pretty JSON格式中Dynamic值的序列化問題。

  • 修複s3/s3Cluster函數在glob模式(如pattern/*)下遇到Null 物件(如pattern/)時返回不完整結果或異常的問題。

  • 修複clickhouse-client文法高亮崩潰問題。

  • 修複ORDER BY中首參數為常量的二進位單調函數的“Illegal type”錯誤。

  • 限制EXPLAIN AST子查詢中僅允許SELECT查詢(其他類型會導致邏輯錯誤)。

  • 修複format_alter_commands_with_parentheses啟用時MOVE PARTITION的格式化問題。

  • 為File/S3/URL/HDFS/Azure引擎的建立查詢添加推斷格式名(防止服務重啟時因資料檔案刪除導致的錯誤)。

  • 修複min_age_to_force_merge_on_partition_only對已合并為單分區的重複操作問題。

  • 修複稀疏列處理時SimpleSquashingChunksTransform的罕見崩潰問題。

  • 修複GraceHashJoin的資料競爭導致串連結果缺行問題。

  • 修複啟用enable_block_number_column時的ALTER DELETE查詢問題。

  • 修複ColumnDynamic::dumpStructure()並發調用(如ConcurrentHashJoin構造時)的資料競爭。

  • 修複ORDER BY ... WITH FILL中重複列的LOGICAL_ERROR問題。

  • 修複optimize_functions_to_subcolumns應用後的類型不符問題。

  • 修複BACKUP DATABASE db EXCEPT TABLES db.table查詢的解析失敗問題。

  • 禁止建立空Variant類型。

  • 修複system.merges中result_part_path的無效格式化問題。

  • 修複單元素glob解析問題。

  • 修複含ARRAY JOIN的分散式查詢在從伺服器上的查詢產生問題。

  • 修複DateTime64在DateTime64中無返回結果的錯誤。

  • 修複S3Queue無序模式下tracked_files_limit小於檔案出現速率時的“No such key”錯誤。

  • 最佳化大標記緩衝刪除時的上下文互斥鎖佔用問題。

  • 修複主金鑰快取對LowCardinality列字典大小的低估問題。

  • 修複RemoteQueryExecutor在本機使用者不存在時的異常拋出問題。

  • 修複啟用enable_block_number_column時的突變操作問題。

  • 修複備份中含空檔案時plain rewritable磁碟的備份/恢複問題。

  • 修複DistributedAsyncInsertDirectoryQueue中的插入取消問題。

  • 修複解析錯誤資料到稀疏列時的崩潰問題(enable_parsing_to_custom_serialization啟用時可能發生)。

  • 修複備份恢複期間的潛在崩潰問題。

  • 修複parallel_hash JOIN在ON子句含複雜不等條件時的潛在問題。

  • 使用預設格式設定進行JSON解析以避免還原序列化中斷。

  • 修複不支援儲存引擎的事務崩潰問題。

  • 修複Tuple解析時的重複JSON鍵檢查缺失問題(此前可能導致“Chunk行數無效”邏輯錯誤)。