Clickhouse总结

Clickhouse总结
Q1: 选择ClickHouse的原因是什么?
    --1)采用列式存储
    	①在数据存储方面更容易进行数据压缩。节省磁盘空间。
    	②在一些聚合计算、计数、求和等操作效率更高。
    	③标准化的SQL语句,几乎覆盖所有SQL标准语法。
    	④多样化引擎,可以根据不同的需求,给表设置不同的引擎,常用的有MergeTree系列
    		我们用的是ReplacingMergeTree,可以保证数据表的幂等性
    	⑤高吞吐写入能力
    		Clickhouse采用预写日志的结构,数据是顺序写入,写入不可修改,数据写入后在后台Compaction。
    	⑥数据分区与线程级并行
    		Clickhouse将数据划分为多个Partition,Partition还能进一步划分为多个index granularity,然后通过多个CPU实现并行数据处理。
    
    
Q2: 行式存储和列式存储的区别是什么?
    --1)行式存储在查询一个人的所有属性的时候,比较快。
    		但是在查询所有人的年龄的时候,就需要不停查找,或者需要全表扫描才行
    --2)列式存储
    		①存储方面:每一列的数据类型都是相同的,针对数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,能够极大的提高数据压缩比重
    		②计算方面:对于某列的聚合、求和、计数等操作比较快
    		③数据压缩比更好了,一方面节省了磁盘空间,另一方面对于cache也有了更大的发挥空间。
    
Q3: ClickHouse中的数据类型:
    --1)整型
    	①有符号整型Int8	(-128~127)
    			Int16
    			Int32
    			Int64
    	②无符号整型UInt8	(0~255)
    			UInt16
    			UInt32
    			UInt64
    --2)浮点型
    	Float32
    	Float64
    --3)布尔型
    	1 	(正确)
    	0	(错误)
    --4)Decimal32
    	Decimal64
    	Decimal128
    --5)字符串
    	String
    --6)枚举 Enum8
    		   Enum16
    --7)时间类型
    	Date
    	Datetime
    	Datetime64
    --8)数组
    
Q4:ClickHouse的表引擎
    --1)TinyLog
    	以列文件的形式保存在磁盘上,不支持索引,没有并发控制。一般保存少量的小表,生产环境一般不用。
    --2)Memory
    	内存引擎,数据以未压缩的原始形式保存在内存当中。
    --3)MergeTree
    	支持索引和分区
    	create table test1(id UInt32, name String, dt DateTime) engine=MergeTree partition by toYYYYMMDD(dt) primary key(id) order by (id, name);
    	partition by 分区可以降低扫描范围,优化查询速度;如果不填只有一个分区;设置了分区会以分区为单位并行处理;数据会首先写入到一个临时分区,达到一定的时间会触发合并操作.
        primary key 主键只是提供了一个一级索引,但不是唯一约束;clickhouse中的唯一标识通过where条件过滤;根据where条件进行二分查找,能够定位到对应的index granularity(索引粒度),避免全表扫描。
        order by  设定了分区内的数据按照哪些字段顺序进行有序保存。必须和primary key的前缀字段相同
    --4)ReplacingMergeTree
         多了一个去重的功能,分区内去重
         create table test2(id UInt32, name String, dt DateTime) engine=ReplacingMergeTree(dt) partition by toYYYYMMDD(dt) primary key (id) order by (id, name)
         ReplacingMergrTree()填入的参数是版本字段,重复数据保留版本字段值最大的,如果不填版本字段,默认按照插入顺序保留最后一条。
	--5)SummingMergeTree
            预聚合的引擎
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最佳第六六六人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值