• 一、ClickHouse 是什么?

  • 二、业务问题

  • 三、ClickHouse实践

  • 四、遇到的坑

  • 五、总结


一、ClickHouse 是什么?

ClickHouse:是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)

我们首先理清一些基础概念

  • OLTP:是传统的关系型数据库,主要操作增删改查,强调事务一致性,比如银行系统、电商系统

  • OLAP:是仓库型数据库,主要是读取数据,做复杂数据分析,侧重技术决策支持,提供直观简单的结果

接着我们用图示,来理解一下列式数据库行式数据库区别

在传统的行式数据库系统中(MySQL、Postgres和MS SQL Server),数据按如下顺序存储:

img

在列式数据库系统中(ClickHouse),数据按如下的顺序存储:

img

两者在存储方式上对比:

img

以上是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.数据同步方案

临时表

img

图片来源:携程 新建temp中间表,将Mysql数据全量同步到ClickHouse内temp表,再替换原ClickHouse中的表,适用数据量适度,增量和变量频繁的场景

synch

img

开源的同步软件推荐:synch 原理是通过Mysql的binlog日志,获取sql语句,再通过消息队列消费task

5.ClickHouse为什么快?

  • 只需要读取要计算的列数据,而非行式的整行数据读取,降低IO cost

  • 同列同类型,有十倍压缩提升,进一步降低IO

  • clickhouse根据不同存储场景,做个性化搜索算法

四、遇到的坑

1.ClickHouse与mysql数据类型差异性

用Mysql的语句查询,发现报错:

img

解决方案:LEFT JOIN B b ON toUInt32(h.id) = toUInt32(ec.post_id),中转一下,统一无符号类型关联

2.删除或更新是异步执行,只保证最终一致性

查询CK手册发现,即便对数据一致性支持最好的Mergetree,也只是保证最终一致性:

img

如果对数据一致性要求较高,推荐大家做全量同步来解决

五、总结

通过ClickHouse实践,完美的解决了Mysql查询瓶颈,20亿行以下数据量级查询,90%都可以在1s内给到结果,随着数据量增加,ClickHouse同样也支持集群,大家如果感兴趣,可以积极尝试 : )

参考资料:

  • ClickHouse官方手册 CK

https://clickhouse.tech/docs/zh/

  • ClickHouse在携程酒店应用 蔡岳毅

https://cloud.tencent.com/developer/article/1462633

  • ClickHouse引擎怎么选 Roin123

https://developer.aliyun.com/article/762461

本文来源:juejin.im/post/6863283398727860238

另琐碎时间想看一些技术文章,可以去公众号菜单栏翻一翻我分类好的内容,应该对部分童鞋有帮助。同时看的过程中发现问题欢迎留言指出,不胜感谢~。另外,有想多了解哪些方面内容的可以留言(什么时候,哪篇文章下留言都行),附菜单栏截图(PS:很多人不知道公众号菜单栏是什么)
END我知道你 “在看”

牛x!一款比传统数据库快 100-1000 倍的数据库,来认识一下?相关推荐

  1. 光量子计算机概念股,我国量子计算机比谷歌快100万倍 量子计算机概念股龙头一览...

    重大突破!我国量子计算机比谷歌快100万倍,量子计算机能解决传统计算机无法解决的复杂难题,展现量子优越性.中国科学技术大学常务副校长.中国科学院院士.西湖大学创校校董潘建伟教授9月5日在西湖大学首场公 ...

  2. 谷歌的量子计算机速度,谷歌称其量子计算机速度比传统计算机快1亿倍

    腾讯科技讯 12月11日,据科技网站ArsTechnica报道,微博)和NASA联合研发的D-Wave 2X量子计算机在测试中运行速度达到了传统芯片的1亿倍. 量子计算机,顾名思义,就是实现量子计算的 ...

  3. 外媒中国量子计算机,比美国快100亿倍,中国量子计算机赢得霸权!外媒致敬

    据新华社12月4日报道,中国科学技术大学潘建伟.陆朝阳等组成的研究团队与国内合作,构建了76个光子的量子计算原型机"九章",实现了具有实用前景的"高斯玻色取样" ...

  4. 牛X | 一款比传统数据库快100-1000倍的数据库,认识一下

    这是小小本周的第五篇 核酸检测 小小马上都要回学校考英语四级了,学校要求考英语四级的时候,需要做核算检测,这不,小小从小窝出发去做核算检测了.到北京佑安医院做核酸检测. 规划路线 小小规划路线中 启程 ...

  5. 碾压谷歌量子霸权!中国量子计算原型机 九章 问世,比超级计算机快百万亿倍...

    量子优越性实验并不是一个一蹴而就的工作. " 作者 | 李帅飞 在量子计算领域,我国再次实现了里程碑式的重大突破! 12 月 4 日,中国科学技术大学宣布,该校中国科学技术大学潘建伟.陆朝阳 ...

  6. 数据库与python的关系_数据库 引用关系

    <深入解析sas:数据处理.分析优化与商业应用>一2.4 访问关系型数据库系统中的数据 本节书摘来自华章出版社<深入解析sas:数据处理.分析优化与商业应用>一书中的第2章,第 ...

  7. LiFi比WiFi快100倍:它如何运作,实际应用靠谱吗

    Wi-Fi对移动计算的使用产生了巨大的影响,使员工可以在任何地方访问公司网络,咖啡店也能成为独立工作人员的办公地点. 但Wi-Fi也有其缺点,所以诞生了一个新的标准:Li-Fi,如果它可以顺利上市,将 ...

  8. 下一代5G网络:比4G快1000倍 普及至少需8年

    互联网时代,上网在居民日常生活中已是不可分割的一部分.但是看电影,听音乐,加载游戏,甚至开网页总是"正在缓冲"中,这让很多网友叫苦不迭,于是我们总会听到各种无奈的吐槽:我等到花都谢 ...

  9. 比MySQL小的数据库_牛x!一个比传统数据库快 100-1000 倍的数据库!

    原标题:牛x!一个比传统数据库快 100-1000 倍的数据库! 一.ClickHouse 是什么? 二.业务问题 三.ClickHouse实践 四.遇到的坑 五.总结 一.ClickHouse 是什 ...

  10. mysql数据库索引页号为什么从3开始_MySQL数据库快问快答

    原标题:MySQL数据库快问快答 前言 今天楼主给大家列一下关于数据库几个常见问题的要点,如果大家对其中的问题感兴趣,可以自行扩展研究. 1. UNION ALL 与 UNION 的区别 UNION和 ...

最新文章

  1. 获取文件最后修改时间的VC代码
  2. 基于UDP的DDos反射放大攻击
  3. Linux常用命令----文件处理命令
  4. 【十五分钟Talkshow】工作流及工作流框架、服务
  5. 实习推荐 | 腾讯AI Lab虚拟人中心招聘算法工程师实习生
  6. php 使用 array_reduce 实现多维数组分组(groupby)聚合
  7. Linux下批量修改文件名
  8. 大白话讲解word2vec到底在做些什么
  9. Julia也能做爬虫?可以,但没必要
  10. POJ-3744 Scout YYF I 概率DP
  11. 深度学习李宏毅21春_16_GAN_P3
  12. [XMAN2018排位赛]通行证
  13. 【BZOJ 1006】 [HNOI2008]神奇的国度
  14. cad重新加载php命令,cad清理图层命令如何使用
  15. CC3200——中断优先级
  16. 图书管理系统模块,通过模糊查询实现查找图书的功能
  17. 图像基本处理——图像阈值和平滑
  18. 5G测试完毕,梦想能否照进现实
  19. Shutdown Xp/Server 2008 /2003等
  20. 【C++/C语言打印五角星----附源代码】

热门文章

  1. 雷军:小米MIX Alpha不是折叠屏手机,将会很震撼
  2. LG G8X官方图流出:LG双屏手机也意外曝光 或IFA发布
  3. 连亏172亿,割肉卖楼,年收3700亿、闻名全球的巨头,败退中国!
  4. 最流畅的手机,性能、跑分却弱爆了?2019年上半年手机数据报告出炉
  5. 唏嘘!这家双屏智能手机厂商宣布破产:曾被称为“俄罗斯iPhone”
  6. 小米盗图迪丽热巴?公关经理:占位示意 不存在故意盗图!
  7. 没有信号无服务器,没有信号不用怕“音离”你身边的便携式基站
  8. Android图片加载之初步认识bitmap
  9. 初入c++(四)string类和c++中的引用
  10. 从H264/H265码流中获取宽、高及帧率