Clickhouse 是一个用于实时数据分析的开源数据库,由俄罗斯的 Yandex 开发。它以高性能和卓越的可扩展性著称,专门用于高性能数据分析。CK(Clickhouse简称)主要用于大规模数据集的高速查询和分析,特别适用于 OLAP(联机分析处理)工作负载。

CK为MPP架构列式数据库系统,使用shard(类似HBase的Region)和Replication,不支持事务(批量插入支持,只是不支持读写分离),不擅长按行删除数据。Clickhouse使用C语言开发,具有Hive,Kylin,HBase,Impala、Presto等的优点,抛弃了HDFS底层存储架构。缺点是C语言开发,不好开发扩展。

Clickhouse没有主从结构,使用Zookeeper管理元数据。支持从Flink(似乎使用Kafka相关jar包)写入数据,因为Clickhouse频繁写入性能较低,流式数据最好设置BatchSize一次性写入数据大小,建议1000条以上。Spark写入Clickhouse也可以(Jar直接调用)。Clickhouse也可用自身的表引擎直接将Kafka数据或MySQL数据导入到Clickhouse,在数据不需要ETL处理时可以这么做。Hive中的数据可以通过Waterdrop导入到Clickhouse。

Clickhouse 的特点和优势包括:

  • 列式存储:CK将数据按列存储在磁盘上,有助于压缩数据以及优化分析查询性能。
  • 分布式架构:支持水平扩展和集群部署,能够处理大规模数据,并提供高可用性。
  • 并行处理:能够同时利用多个 CPU 核心进行并行计算,提高查询处理速度。
  • 支持向量引擎:CK主要通过 SIMD 内置函数和编译器自动向量化实现,专用的数据结构和搜索算法来支持向量存储和查询。
  • 高性能:Clickhouse 针对大数据量和高吞吐量进行了优化,能够在秒级内查询和分析数十亿行数据。
  • 灵活的查询语言:支持 SQL 查询语言,提供了丰富的查询功能,包括聚合、分组、排序等。

Clickhouse主要适用场景包括:

  1. 实时数据仓库:支持高并发、高吞吐量的查询,适用于快速响应实时数据的分析查询需求。
  2. 分布式分析:适用于大规模数据分析场景,支持分布式部署和高度扩展性,能够处理PB级别的数据规模。
  3. 大规模数据分析和报表:用于生成报表、数据可视化以及对海量数据进行查询和分析。
  4. 日志和事件数据处理:适用于处理大量日志和事件数据,支持对日志和事件数据进行快速的聚合、筛选和分析。
  5. 高性能时序数据存储:Clickhouse 的列式存储、数据压缩和查询优化,使其在存储大量时序数据时表现出色。
  6. 数据仓库存储:作为数据仓库存储系统,适用于存储和分析大量结构化数据,支持复杂的数据存储和查询。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐