是一款开源的面向列的允许使用sql实时的生成分析报告的ROLAP数据库
它比传统OLAP数据库快100-1000倍,其计算性能远超现有的任何一款面向列式存储的数据库,单台机器每秒处理十几亿到几十亿的字节数据,具体指标可观看:官网性能对比,确实是当前市面上最最最高效的单表分析OLAP引擎(真话)
磁盘、cpu .相较于传统的列式存储使用同样的磁盘和cpu,其典型sql分析速度快2到3个量级,即使是使用普通的机械硬盘也不会对查询性能有多大的影响,降低使用固态盘成本.
ck在水平扩展(增加实例扩充机器)以及垂直扩展(增加单机配置)都表现的很好,可在单个服务器上执行,单点数据量可超过万亿行数百T,yandex的ck集群远远超过1000个节点
没有完成的事物支持(支持部分事物)
3.2 稀疏索引导致ck不擅长细粒度或kv类型数据的查询需求-稀疏索引导致查询某条数据时直接查询那一批数据
缺少高频率、低延时的修改或删除数据的能力.仅能用于批量删除或修改数据-即实时高效写入能力比较弱
不擅长join操作
低并发,并发很难超过100,通常是个位数
快速启动,(外事问google)踩坑centos7系统启动任务需要使用 systemctl start clickhouse-server方式
官网教程支持中文
ck有库引擎和表引擎两种,库引擎是创建库时指定的引擎
默认的引擎,支持所有的表引擎 – 生产通常使用这种引擎
字典引擎,此数据库会自动为所有数据字典创建表
所有数据只会保存在内存中,服务重启数据丢失,该库只能使用memory表引擎
该引擎会自动拉取远端mysql中数据,并在该库下创建mysql表引擎的数据表
将最近一次访问间隔时间段内的数据放在内存中,仅使用log引擎表 --适用于连续频繁访问同一批的数据
表引擎在ck中十分中要,不同的表引擎具有不同的特性
不同的表引擎决定了数据的存储方式以及位置 --有的表引擎的数据在内存,有的在磁盘
4大类,28种小类(扩展:mysql引擎常见9种,几乎用inodb,其它如memory、MyISAMD、Active等)
MergeTree(海量数据分析用到的最多的引擎,几乎支持所有的ck核心功能)、Data Replication、custom partitionning key、 replacingMergeTree…GrapHitemergeTree 等都是基于MergeTree衍生而来的
stripelog、Log、special 用来做小表(少于一百万行)的数据分析,数据是存储磁盘,写入时是文件追加、不支持索引、不支持突变操作(DDL)
kafka、MySQL、JDBC、ODBC、HDFS, 数据依旧存储在上述的外部存储介质中(类似于hive中创建HBase的映射表),只是使用ck的计算引擎进行分析
Null(所有往这样表插入的数据都是空,用于测试语句完整性)、merge(可以将多张表逻辑合并成一张,要求表结构完全一致)、View、MaterializedView、File、Set、URL、dictionary、external data、distributed、join