牛x!一个比传统数据库快 100-1000 倍的数据库!
一、ClickHouse 是什么?
ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)
我们首先理清一些基础概念
- OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统
- OLAP:是仓库型数据库,主要是读取数据,做复杂数据分析,侧重技术决策支持,提供直观简单的结果
接着我们用图示,来理解一下列式数据库和行式数据库区别
在传统的行式数据库系统中(MySQL、Postgres和MS SQL Server),数据按如下顺序存储:
在列式数据库系统中(ClickHouse),数据按如下的顺序存储:
两者在存储方式上对比:
以上是ClickHouse基本介绍,更多可以查阅官方手册
二、业务问题
业务端现有存储在Mysql中,5000万数据量的大表及两个辅表,单次联表查询开销在3min+,执行效率极低。经过索引优化、水平分表、逻辑优化,成效较低,因此决定借助ClickHouse来解决此问题
最终通过优化,查询时间降低至1s内,查询效率提升200倍!
希望通过本文,可以帮助大家快速掌握这一利器,并能在实践中少走弯路。
三、ClickHouse实践
1.Mac下的Clickhouse安装
我是通过docker安装,查看教程。也可以下载CK编译安装,相对麻烦一些。
2.数据迁移:从Mysql到ClickHouse
ClickHouse支持Mysql大多数语法,迁移成本低,目前有五种迁移方案:
- create table engin mysql,映射方案数据还是在Mysql
- insert into select from,先建表,在导入
- create table as select from,建表同时导入
- csv离线导入
- streamsets
选择第三种方案做数据迁移:
CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = Mergetree AS SELECT * FROM mysql('host:port', 'db', 'database', 'user', 'password')
3.性能测试对比
类型 数据量 表大小 查询速度
Mysql | 5000万 | 10G | 205s |
---|---|---|---|
ClickHouse | 5000万 | 600MB | 1s内 |
4.数据同步方案
临时表
图片来源:携程 新建temp中间表,将Mysql数据全量同步到ClickHouse内temp表,再替换原ClickHouse中的表,适用数据量适度,增量和变量频繁的场景
synch
开源的同步软件推荐:synch 原理是通过Mysql的binlog日志,获取sql语句,再通过消息队列消费task
5.ClickHouse为什么快?
- 只需要读取要计算的列数据,而非行式的整行数据读取,降低IO cost
- 同列同类型,有十倍压缩提升,进一步降低IO
- clickhouse根据不同存储场景,做个性化搜索算法
四、遇到的坑
1.ClickHouse与mysql数据类型差异性
用Mysql的语句查询,发现报错:
解决方案:LEFT JOIN B b ON toUInt32(h.id) = toUInt32(ec.post_id),中转一下,统一无符号类型关联
2.删除或更新是异步执行,只保证最终一致性
查询CK手册发现,即便对数据一致性支持最好的Mergetree,也只是保证最终一致性:
如果对数据一致性要求较高,推荐大家做全量同步来解决
五、总结
通过ClickHouse实践,完美的解决了Mysql查询瓶颈,20亿行以下数据量级查询,90%都可以在1s内给到结果,随着数据量增加,ClickHouse同样也支持集群,大家如果感兴趣,可以积极尝试 : )
来源:juejin.im/post/6863283398727860238
欢迎关注我的微信公众号「码农突围」,分享Python、Java、大数据、机器学习、人工智能等技术,关注码农技术提升•职场突围•思维跃迁,20万+码农成长充电第一站,陪有梦想的你一起成长
牛x!一个比传统数据库快 100-1000 倍的数据库!相关推荐
- 光量子计算机概念股,我国量子计算机比谷歌快100万倍 量子计算机概念股龙头一览...
重大突破!我国量子计算机比谷歌快100万倍,量子计算机能解决传统计算机无法解决的复杂难题,展现量子优越性.中国科学技术大学常务副校长.中国科学院院士.西湖大学创校校董潘建伟教授9月5日在西湖大学首场公 ...
- 外媒中国量子计算机,比美国快100亿倍,中国量子计算机赢得霸权!外媒致敬
据新华社12月4日报道,中国科学技术大学潘建伟.陆朝阳等组成的研究团队与国内合作,构建了76个光子的量子计算原型机"九章",实现了具有实用前景的"高斯玻色取样" ...
- 谷歌的量子计算机速度,谷歌称其量子计算机速度比传统计算机快1亿倍
腾讯科技讯 12月11日,据科技网站ArsTechnica报道,微博)和NASA联合研发的D-Wave 2X量子计算机在测试中运行速度达到了传统芯片的1亿倍. 量子计算机,顾名思义,就是实现量子计算的 ...
- LiFi比WiFi快100倍:它如何运作,实际应用靠谱吗
Wi-Fi对移动计算的使用产生了巨大的影响,使员工可以在任何地方访问公司网络,咖啡店也能成为独立工作人员的办公地点. 但Wi-Fi也有其缺点,所以诞生了一个新的标准:Li-Fi,如果它可以顺利上市,将 ...
- 碾压谷歌量子霸权!中国量子计算原型机 九章 问世,比超级计算机快百万亿倍...
量子优越性实验并不是一个一蹴而就的工作. " 作者 | 李帅飞 在量子计算领域,我国再次实现了里程碑式的重大突破! 12 月 4 日,中国科学技术大学宣布,该校中国科学技术大学潘建伟.陆朝阳 ...
- 数据库与python的关系_数据库 引用关系
<深入解析sas:数据处理.分析优化与商业应用>一2.4 访问关系型数据库系统中的数据 本节书摘来自华章出版社<深入解析sas:数据处理.分析优化与商业应用>一书中的第2章,第 ...
- 下一代5G网络:比4G快1000倍 普及至少需8年
互联网时代,上网在居民日常生活中已是不可分割的一部分.但是看电影,听音乐,加载游戏,甚至开网页总是"正在缓冲"中,这让很多网友叫苦不迭,于是我们总会听到各种无奈的吐槽:我等到花都谢 ...
- 比MySQL小的数据库_牛x!一个比传统数据库快 100-1000 倍的数据库!
原标题:牛x!一个比传统数据库快 100-1000 倍的数据库! 一.ClickHouse 是什么? 二.业务问题 三.ClickHouse实践 四.遇到的坑 五.总结 一.ClickHouse 是什 ...
- 一个比 ClickHouse 还快的开源数据库
开源分析数据库 ClickHouse 以快著称,真的如此吗?我们通过对比测试来验证一下. ClickHouse vs Oracle 先用 ClickHouse(简称 CH).Oracle 数据库(简称 ...
- mysql数据库索引页号为什么从3开始_MySQL数据库快问快答
原标题:MySQL数据库快问快答 前言 今天楼主给大家列一下关于数据库几个常见问题的要点,如果大家对其中的问题感兴趣,可以自行扩展研究. 1. UNION ALL 与 UNION 的区别 UNION和 ...
最新文章
- 2020-08-20如何获取AWS的Access Key ID 和 Secret Access Key (Unable to find credentials)
- EXP-00091错误的说明和解决方法
- Activiti最全入门教程
- html中加盒子,在HTML中各类型盒子的基线应如何确定
- FutureTask源码
- 在 Visual Studio 2010 中创建 ASP.Net Web Service
- 『性能测试』文章大汇总
- python小技巧积累--题库(持续更新)
- retrofit框架学习(一)----基本用法
- 餐厅收费服务器密码修改,餐厅消费管理系统-会所一卡通管理系统
- 学术论文投稿与返修(Rebuttal)经验分享
- 解决frp内网穿透vsftpd报227错误
- android获取uid,Android获得UID的办法
- 日语 假名对应的汉字来源
- 云之讯张雯:云计算时代融合通讯开发及算法优化
- 管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控
- 微信小程序波浪动态效果和背景色渐变(使用动态图,有手就行,但是流动速度固定波浪数目也固定)
- flutter 登录和退出登录_Flutter从入门到奔溃(一):撸一个登录界面
- LeetCode基础
- 嵌入式相关问题记录concerto.mak
热门文章
- iis 中php的mime类型,IIS添加MIME扩展类型及常用的MIME类型列表
- 前端一键复制粘贴插件——clipboard.js的使用
- 论文笔记_S2D.06-2018-BMVC-用于实时语义分割的轻量级精细网络RefineNet
- 小Q正在给一条长度为n的道路设计路灯安置方案。 为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用'.'表示, 不需要照亮的障碍物格子用'X'表示。
- 设计模式-适配器模式(Adapter)
- UVa 10900 - So you want to be a 2n-aire?(期望DP)
- Spring Cloud各个组件的配套使用
- 【夯实PHP基础】PHP发送邮件(PHPMailer)
- 20、淘宝技术这十年
- 一个简单的C#委托小例子