ClickHouse学习

ClickHouse学习

一、ClickHouse概念

​ ClinkHouse隶属于OLAP(联机分析)的列式数据库,注意是OLAP和列式数据库。其中OLAP的适用场景如下:

OLAP适用场景:
	1、大多数是读请求
	2、数据总是批量写入
	3、不修改历史数据
	4、每次都是读取大量的行
	5、宽表,也就是一个表有大量的列
	6、简单查询
	7、处理单个查询需要高吞吐量

​ 与其他列式数据库比如HBase、BigTable的每秒数十万的吞吐能力相比,ClinkHouse拥有更大的每秒几亿行的吞吐能力。

1、ClickHouse的基本特点

优点:

  • ClickHouse的纯列式存储(Hbase虽然也是列式数据库但是受限于其他场景的优化,无法有效处理分析查询)
  • 查询速度超快,支持秒亿行的吞吐

缺点:

  • 缺少完整的Update/Delete(也就是典型的联机分析性数据库)
  • 不支持事务
  • 不支持高并发:qps建议为100,原因是为了快所以即使一个查询也会占用一半cpu
  • 有限支持update/delete

2、ClickHouse的表引擎

表引擎(即表的类型)决定了:

  • 数据的存储方式和位置,写到哪里以及从哪里读取数据
  • 支持哪些查询以及如何支持。
  • 并发数据访问。
  • 索引的使用(如果存在)。
  • 是否可以执行多线程请求。
  • 数据复制参数。

最优的表引擎是:MergeTree

特点:

  • 存储的数据按主键排序

    这样相当于创建了一个稀疏索引加快数据检索,如果是联合主键,那么先按主键1进行排序再按主键2,以此类推

    (这里与mysql这种不同,clickhouse的主键并没有去重的作用)

  • 支持数据副本

3、ClickHouse的数据类型

基础:

MySQLHiveClickHouse
byteTINYINTInt8
shortSMALLINTInt16
intINTInt32
longBIGINTInt64
varcharSTRINGString
timestampTIMESTAMPDateTime
floatFLOATFloat32
doubleDOUBLEFloat64
booleanBOOLEAN-

注意点:ClickHouse没有boolean类型

高级:

数据类型含义特点
inf正无穷大正数/0时获得,分母为0就认为是无穷大
nan正无穷小0/0时获得,分子分母都为0得到的就是无穷小
Enum8枚举TINYINT比如:Enum8(‘true’=1,‘false’=0)
Enum16枚举SMALLINT比如:Enum16(‘true’=1,‘false’=0)
Array(T)数组由T类型元素组成的数组
tuple()元组存进去的数据每个都有自己的数据类型

3、基础的操作语句

1、创建表(ClickHouse创建表需要指定表引擎)
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) ENGINE = engine

创建一张像另一张表结构的表

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [db.]name AS [db2.]name2 [ENGINE = engine]

2、创建视图
CREATE [MATERIALIZED] VIEW [IF NOT EXISTS] [db.]name [TO[db.]name] [ENGINE = engine] [POPULATE] AS SELECT ...

3、查询
select1,2.... 
from 表名
where 
4、插入
不严格插入数据,没有出现的列自动填充为默认值
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
严格插入数据,每一列都必须出现在上面
INSERT INTO [db.]table [(c1, c2, c3)] FORMAT Values (v11, v12, v13), (v21, v22, v23), ...
插入select 得到的数据
INSERT INTO [db.]table [(c1, c2, c3)] SELECT ...
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值