PowerDotNet平台化软件架构设计与实现系列(07):数据同步平台
上文介绍定时任务调度平台的时候提到,定时任务调度平台的类模式一般用于处理耗时较长的任务。但是根据经验,有些耗时较长的任务,可以通过简化业务逻辑、分页、批量多次处理,改造为耗时较小的适合使用RESTful接口模式的定时任务。有一类数据同步结转非常耗时的任务,耗时多少完全看数据量,这类数据处理任务的解决方案,就是本文要介绍的基于DataX实现数据同步功能。
DataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、PostgreSQL、HDFS、Hive、ADS、HBase等各种异构数据源之间高效的数据同步功能。
环境准备
1、(必须).Net Framework4.5+
2、(必须)关系型数据库MySQL或SqlServer或PostgreSQL或MariaDB四选一
3、(必须)Quartz.Net2.3.2或更高版本
4、(必须)JDK8或更高版本
5、(必须)Python2.7
6、(必须)DataX3.0或更高版本
7、(必须)PowerDotNet配置中心Power.ConfigCenter
8、(必须)PowerDotNet注册中心Power.RegistryCenter
9、(必须)PowerDotNet数据库管理平台,主要使用DBKey和数据库元数据功能
10、(必须)PowerDotNet缓存平台Power.Cache,后续文章详细介绍
11、(必须)PowerDotNet消息平台Power.Message,主要用于发送预警信息和使用消息队列,后续文章会有介绍
12、(必须)PowerDotNet人员管理平台Power.HCRM,后续文章详细介绍
一、元数据管理
我们在DB管理平台中已经介绍过数据库元数据管理。这里按照实际需要,我们将DB管理平台的功能集成进DataX数据同步平台。
DataX数据同步管理,离不开DBKey、数据库服务器和数据表元数据的开发管理。

二、任务管理
1、单个添加任务
熟悉了DataX的工作原理后,我们可以按需添加数据同步任务,轻松实现从某个库到某个库的“搬迁”。
配合加载好的元数据,动动鼠标,就能完成任务管理配置。
定时配置:

读库配置:
系统自动支持按照时间或者数字序号进行数据同步结转,满足了绝大多数同步需求。

写库配置:
数据同步任务中,自动生成模板功能是重中之重,系统提供了好几个实用工具,主要包括实现“有则更新,无则插入”的模板生成逻辑。

2、批量添加任务
单个任务相对比较简单,但是如果同步任务很多,一个一个添加就比较让人生厌了。别忘了我们开发软件的重要目标,就是“动动鼠标解决问题”。幸好平台开发了自动批量生成多个任务的功能,解放大家的双手。

三、任务调度
和定时任务同步平台类似,利用数据库锁特性,支持分片多集群,实现了定时任务高可用和分片弹性部署。

四、任务统计
和定时任务调度平台的任务统计功能类似,其实还可以统计某个数据同步任务成功处理多少条数据,失败多少条数据,不过通常用户也不关注。
1、单一数据同步任务统计

2、所有同步任务统计
虽然统计功能不是重要功能,可是统计数据的生成还是有技巧的,波动较大的时候,点击上去的提示能让用户一目了然发现问题。
五、其他
数据同步平台还开发了其他常用功能,包括如下:
1、日志管理
2、重试任务管理
3、定时清理DataX文本日志
4、异常预警和自动恢复

利用好数据同步平台,可以大大减轻运维人员和DBA对数据库的管理压力,同时对依赖数据库的业务开发的工作效率有极大的提升。
六、总结
有了定时任务调度平台和数据同步平台,依赖数据库Job的各种定时作业,定时结转业务数据或报表等苦活累活,基础数据的分发(而不用苦哈哈写API接口,虽然我推荐还是最好写接口,但是架不住有人就是爱SQL Join)等等都可以平滑迁移到这两个平台里,让数据库专注于“存储和查询”两个核心功能,定时作业处理只要点点按钮解决问题,真正的解放开发、运维和DBA。
参考:
https://github.com/alibaba/datax
PowerDotNet平台化软件架构设计与实现系列(07):数据同步平台的更多相关文章
- PowerDotNet平台化软件架构设计与实现系列(13):应用监控平台
本文再写一篇和具体业务逻辑几乎无关的公共服务应用监控平台.PowerDotNet自研的应用监控平台系统,是服务治理的重要拼图,和服务治理平台配合使用效果更好. 监控开源产品非常丰富,站在巨人的肩膀上, ...
- PowerDotNet平台化软件架构设计与实现系列(08):缓存平台
几乎所有后端应用都会或多或少用到缓存,尤其是分布式缓存服务,以及和本地缓存构造的二级缓存.根据我们一贯的节约代码的风格,为了复用的目标,抽象出缓存平台,进行缓存管理. 考虑到很多公司都会自己造或者直接 ...
- PowerDotNet平台化软件架构设计与实现系列(11):日志平台
所有后端应用几乎都会记录日志,日志系统可以统一抽象出来提供服务. 最近被Log4j2的安全漏洞刷屏了,作为开发人员的我只能咩哈哈几次表示日志处理太难了,只有折腾过的人才知道这里面的艰辛啊. 在实现Po ...
- PowerDotNet平台化软件架构设计与实现系列(12):HCRM人员管理平台
技术服务于业务,良好的技术设计和实现能够大幅提升业务质量和效率. PowerDotNet已经形成了自己的开发风格,很多项目已被应用于生产环境,可行性可用性可靠性都得到了生产环境验证. 编程是非常讲究动 ...
- PowerDotNet平台化软件架构设计与实现系列(03):系统应用平台
为了复用和解耦,快速开发更多的系统和应用,我们对自己经常说的"系统"和"应用"进行更高级的提取和抽象. 十多年前入行,辗转至今,写过很多很多应用,个人喜欢分门别 ...
- PowerDotNet平台化软件架构设计与实现系列(01):基础数据平台
本系列我将主要通过图片和少许文字讲解通过个人自研的PowerDotNet进行快速开发平台化软件产品. PowerDotNet不仅仅是包含像Newtonsoft.Json.Dapper.Quartz.R ...
- PowerDotNet平台化软件架构设计与实现系列(05):ETCD分布式键值存储平台
ETCD目前在PowerDotNet已经被用于注册中心和配置管理(常见的配置中心在PowerDotNet中仅仅是一个小小的模块而已)中,作为基础设施的重要组成部分,ETCD的重要性不言而喻. 本文简单 ...
- PowerDotNet平台化软件架构设计与实现系列(06):定时任务调度平台
定时任务是后端系统开发中少不了的一个基本必备技能. 传统的实现定时任务的方式有很多种,比如直接使用操作系统的Timer和TaskSchedule,或者基于Quartz.HangFire.xxl-job ...
- PowerDotNet平台化软件架构设计与实现系列(02):数据库管理平台
为了DB复用和简化管理,我们对常见应用依赖的DB模块进行更高级的提取和抽象. 虽然一些ORM可以简化DB开发,但是我们还是需要进行改进和优化,否则应用越多,后期管理运维越混乱. 根据常见开发需要,数据 ...
随机推荐
- [bzoj1416]神奇的口袋
容易发现操作任意次并不会改变每一个点的概率(因为每一个点加d的概率相同,期望与原数成比例),然后直接输出即可(要用高精度) 1 #include<bits/stdc++.h> 2 usin ...
- SuperEdge再添国产智能加速卡支持,为边缘智能推理再提速10倍
作者 寒武纪AE团队,腾讯云容器中心边缘计算团队,SuperEdge 开发者 SuperEdge 支持国产智能加速卡寒武纪 MLU220 SuperEdge 对应的商业产品 TKE Edge 也一直在 ...
- 论文翻译:2020_Densely connected neural network with dilated convolutions for real-time speech enhancement in the time domain
提出了模型和损失函数 论文名称:扩展卷积密集连接神经网络用于时域实时语音增强 论文代码:https://github.com/ashutosh620/DDAEC 引用:Pandey A, Wang D ...
- mybatis判断集合长度
使用mybatis框架在写sql的时候碰到一个异常: 1064 - You have an error in your SQL syntax; check the manual that corres ...
- IDEA安装JavaFx
jdk11之后jdk就不内置javafx了,需要自己下载 在idea中新建JavaFx项目: 创建成功后发现代码标红 这个时候要把刚刚下载的JavaFx包解压后添加进去 选择到自己解压的路径的文件 ...
- 7.3 自定义镜像-运行nginx与tomcat并结合PV/PVC/NFS以实现动静分离示例
1.在NFS SERVER上为tomcat.nginx创建相关目录 NFS SERVER的部署配置参考:https://www.cnblogs.com/yanql/p/15410308.html 1. ...
- LG 11 月 月赛 II T4
LG 11 月 月赛 II T4 看到膜数和 $ 10^5 $ 以及 $ n^2 $ 的部分分想到很可能是 NTT 于是开始推式子 首先看到式子可以化作, 如果 \(k = 0\) , $ f(l , ...
- P7708「Wdsr-2.7」八云蓝自动机 Ⅰ
*X. P7708「Wdsr-2.7」八云蓝自动机 Ⅰ. 摘自 分治与根号数据结构学习笔记 第三部分 莫队 例题 X.. 一道莫队好题.私以为本题最有价值的地方在于对单点修改的转化以及对交换两个数的处 ...
- Linux环境下R和R包安装及其管理
前言 R对windows使用很友好,对Linux来说充满了敌意.小数据可以在windows下交互操作,效果很好很棒.可是当我们要处理大数据,或者要在集群上搭建pipeline时,不得不面对在Linux ...
- (转载)Java生成和操作Excel文件
JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...