ClickHouse应用开发简介
ClickHouse简介
ClickHouse是面向联机分析处理的列式数据库,支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。
ClickHouse的设计优点:
- 数据压缩比高
- 多核并行计算
- 向量化计算引擎
- 支持嵌套数据结构
- 支持稀疏索引
- 支持数据Insert和Update
ClickHouse的应用场景:
ClickHouse开发接口简介
ClickHouse由C++语言开发,定位为DBMS,支持HTTP和Native TCP两种网络接口协议,支持JDBC、ODBC等多种驱动方式,推荐使用社区版本的clickhouse-jdbc来进行应用程序开发。
基本概念
- cluster
cluster(集群)在ClickHouse里是一种逻辑的概念,它可以由用户根据需要自由的定义,与通常理解的集群有一定的差异。多个ClickHouse节点之间是一种松耦合的关系,各自独立存在。
- shards
shard(分片)是对cluster的横向切分,1个cluster可以由多个shard组成。
- replicas
replica(副本),1个shard可以有多个replica组成。
- partition
partition(分区),针对的是本地replica而言的,可以理解为是一种纵向切分。
- MergeTree
ClickHouse拥有非常庞大的表引擎体系,MergeTree作为家族系统最基础的表引擎,提供了数据分区、一级索引和二级索引等功能。在创建表的时候需要指定表引擎,不同的表引擎会决定一张数据表的最终“性格”,比如数据表拥有何种特性、数据以何种形式被存储以及如何被加载。