网站首页 > 博客文章 正文
初识ClickHouse
第一次接触ClickHouse是在朋友圈,很凑巧的是当时正在寻找一款不依赖Hadoop生态圈的分析引擎数据库,同类数据库也看了不少 ,比如刚刚研究的InfoBright,性能上的确不错,但是缺点也很多,所以遇到ClickHouse后发现眼前一亮!
什么是ClickHouse?
ClickHouse是一个用于联机分析(OLAP)的列式存储数据库(DBMS)
和我们传统的行存储数据库比较
OLAP使用场景
- 读请求占大多数。
- 数据总是以大批量(> 1000 rows)进行写入。
- 已添加的数据不修改。
- 每次查询都从数据库中读取大量的行,但是同时又仅需要少量的列。
- 宽表,即每个表包含着大量的列。
- 较少的查询。(通常每台服务器每秒数百个查询或更少)
- 对于简单查询,允许延迟大约50毫秒。
- 列中的数据相对较小: 数字和短字符串。(例如,每个URL 60个字节)
- 处理单个查询时需要高吞吐量。(每个服务器每秒高达数十亿行)
- 事务不是必须的。
- 对数据一致性要求低。
- 每一个查询除了一个大表外其他都很小。
- 查询结果明显小于源数据,换句话说,数据被过滤或聚合后能够被盛放在单台服务器的内存中。
那么多数据库,为啥用它?
- 快 。(这一个字就够了吧)
- 数据压缩。
- 多核并行处理,在大型查询中ClickHouse可以并行化处理,合理利用资源。
- 分布式处理,大部分列式存储数据库,几乎没有一个支持分布式的查询处理。
- 完美支持SQL(没有开窗函数有点遗憾)
- 支持近似计算,牺牲了精确度,换的是速度。
- 异步的多主复制技术,在大多数情况下ClickHouse能在故障后自动恢复。
几乎可以忽略的缺点
- 没有完整的事物支持。
- 没有Update/Delete.
- 多服务器上DDL不同步。
它究竟有多快?
- 简单的查询速度可达30GB/s 。
- 短查询非常低的延迟时间,延迟少于50毫秒。
- 批量写入50~200MB/s。
官方性能报告:https://clickhouse.yandex/benchmark.html
非常好用的小功能
- 从Mysql中拉取数据,有点像Mysql的Federated引擎
# du出的表大小 13.7G playlog.ibd # ClickHouse操作语句 CREATE TABLE playlog ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql('host:port', 'db', 'playlog', 'user', 'password') # 耗时和平均速度 0 rows in set. Elapsed: 230.232 sec. Processed 45.32 million rows, 17.6 GB (138.23 thousand rows/s., 52.31 MB/s.)
2.从Kafka中读取数据
# ClickHouse操作语句 CREATE TABLE queue ( timestamp UInt64, level String, message String ) ENGINE = Kafka('localhost:9092', 'topic', 'group1', 'JSONEachRow');
今天的总结就写这些吧!
以上部分图片和数据出自ClickHouse官网
简书同作者
猜你喜欢
- 2024-10-23 大数据ClickHouse进阶(二十二):ClickHouse优化
- 2024-10-23 大数据ClickHouse进阶(二十六):ClickHouse数据备份
- 2024-10-23 Clickhouse入门(clickhouse深度揭秘)
- 2024-10-23 clickhouse的简单优化(clickhouse uuid)
- 2024-10-23 聊聊clickhouse分布式表的操作(clickhouse 分布表)
- 2024-10-23 1、ClickHouse介绍(clickhouse作用)
- 2024-10-23 Clickhouse数据复制的原理与实践(clickhouse数据导出)
- 2024-10-23 ClickHouse学习笔记四ClickHouse基础语法
- 2024-10-23 大数据ClickHouse(五):数据库引擎介绍与实例演示
- 2024-10-23 大数据ClickHouse(十六):ClickHouse SQL语法之DML 操作
你 发表评论:
欢迎- 最近发表
-
- 比GoPro 13更强的大疆Action 5 Pro,到底强在哪里?
- 信号和槽(信号和槽的实现原理)
- 在响应式项目中连接设计与开发(请简述实现响应式设计包括哪些技术点)
- 【C#】委托、Action、Func 和 Event 之间的关系
- 如何使用JavaScript实现Prompt弹窗?
- 谷歌Magic Actions功能曝光:AI革新安卓16通知交互
- 基于目标TPS的性能测试,如何通过手动设置场景进行测试?
- IOS基础学习之输出口和动作(io口输入输出实验总结及体会)
- 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- Android学习之Touch事件的处理(android触摸事件实例)
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)