Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >谈谈MySQL到HBase数据迁移多种策略

谈谈MySQL到HBase数据迁移多种策略

作者头像
公众号guangcity
发布于 2019-09-20 09:26:46
发布于 2019-09-20 09:26:46
1.4K0
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

数据迁移

漫步于数据的海洋

在实验中静静感受这些数据迁移的魅力

动手所到之处

都是一段代码

与终端交织而成的盛宴

by 光城

前面文章写了MySQL的插入,亿级数据的快速插入方法,以及MySQL入库HBase的策略方案。

本节则是在上述基础上做的更加高端的一部。同时对MySQL入库HBase做一个总结。

回顾之前,先给大家放一个我的总体框架图:

1

初出茅庐

初出茅庐

使用Sqoop,直接将MySQL同步HBase,天真啊,一个Sqoop能搞定?好用?

经过我的实践证明,小数据完全没问题,那这个成亿数据,就问题大了去了,很多人用这个根本完成不了这个需求,不过我完成了。

怎么做的呢?

如果直接输入Sqoop命令去导入,经过一段时间,就卡了,根本无法全部导入完毕,于是乎,分片导入思想诞生了,写个bash脚本,放在服务器或者自己机器上跑即可。

怎么分片?

这个就是所谓的1亿数据的分开插入,每次只针对一小部分数据使用Sqoop,做个循环,直到这一亿数据导入完,那新的问题又来。

速度如何保证?

如果分片,速度自然无法保证,这虽然完成了上述的需求,但是导入完毕的效率非常低,当时导入1.8亿条耗时70多个小时,大家可以看到效率多么低了吧,有没有解决办法?

当然有,接下来进入,第二个方案。

2

小有成就

小有成就

在使用Sqoop后,binlog与kafka大吼一声,我来也,对没错,第二个思路就是,使用maxwell提取binlog的增删改查操作,然后发送到kafka的监听的topic上,再通过Python的pykafka库对数据进行消费,利用thrift接口进行sink,也就是存入数据库,哈哈,听了这么多,我都晕死了。

那速度如何呢?

这个速度当然快了啊,如果使用Python操纵HBase单条插入,那就非常慢了,但是比上述的要快,是不是还有批量插入呢,没错,里面有个批量插入,直接可以实现2-3秒的2万数据导入,实现高效率导入,这个最终耗时可从原来的70多个小时到7个小时左右,直接提高了10倍!

生命不息,奋斗不止;

速度不够,不断调整。

3

游刃有余

游刃有余

接着我们来到了第三个方案,那就是Kafka-Flink,这个简直非常好的一个思路,上述方案二提供了Python入库,那么对于大数据来说,更多的是使用Java,于是就查资料,学习,就get到Flink这个点子上了,这个同步过程实际上就是ETL,算是数据仓库的一部分吧,上游的数据经过Flink做各种计算,过滤,再到下游,进行业务处理,那这个就是标准的数据仓库作业。

对于方案三,详细阐述一下,前面不变,依旧使用maxwell提取binlog,后面使用kafka消费后,通过Flink进行sink到HBase,Flink在这个中间起到一个过滤、map、求和等等的操作,我们可以通过Flink按照自己给定的时间来进行数据的sink,最后数据就抵达了下游,从MySQL真正实时同步到HBase。

那么问题来了,效率呢?

当然快的可怕,1s至少1w的速度,你们觉得1亿数据得多快。

漫步于数据的海洋

在实验中静静感受这些数据迁移的魅力

动手所到之处

都是一段代码

与终端交织而成的盛宴

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HBase 数据迁移到 Kafka 实战
https://www.cnblogs.com/smartloli/p/11521659.html
Spark学习技巧
2020/06/09
7660
HBase 数据迁移到 Kafka 实战
聊一聊 ETL 的设计
0x00 前言 数据仓库体系里面的主要内容也写的差不多了,现在补一点之前遗漏的点。这一篇就来聊一下 ETL。 文章结构 先聊一下什么是 ETL。 聊一下大致的概念和一般意义上的理解。 聊一聊数据流是什么样子。因为 ETL 的工作主要会体现在一条条的数据处理流上,因此这里做一个说明。 举个具体的例子来说明。 0x01 什么是 ETL ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过
木东居士
2018/05/25
3.5K0
常见的10种 CDC 组件和方案
总结一下,本文介绍了10种常见的 CDC 组件和方案,个人觉得还不错,如果还有其他好用的 CDC 组件,欢迎在评论区分享分享。
lyb-geek
2024/04/18
3.5K0
常见的10种 CDC 组件和方案
数据迁移(2) - 如何快速迁移
在上一篇中我们介绍了数据迁移的套路,但是没有介绍具体的方案,这篇着重介绍下具体的数据迁移方案
方丈的寺院
2020/05/20
3.5K0
基于 Flink SQL CDC 的实时数据同步方案
Flink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的数据同步方案,基于 Flink CDC 同步的解决方案以及更多的应用场景和 CDC 未来开发规划等方面进行介绍和演示。
Spark学习技巧
2020/11/09
3.8K0
基于 Flink SQL CDC 的实时数据同步方案
Apache Doris取代ClickHouse、MySQL、Presto和HBase
用户从 Lambda 架构入手,将数据管道拆分为批处理链路和流处理链路。对于实时数据流,他们应用 Flink CDC ;对于批量导入,他们结合了 Sqoop、Python 和 DataX 来构建自己的数据集成工具,名为 Hisen。
大数据学习与分享
2024/01/26
2.9K0
Apache Doris取代ClickHouse、MySQL、Presto和HBase
Hbase 数据迁移闭坑指南
HBase自身也提供了ExportSnapshot的方法可以从HDFS文件层基于某个快照快速的导出HBase的数据,并不会对RegionServer造成影响,但该源生的方法不支持增量。
857技术社区
2022/05/17
8330
谈谈自己的大数据迁移经历背景问题规模数据迁移要考虑的问题最后
今天群里有人问起,刚好做过相关的工作,特此分享一下当时的工作内容和感受。 背景 大概说一下这个事情的背景。在2013年大概4月份,人人网打算做一次大规模的数据迁移——评论服务。所谓评论就是指各种资源下的“评论文字”,比如照片的评论、Blog的评论、分享的评论、音乐的评论…… 早期人人网的各个开发小组各自为政,每个团队几乎都实现了一个评论服务,有各自不同的功能和数据结构,但是大体上还算相似。当时,业务部门希望能够集中这些数据做一些统一的管理,比如权限管理(控制谁能看什么评论)、比如数据内容推荐(基于用户评论人
大宽宽
2018/05/14
1.9K0
阿里终面:10亿数据如何快速插入MySQL?
最快的速度把10亿条数据导入到数据库,首先需要和面试官明确一下,10亿条数据什么形式存在哪里,每条数据多大,是否有序导入,是否不能重复,数据库是否是MySQL?
搜云库技术团队
2023/10/30
2.8K0
阿里终面:10亿数据如何快速插入MySQL?
开源共建 | 中国移动冯江涛:ChunJun(原FlinkX)在数据入湖中的应用
ChunJun(原 FlinkX)是一个基于 Flink 提供易用、稳定、高效的批流统一的数据集成工具。2018 年 4 月,秉承着开源共享的理念,数栈技术团队在 github 上开源了 FlinkX,承蒙各位开发者的合作共建,FlinkX 得到了快速发展。
袋鼠云数栈
2022/11/23
7790
Flink CDC 新一代数据集成框架
主要讲解了技术原理,入门与生产实践,主要功能:全增量一体化数据集成、实时数据入库入仓、最详细的教程。Flink CDC 是Apache Flink的一个重要组件,主要使用了CDC技术从各种数据库中获取变更流并接入到Flink中,Apache Flink作为一款非常优秀的流处理引擎,其SQL API又提供了强大的流式计算能力,因此结合Flink CDC能带来非常广阔的应用场景。例如,Flink CDC可以代替传统的Data X和Canal工具作为实时数据同步,将数据库的全量和增量数据同步到消息队列和数据仓库中。也可以做实时数据集成,将数据库数据实时入湖入仓。还可以做实时物化视图,通过SQL对数据做实时的关联、打宽、聚合,并将物化结果写入到数据湖仓中。
小马哥学JAVA
2022/12/15
3.3K0
Flink CDC 新一代数据集成框架
基于Canal与Flink实现数据实时增量同步(二)
在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据。在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类。对于业务DB数据来说,从MySQL等关系型数据库的业务数据进行采集,然后导入到Hive中,是进行数据仓库生产的重要环节。如何准确、高效地把MySQL数据同步到Hive中?一般常用的解决方案是批量取数并Load:直连MySQL去Select表中的数据,然后存到本地文件作为中间存储,最后把文件Load到Hive表中。这种方案的优点是实现简单,但是随着业务的发展,缺点也逐渐暴露出来:
Spark学习技巧
2020/09/08
1.9K0
MySQL 亿级数据导入导出/数据迁移笔记
数据迁移,工作原理和技术支持数据导出、BI报表之类的相似,差异较大的地方是导入和导出数据量区别,一般报表数据量不会超过几百万,而做数据迁移,如果是互联网企业经常会涉及到千万级、亿级以上的数据量。
王知无-import_bigdata
2020/12/08
2.2K0
MySQL 亿级数据导入导出/数据迁移笔记
一个完整的Mysql到Hbase数据同步项目思想与实战
对于上次文章预告,这次则以项目实战从后往前进行,先给大家一个直观的应用,从应用中学习,实践中学习。
公众号guangcity
2019/09/20
3.7K1
一个完整的Mysql到Hbase数据同步项目思想与实战
企业级数据迁移(sqoop建议收藏)
在做数据导出之前,我们看一下已经完成的操作:数据分析阶段将指标统计完成,也将统计完成的指标放到Hive数据表中,并且指标数据存储到HDFS分布式文件存储系统。
大数据老哥
2021/09/16
9690
企业级数据迁移(sqoop建议收藏)
MySQL迁移OpenGauss原理详解
数据迁移是指将数据从一个数据库迁移至另一个数据库,按照数据库类型来分类,可分为同构数据库之间的迁移和异构数据库之间的迁移。
炒香菇的书呆子
2023/12/06
1.7K1
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
​上篇已经大概讲述大数据组件版本和集群矩阵配置说明,有不清楚的同学,可以阅读上一篇
Lansonli
2022/07/31
1.4K0
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
大数据-sqoop数据迁移
sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。
cwl_java
2019/12/30
1.9K0
大数据-sqoop数据迁移
大数据生态圈常用组件(二):概括介绍、功能特性、适用场景
点赞之后,上一篇传送门: https://blog.csdn.net/weixin_39032019/article/details/89340739
不吃西红柿
2022/09/26
1.6K0
mysql数据迁移hbase问题
无法直接dump,写了java多线程程序做迁移 问题1:Operation not allowed after ResultSet closed 裸jdbc语句,一个线程跑7个表,只有第一个表时候出这
架构师刀哥
2018/03/20
1.7K0
推荐阅读
相关推荐
HBase 数据迁移到 Kafka 实战
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档