大体说下业务场景, 在提倡云服务化的今天,咱们拥有了一大堆的客户数据,同时咱们也拥有了一大堆的rds。当这么多的rds存在时,数据统计有时就变得很麻烦,不再能使用一条sql来统计双十一咱们客户究竟卖了多少订单,咱们客户在淘宝和天猫订单的比例等等。sql
在数据分析和数据统计的需求愈来愈多时,数据仓库的做用就显得很是重要。而不想花太多成本搭建数据仓库,又不想投入不少开发资源的状况下,dataworks做为一个集成了数据仓库和数据分析的工具,也是一个不错的选择。数据库
dataworks从v1.0开始使用到如今v2.0。在下天天维护着超过200个数据库每一个库20+核心表的数据同步,在产品的数据需求和大量的同步任务压迫下苟延残喘。markdown
数据分析这块熟悉了sql后基本没什么好说的,对于维护数据库很少的同窗,同步任务貌似也没什么太大的问题。当数据库达到100+,天天建同步任务建到吐血的同窗,咱们能够分享下当前的经验以及策略。顺便也恐惧下数据库达到1千后,咱们该怎么办,或者坐等阿里的同窗给出更合适的同步方案吧。工具
一图抵万语:
blog
这是我使用的同步策略,将不一样rds的同一个表统一的放入odps的同一个表中,用分区参数对应rds名的方式来存放。资源
基于上述的策略,受限于资源(不能在有限的时间里把全库数据同步完),同步任务太多(手工无法建这么多同步任务啊T,T), 产品需求急(急nm啊),我维护了两套同步方案。开发
继续上图:同步
产品急需对某rds的数据作出数据产品。此产品涉及的表比较多,但不涉及全部rds,数据只在某几个rds里面。数据分析
老板、市场、产品想了解公司目前经营现状,涉及的表比较少,可是须要全表。selenium
当数据库超过50个时,人力简直要泪奔。能够建同步任务建到精神恍惚。
写于最后:分库分表数据库数量多的同窗一块儿交流交流。分享下各自的思路。我如今的解决方案是经过selenium写网页自动化脚原本自动建同步任务T,T.