云數據庫 ClickHouse 企業版是基于開源的云上版本構建,但是在架構和功能上也存在了一些差異。您可以參考ClickHouse官網上有關ClickHouse企業版的日志了解背景信息。本文介紹云數據庫 ClickHouse 企業版的架構及兼容性指導。
企業版架構
云數據庫 ClickHouse 企業版極大地簡化了運營開銷,并降低了大規模運行ClickHouse的成本。您不需要提前部署集群規格、設置高可用性的副本以及手動數據分片,當工作負載增加時擴展服務器或者工作負載降低時縮減服務器,這些都是由ClickHouse內部來處理的。
云數據庫 ClickHouse 企業版架構具有如下優勢:
計算和存儲分離,因此可以根據不同的維度進行自動擴展,這樣您就不必在靜態實例配置中過度預留存儲或計算資源。
在對象存儲之上使用分層存儲和多級緩存,提供了幾乎無限的擴展性和良好的性價比,因此您不必事先確定存儲分區的大小,并擔心高昂的存儲成本。
默認開啟高可用性,并且復制是透明管理的,因此您可以專注于構建應用程序或分析數據。
默認情況下啟用了用于可變連續工作負載的自動擴展,在工作負載增加時擴展服務器,在活動較少時縮減服務器,因此您不需要事先確定服務器的大小。
高級縮放控件提供了設置自動縮放最大值實現額外成本控制,或設置自動縮放最小值為具有專門性能要求的應用程序保留計算資源的能力。
兼容性
云數據庫 ClickHouse 企業版提供了一組在開源版ClickHouse中的精選功能。下面描述了目前在云數據庫ClickHouse企業版中部分功能概覽。
DDL語法
通常,云數據庫 ClickHouse 企業版的DDL語法應該與自管理安裝中可用的語法相匹配。但也有一些例外情況如下。
云數據庫 ClickHouse 企業版目前不支持
CREATE AS SELECT
語法。建議使用CREATE ... EMPTY ... AS SELECT
語法,然后將數據插入到該表中,詳細信息請參見Getting Data Into ClickHouse - Part 1。云數據庫 ClickHouse 企業版目前不支持一些實驗性的語法,例如
ALTER TABLE … MODIFY QUERY
語句。云數據庫 ClickHouse 企業版出于安全考慮,會禁用一些默認功能,例如
addressToLine
SQL函數。云數據庫 ClickHouse 企業版不支持
ON CLUSTER
參數 。
數據庫和表引擎
云數據庫ClickHouse企業版默認提供高可用服務。支持以下表引擎:
SharedMergeTree (default, when none is specified)
SharedSummingMergeTree
SharedAggregatingMergeTree
SharedReplacingMergeTree
SharedCollapsingMergeTree
SharedVersionedCollapsingMergeTree
MergeTree (converted to SharedMergeTree)
SummingMergeTree (converted to SharedSummingMergeTree)
AggregatingMergeTree (converted to SharedAggregatingMergeTree)
ReplacingMergeTree (converted to SharedReplacingMergeTree)
CollapsingMergeTree (converted to SharedCollapsingMergeTree)
VersionedCollapsingMergeTree (converted to SharedVersionedCollapsingMergeTree)
URL
View
MaterializedView
GenerateRandom
Null
Buffer
Memory
Deltalake
Hudi
MySQL
MongoDB
NATS
PostgreSQL
Kafka
S3
說明云數據庫 ClickHouse 企業版簡化了建表步驟,因此不需要使用分布式表引擎(Distributed)。
字典
云數據庫 ClickHouse 企業版目前支持從PostgreSQL、MySQL、遠程和本地ClickHouse服務器、Redis、MongoDB和HTTP來源獲取字典,以加速ClickHouse中的查找操作。
聯邦查詢
云數據庫 ClickHouse 企業版支持在云中進行跨集群通信和與外部的自建ClickHouse集群通信,目前支持的整合引擎有:
Deltalake
Hudi
MySQL
MongoDB
NATS
PostgreSQL
OSS
云數據庫 ClickHouse 企業版目前不支持某些與外部數據庫和表引擎進行聯合查詢,例如SQLite、ODBC、JDBC、Redis、RabbitMQ、HDFS和Hive。
實驗功能
實驗性功能通常在ClickHouse中用于測試新功能或潛在的改進。這些功能可能會包括新的SQL語法、查詢優化或其他性能改進。在開發環境中,用戶可以自行啟用實驗性功能。但在ClickHouse 企業版的生產環境中,默認情況下會禁用這些功能,以確保生產環境的穩定性。如果您希望在生產環境中啟用某個實驗性功能,請與我們的支持團隊聯系,以討論相關事宜。這將確保功能的啟用不會影響到生產環境的穩定性。
操作默認值和考慮因素
以下是云數據庫ClickHouse企業版集群的默認設置。這些設置一般為默認值以確保服務的正確運行,而在特殊情況下您可以對默認值進行調整。
Limits設置
max_parts_in_total: 10,000
max_parts_in_total設置的默認值對于MergeTree表已從100,000降低到10,000。這個變更的原因是我們觀察到大量的數據部分可能導致云中服務的啟動時間較慢。大量的部分通常表示選擇了過于細粒度的分區鍵,這通常是出于錯誤而選擇的,應該避免。默認值的更改將允許更早地檢測到這些情況。這個設置控制了表中可以擁有的最大數據部分數量。
系統設置
云數據庫ClickHouse企業版已經針對可變工作負載進行了調整,因此目前大多數系統設置不可配置。我們預計大多數用戶不需要調整系統設置,如果您對高級系統調整有疑問,請聯系阿里云技術支持。