云数据库ClickHouse中涉及多个专业术语,在本页面进行详细解释。
集群(Cluster)
在物理构成上,云数据库ClickHouse集群是由多个云数据库ClickHouse服务器节点组成的分布式数据库。这些节点协同工作,共同处理和存储数据,提供高可用性和扩展性。
分片(Shard)
云数据库ClickHouse集群将数据分散存储到多台服务器上,每台服务器存储和处理数据的一个子集,称为分片。每个分片可以包含单个或多个服务器,通过水平分割数据负载,实现并行处理和高性能查询。
副本(Replica)
云数据库ClickHouse提供副本机制,将数据冗余存储至2台或多台服务器上,以提高数据的可靠性和冗余容错能力。副本保证了数据的备份和故障恢复,当一个节点出现故障时,可以切换到其他副本节点,确保数据的持久性和可用性。
数据库(DataBase)
云数据库ClickHouse集群逻辑上包含多个数据库,每个数据库是一个独立的命名空间,用于组织和管理表、列、视图、函数等相关对象。每个数据库可以拥有自己的数据结构和访问权限,实现数据的逻辑隔离和管理。
表(Table)
表是云数据库ClickHouse中数据的组织形式,用于存储和管理具有相同结构的数据。根据数据分布方式,表可以是本地表或分布式表;根据存储引擎,表可以是单机表或复制表。
本地表(Local Table)
本地表的数据只会存储在当前写入的节点上,不会被分散到多台机器。本地表适用于对单个节点的资源进行有效利用的场景,但缺乏横向扩展能力。
分布式表(Distributed Table)
分布式表是云数据库ClickHouse中本地表的集合,将多个本地表抽象为一张统一的表,对外提供写入和查询功能。当写入分布式表时,数据会被自动分发到集合中的各个本地表中;当查询分布式表时,集合中的各个本地表都会被分别查询,最终结果会被汇总后返回。分布式表具备良好的横向扩展能力,可以利用多台服务器的存储和计算资源来处理大规模数据。
表引擎
表引擎即表类型,决定数据的存储方式和位置、支持的查询以及访问、索引、主备复制等特性。云数据库ClickHouse提供了多种表引擎,主要为以下4个系列。MergeTree系列:核心存储引擎,最通用和功能最强大的表引擎,支持数据Replicated和Distributed。Log系列:功能相对简单,主要用于快速写入小表(1百万行左右的表),然后全部读出的场景。Integration系列:主要用于将外部数据如Kafka、HDFS、Mysql导入到云数据库ClickHouse中,或者在云数据库ClickHouse中直接操作外部数据源。Special系列:为特定场景而定制,如数据内存存储、为目标表配置buffer、数据存本地文件等。
单机表
单机表的数据只会存储在当前机器上,不会被复制到其他机器。单机表适用于对数据的冗余存储要求较低的场景,适合小规模数据集的处理和分析。
复制表
复制表的数据会被自动复制到多台机器上,形成多个副本。复制表通过数据冗余和备份提高数据的可靠性和容错能力。当其中一个副本节点出现故障时,系统可以切换到其他副本节点,确保数据的持久性和可用性。复制表适用于对数据可靠性和冗余要求较高的场景,确保数据的安全性和高可用性。