完备的DBSM功能
作为一个DBSM,ClickHouse的基础功能:
- DDL(数据定义语言):动态修改、创建数据库的表、实图等,而无需重启数据库
- DML(数据操作语言):可以动态插入、修改数据
- 权限控制:可以按照用户粒度来区分查询,保障数据库安全
- 数据备份与恢复
- 数据库分布式管理
列式存储和数据压缩
这算是ClickHouse最知名的特性。 Click House作为一个OLAP数据库,不像MySQL一样使用行式存储数据,而是使用列式存储数据,也就是把一行的数据存在一起。一个例子:
MySQL:
{jack, 20, 2021-02-01}
{black, 18, 2022-01-01}
{jane, 25, 2022-02-01}
ClickHouse:
{jack, black, jane}
{20, 18, 25}
{2021-02-01, 2022-01-01, 2022-02-01}向量化执行引擎
ClickHouse利用CPU的SIMD指令来做向量化查询,能充分利用现代CPU特性,提升查询效率。
关系模型和SQL查询
ClickHouse支持关系模型和SQL查询,意味着所有常见的SQL查询语句在ClickHouse中都是合法的,从其它关系型数据库迁移到ClickHouse的成本较低。
多样化的表引擎
多线程和分布式
如果说SIMD指令是在数据层面优化了数据处理性能,那多线程就是在线程级别使用并行来优化性能。线程级别的并行比SIMD普及更早,能够形成互补。
分布式就是避免“鸡蛋都放在同一个篮子”,提升服务的可用性。
多主架构
天然避免了单点故障。
在线查询
高效+开源