在生产环境中,数据库数据一般都是经常备份的,比如每天备份一次。主要用的是阿里云的服务,包括服务器、云数据库以及其他一些云产品。备份的频率是每天一次,就是说每天一个pt,全量备份。数据清洗就是直接离线在备份的pt上进行SQL操作,然后初始化到其他表中。
1.操作离线数据库,写SQL,数据清洗及初始化到临时表中。
2.写同步脚本,阿里云的离线定时任务有很好的支持
3.阿里云不支持较复杂的离线任务,比如说加了一些逻辑判断,这时候就需要我们使用阿里云的开源框架dataX来操作,直接改源码,然后打包运行。
4.操作最好先在测试进行测试,检验数据是否正确。生产的操作最好在晚上进行,阿里云支持设置导入导出的数据流速度,最好设置下速度不要太大,以免对线上数据库造成太大压力。
简介dataX的一些特性:
1.支持数据库众多。
截至目前已经支持RDBMS 关系型数据库,如Mysql,Oracle ,SqlServer,Postgresql等,阿里云数仓数据存储如ODPS,ADS,OSS,OCS等,NoSQL数据存储如OTS,Hbase0.94,Hbase1.1 ,MongoDB等,无结构化存储如TxtFile,FTP,HDFS。
2.扩展性强。
DataX Framework提供了简单的接口与插件交互,提供简单的插件接入机制,只需要任意加上一种插件,就能无缝对接其他数据源。
3.上手简单。
配置是json格式,符合主流习惯,只需几分钟就可以轻松上手。
4.开源。
开源的好处就是即使不是阿里云服务器,内网环境下也可以将源码download下来运行,同时可以研究下原理。当然,开源也可以做一些自己业务方面针对性的处理。
下面说一个缺点吧,在2018年年初使用的时候,文档落后于功能迭代速度,导致想用一些特性却不支持,最后翻了源码才发现可以支持。
dataX源码:https://github.com/alibaba/DataX
网友评论