【大数据】ClickHouse是什么呢

一、ClickHouse是什么

ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)
说到列式数据库,一定会想到行式数据库,那我们就以行式数据库与列式数据库存储形式的对比来了解下列式数据库究竟是什么样的

在行式数据库系统中,数据按如下顺序存储:

rowidnamesex
18343829382张三
23247832994李四
31943058349王五
N

在列式数据库系统中,数据按如下顺序存储:

row123N
id834382938232478329941943058349
name张三李四王五
sex

看到这样的表格,想必我们也就对列式存储有些认识了
其实我们一般常用的数据库MySQL、SQL Server都是行式数据库系统,而常见的列式数据库有:Vertica、 Paraccel (Actian Matrix,Amazon Redshift)、 Sybase IQ、 Exasol、 Infobright、 InfiniDB、 MonetDB (VectorWise, Actian Vector)、 LucidDB、 SAP HANA、 Google Dremel、 Google PowerDrill、 Druid、 kdb+

二、ClickHouse特点

(1)支持线性扩展
(2)简单方便
(3)高可靠性
(4)容错

三、ClickHouse应用场景

列式数据库更适合于OLAP场景
(1)绝大多数是读请求
(2)数据以相当大的批次(> 1000行)更新,而不是单行更新;或者根本没有更新。
(3)已添加到数据库的数据不能修改。
(4)对于读取,从数据库中提取相当多的行,但只提取列的一小部分。
(5)宽表,即每个表包含着大量的列
(6)查询相对较少(通常每台服务器每秒查询数百次或更少)
(7)对于简单查询,允许延迟大约50毫秒
(8)列中的数据相对较小:数字和短字符串(例如,每个URL 60个字节)
(9)处理单个查询时需要高吞吐量(每台服务器每秒可达数十亿行)
事务不是必须的
(10)对数据一致性要求低
(11)每个查询有一个大表。除了他以外,其他的都很小。
(12)查询结果明显小于源数据。换句话说,数据经过过滤或聚合,因此结果适合于单个服务器的RAM中

四、ClickHouse的常用数据类型

1、整型类型
(1)有符号
Int8-[-128:127]
Int16-[-32768:32767]
Int32-[-2147483648:2147483647]
Int64-[-9223372036854775808:9223372036854775807]
(2)无符号
UInt8-[0:255]
UInt16-[0:65535]
UInt32-[0:4294967295]
UInt64-[0:18446744073709551615]
2、浮点数类型
(1)Float32
相当于 float
(2)Float64
相当于 double
3、字符串类型
(1)String
字符串可以任意长度的。它可以包含任意的字节集,包含空字节
(2)FixedString(N)
一个固定长度的N个字节的字符串(N 必须是严格的正自然数)

4、时间类型
(1)Date
[1970-01-01, 2148-12-31]
(2)Date32
[1925-01-01, 2283-11-11]
(3)DateTime
[1970-01-01 00:00:00, 2105-12-31 23:59:59]
(4)DateTime64
亚秒精度
10-precision seconds

ClickHouse是一款面向列式存储的分布式数据库管理系统,主要用于OLAP场景下的数据查询和分析。它的特点是高性能、高并发、高可用、高扩展性和低成本。以下是ClickHouse的一些特点和用途: 1. 列式存储:ClickHouse采用列式存储,可以大幅度提高查询性能,特别是在需要查询大量数据的情况下。 2. 高性能:ClickHouse的查询性能非常高,可以支持百亿级别的数据查询,而且查询速度非常快。 3. 分布式架构:ClickHouse采用分布式架构,可以支持PB级别的数据存储和查询,而且可以实现数据的高可用和负载均衡。 4. SQL支持:ClickHouse支持类SQL语言,可以方便地进行数据查询和分析。 5. OLAP场景:ClickHouse主要用于OLAP场景下的数据查询和分析,可以支持实时查询和离线查询。 6. 数据仓库:ClickHouse可以作为数据仓库来使用,可以方便地进行数据的存储、查询和分析。 7. 日志分析:ClickHouse可以用于日志分析,可以方便地进行日志的存储、查询和分析。 8. 时序数据:ClickHouse可以用于时序数据的存储和查询,可以支持高并发的时序数据查询。 以下是一个使用ClickHouse进行数据查询和分析的例子: ```sql -- 创建表 CREATE TABLE test ( id UInt32, name String, age UInt8 ) ENGINE = MergeTree() ORDER BY id; -- 插入数据 INSERT INTO test VALUES (1, 'Tom', 20), (2, 'Jerry', 22), (3, 'Lucy', 18); -- 查询数据 SELECT * FROM test WHERE age > 20; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值