云数据库 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企业版已经针对可变工作负载进行了调整,因此目前大多数系统设置不可配置。我们预计大多数用户不需要调整系统设置,如果您对高级系统调整有疑问,请联系阿里云技术支持。