八年Java开发心路历程,燕郊开发区java工程师招聘
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中的表,适用数据量适度,增量和变量频繁的场景
最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
“道路是曲折的,前途是光明的!”
[外链图片转存中…(img-diGjlazm-1627106638131)]
[外链图片转存中…(img-qu7QrIWd-1627106638132)]
更多Java核心笔记、真实面经、学习笔记等知识干货可以点击这里免费领取
八年Java开发心路历程,燕郊开发区java工程师招聘相关推荐
- 【linux(1),八年Java开发心路历程
2.检查java是否安装成功 使用java -version查看java是否安装成功 java -version 有版本的显示就是安装成功了 3.更换java版本 在学习过程中我们经常会学习不同版本的 ...
- JAVA开发学习——欢迎来到JAVA开发世界!
java概述 Java是第一门完全面向对象编程的计算机语言 作者:詹姆斯·高斯林(James Gosling) 三大平台版本 J2SE(Java 2 Platform Standard Edition ...
- java开发环境安装原理,java开发环境搭建 java开发环境的完整搭建过程
想了解java开发环境的完整搭建过程的相关内容吗,Rosalh在本文为您仔细讲解java开发环境搭建的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java开发环境搭建步骤,java开发环 ...
- 研究生、本科生Java开发、后台、软件工程师秋招春招经验
研究生.本科生Java开发.后台.软件工程师秋招春招经验 在2020年10月份的时候结束了自己的秋招过程.在秋招过程中,我也算是大厂中厂都拿过多个offer.在这个过程.在这半年的秋招过程中,通过自己 ...
- wim10系统怎么装java_w10系统怎么安装java开发环境|w10安装java开发环境的方法
w10系统怎么安装java开发环境?java开发环境搭建 for java新学者不清楚的话,可以看看以下的教程. 具体方法如下: 1.下载开发工具包(JDK).对于不同的操作系统,可下载的文件格式不同 ...
- Java小白到大神的心路历程(Java SE)
万事万物皆有其发展规律,学习Java也不例外. 以下是我根据教学经验,总结出来的小白在学习Java各阶段时的心路历程,当你在学习期间欣喜.困惑时,不妨看一看,也许这些都是必经之路. 使用Java完成第 ...
- 4年小Java的心路历程,绝对干货分享
有赞: 一面 hashMap原理,put和resize过程 线程池有哪些类型, concurrentHashMap分段锁原理,java8和java7实现的区别 B-树和B+树区别,数据库索引原理,组合 ...
- 转自goosman的编程开发心路历程
我现在是一名大二的学生,无意间看到这篇文章,心里受到很大的触动,特意研究了一怎么转载博客,打算纪念一下这个可能改变我生命轨迹的日子.我想,几年以后我也会写下一篇类似的文章,记录自己的程序猿心路历程.文 ...
- 高级java开发_适用于高级Java开发人员的十大书籍
高级java开发 Java是当今最流行的编程语言之一. 有很多适合初学者的书籍. 但是对于那些使用Java进行过一段时间编程的人来说,其中有些人看起来有些简单和多余. 初学者的书没有带来新鲜有趣的想法 ...
最新文章
- swift和OC - 拆分数组 和 拆分字符串
- h30-t10 android phone,荣耀(荣耀)3C H30-T10/2GB RAM/移动3G手机系统介绍评测-ZOL中关村在线...
- 【学术相关】U.S.News正式发布最新的2022最佳全球院校排名
- markDown 语法(个人练习篇)
- 【转】void及void指针的深刻解析
- es6 Class 的继承简介
- 万维网之父:Facebook、Google 等硅谷巨头必须被拆分!
- joson返回数据库的时间格式在前台用js转换
- 计算机套题库c版,计算机二级C语言上机题库100套(最新版)
- vsftpd配置权限问题
- 巴特沃斯数字低通滤波器的设计步骤
- 弱电总包施工组织设计与实施方案
- w10系统桌面的计算机找不到,w10桌面我的电脑图标不见了怎么办
- 零基础学习Shell编程
- vue v-for和v-if同时使用
- 程序设计 | python | Hello World的条件输出
- 使用Android自带的DownloadManager下载ApK并安装
- 通过 IDEA 检查代码 Inspect Code,查找无用的方法、类等问题
- Ubuntu服务器的安装和配置----系统安装
- 苹果AI人才报告:斯坦福、伯克利、CMU、MIT被挖空