没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
内容概要:本文详细介绍了ClickHouse这一列式存储数据库的特点、优势、安装方式、表引擎、SQL查询以及如何使用Python进行操作。文章首先解释了ClickHouse的基本概念和使用场景,强调其适用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。接着,重点讲述了ClickHouse的列式存储机制、多样化的表引擎、高吞吐写入能力和数据分区技术。随后,具体介绍了几种常见的表引擎,特别是MergeTree、ReplacingMergeTree和SummingMergeTree,以及它们的应用场景和优缺点。此外,文中还包括了ClickHouse的数据TTL、更新和删除操作等内容。最后,简要描述了如何利用Python的clickhouse-sqlalchemy库操作ClickHouse。 适合人群:从事大数据分析的技术人员,尤其是对OLAP系统感兴趣的工程师和架构师。 使用场景及目标:帮助读者理解和掌握ClickHouse的高级特性和最佳实践,提升数据分析效率,优化数据存储和查询性能。无论是初学者还是有一定经验的技术人员都能从中受益。 其他说明:点击House是一款高性能的列式数据库,特别适合处理大规模数据集和复杂的分析任务。但在某些场景下需要注意其局限性,比如不支持事务和单行数据的频繁插入与修改。
资源推荐
资源详情
资源评论
Id Name Age
1 张三 18
2 李四 22
3 王五 34
ClickHouse 调研分享
1. ClickHouse 简单介绍
ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的 列式存储数据库(DBMS: ⼏乎覆盖了标准 SQL 的⼤部分
语法,包括 DDL 和 DML,以及配套的各种函数,⽤户管理及权限管理,数据的备份与恢复),使⽤ C++
语⾔编写,主要⽤于在线分析处理查询(OLAP),能够使⽤ SQL 查询实时⽣成分析数据报告。
2. ClickHouse 特点
2.1 列式存储
1)采⽤⾏式存储时,数据在磁盘上的组织结构为:
好处是想查某个⼈所有的属性时,可以通过⼀次磁盘查找加顺序读取就可以。但是当想
查所有⼈的年龄时,需要不停的查找,或者全表扫描才⾏,遍历的很多数据都是不需要的。
2)采⽤列式存储时,数据在磁盘上的组织结构为:
这时想查所有⼈的年龄只需把年龄那⼀列拿出来就可以了
3)列式储存的好处:
对于列的聚合,计数,求和等统计操作原因优于⾏式存储。
由于某⼀列的数据类型都是相同的,针对于数据存储更容易进⾏数据压缩,每⼀列
选择更优的数据压缩算法,⼤⼤提⾼了数据的压缩⽐重。
2.2 多样化引擎
ClickHouse 和 MySQL 类似,把表级的存储引擎插件化,根据表的不同需求可以设定不同
的存储引擎。⽬前包括合并树、⽇志、接⼝和其他四⼤类 20 多种引擎。
2.3 ⾼吞吐写⼊能⼒
ClickHouse 采⽤类 LSM Tree的结构,数据写⼊后定期在后台 Compaction。通过类 LSM tree
的结构,ClickHouse 在数据导⼊时全部是顺序 append 写,写⼊后数据段不可更改,在后台
compaction 时也是多个段 merge sort 后顺序写回磁盘。顺序写的特性,充分利⽤了磁盘的吞
吐能⼒,即便在 HDD 上也有着优异的写⼊性能。
官⽅公开 benchmark 测试显示能够达到 50MB-200MB/s 的写⼊吞吐能⼒,按照每⾏
100Byte 估算,⼤约相当于 50W-200W 条/s 的写⼊速度。
2.4 数据分区与线程级并⾏
ClickHouse 将数据划分为多个 partition,每个 partition 再进⼀步划分为多个 index
granularity(索引粒度),然后通过多个 CPU核⼼分别处理其中的⼀部分来实现并⾏数据处理。
在这种设计下,单条 Query 就能利⽤整机所有 CPU。极致的并⾏处理能⼒,极⼤的降低了查
询延时。
所以,ClickHouse 即使对于⼤量数据的查询也能够化整为零平⾏处理。但是有⼀个弊端
就是对于单条查询使⽤多 cpu,就不利于同时并发多条查询。所以对于⾼ qps 的查询业务,
ClickHouse 并不是强项。
2.5 性能对⽐
某⽹站精华帖,对⼏款OLAP数据库做了性能对⽐。
1)单表查询
2)关联查询
结论: ClickHouse 像很多 OLAP 数据库⼀样,单表查询速度优于关联查询,⽽且 ClickHouse
的两者差距更为明显。 多表查询较慢
多表 join 时要满⾜⼩表在右的原则,右表关联时被加载到内存中与左表进⾏⽐较,
ClickHouse 中⽆论是 Left join 、Right join 还是 Inner join 永远都是拿着右表中的每⼀条记录
到左表中查找该记录是否存在,所以右表必须是⼩表。
对⽐ 传统关系型数据库
3. 安装
1. docker ⽅式
2. RPM ⽅式
3. 其他⽅式参考官⽹ https://clickhouse.com/docs/en/install#install-from-deb-packages
4. 数据结构
docker run -d \
-v $(realpath ./ch_data):/var/lib/clickhouse/ \
-v $(realpath ./ch_logs):/var/log/clickhouse-server/ \
-p 18123:8123 -p19000:9000 \
--name some-clickhouse-server --ulimit nofile=262144:262144
clickhouse/clickhouse-server
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo
https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client
sudo /etc/init.d/clickhouse-server start
clickhouse-client # or "clickhouse-client --password" if you set up a password.
剩余19页未读,继续阅读
资源评论
叫我DPT
- 粉丝: 1790
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 机械设计油塞自动装配机( sw14可编辑+工程图)全套设计资料100%好用.zip
- 国家级城市群政策DID(2003-2023年).zip
- 悬浮球案例记录,包括移动、停靠、cpu信息展示、内存信息展示
- form-diff.patch
- pip-24.3.1-py3-none-any.whl
- 机械设计已量产一次性纸杯成型机proe1.0可编辑全套设计资料100%好用.zip
- pip-24.3.1.tar.gz
- 基于Java的办公管理系统的设计与实现论文
- 基于Springboot+Vue的办公用品管理系统论文
- 毕设-c语言迷宫源码.zip
- 毕设-c语言种地要浇水游戏源码12.zip
- 毕设-c语言自创军旗游戏源码13.zip
- 毕设-c语言支持自己创建迷宫,并求解最短路径11.zip
- 毕设-c语言做的绘图板系统16.zip
- 毕设-c语言做的播放器源码15.zip
- 毕设-c语言自创推箱子游戏改版14.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功