ClickHouse是什么?mr Su

ClickHouse入门

1 什么是click house?

ClickHouse是一个用于在线联机分析(OLAP)的列式数据库管理系统(DBMS);

不同的数据存储方式适用不同的业务场景,数据访问的场景包括:进行了何种查询、多久查询一次以及各类查询的比例; 每种查询读取多少数据————行、列和字节;读取数据和写入数据之间的关系;使用的数据集大小以及如何使用本地的数据集;是否使用事务,以及它们是如何进行隔离的;数据的复制机制与数据的完整性要求;每种类型的查询要求的延迟与吞吐量等等。

但是列式存储更适合OLAP场景!~

系统负载越高,依据使用场景进行定制化就越重要,并且定制将会变的越精细。没有一个系统能够同时适用所有明显不同的业务场景。如果系统适用于广泛的场景,在负载高的情况下,要兼顾所有的场景,那么将不得不做出选择。是要平衡还是要效率?

2 OLAP特点

  • 大多数都是读请求,少数写操作;
  • 虽然写入数据的次数相对较少,但是每次都是以很大批次的量进行写入;
  • 只要数据写入,就不作修改;
  • 每次查询都数据库中读取大量的行,但是仅仅又值读取少量的所需要的列;
  • 宽表,每个表中包含大量的列;
  • 对于简单查询,允许延迟大于50ms;
  • 列中存储的数据相对较小,一般是数字类型的数据和短的字符串;
  • 处理单个查询的时候需要高吞吐量(每个服务器每秒高达数10亿行);
  • 事务不是必须的;
  • 对数据一致性要求相对RDBM较低;
  • 每个查询除了一个大表外都很小;
  • 查询结果明显小于查询的数据范围,聚合后的数据能存放在内存中;

很容易可以看出,OLAP场景与其他通常业务场景(例如,OLTP或K/V)有很大的不同, 因此想要使用OLTP或Key-Value数据库去高效的处理分析查询场景,并不是非常完美的适用方案。例如,使用OLAP数据库去处理分析请求通常要优于使用MongoDB或Redis去处理分析请求

3 列式存储的优点

3.1 I/O

  • 针对分析查询类的需求,通常只需要读取表的一小部分列,在列式存储数据库中只查询你想要的数据,假如你只需要读取100列中的5列,那么至少减少你20倍的IO消耗
  • 由于数据总是打包成batch进行读取的,列式数据存储更紧凑,在压缩速度与压缩比例上很有优势,能较少内存以及IO的消耗;
  • 由于IO的降低,那么这有利于更多的数据被系统内存缓存;

3.2 CPU

由于执行一个查询需要处理大量的行,因此在整个向量上执行所有操作比在整个行上进行所有操作更加高效,CPU不需要因为处理负载而频繁的处于等待的状态。

NOTE:为了提高CPU的效率,查询语言必须是声明型语言(SQL或者MDX)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值