记一次数据同步需求的改进(一) (r7笔记第2天)

最近有个需求,开发的同事找到我,提出了下面的需求 由于平台业务发展需要,需要将test_account_log 和test_protect_log 表前一天的增量同步到新增的两张表上 对于这个需求看起来还是蛮简单的。自己结合这两张报的设计方式发现没那么简单。

首先对这两个表做了分库分表,从图中可以看到,其实分成了4个库,16个用户,每个用户按照业务逻辑保存了一部分的明细数据,从目前的数据量来看,累计数据还不算大。 如果按照开发的需求,需要抽取保留前一天的增量数据,这个需求还是需要好好斟酌的。 因为是评估,还是要做一些工作的,不能凭空来想决定可不可行, 首先来抓取了 我抓取了部分用户下表中数据的增长情况,这个过程还是在备库完成,基本每天的数据变化频率不高,下面是test_account_log的数据情况,test_protect_log的频率要更低一些。 2015-10-05 7487 2015-10-06 8140 2015-10-07 8436 2015-10-08 7763 2015-10-09 13933 2015-10-10 15391 2015-10-11 9357 2015-10-12 7680 2015-10-13 5575 2015-10-14 5427 2015-10-15 5697 2015-10-16 6095 2015-10-17 7370 2015-10-18 6869 2015-10-19 5634 2015-10-20 5562 2015-10-21 4900 2015-10-22 694 可以看出每天的数据变更其实不大,10多个累计起来就几万,还是比较小的,从增量数据的情况来看,还是很容易能够实现的。 如果每天的都在百万,千万,那就需要进一步评估确认了。 于是我提了下面几个问题,把这些问题的责任人都指定,谁来负责确认哪些都标明,因为这个还是需要协同来完成。 1.提供增量抽取sql语句 --开发同学 请从业务上评估,提供增量抽取sql语句。 取昨天的增量: 后续得到开发同学的反馈,发现这个operation_date字段上没有相关的索引,也就意味着这种抽取还是会有潜在的风险。 select * from test_account_log where operation_date>=to_date(‘2015-10-25’,’yyyy-mm-dd’) and operation_date select * from test_protect_log where operation_date>=to_date(‘2015-10-25’,’yyyy-mm-dd’) and operation_date 2. 目前test_account_log,test_protect_log没有operation_date相关的索引,需要创建额外的索引 --开发同学,DBA 因为不存在相关的索引,所以还是需要考虑能够添加索引,如果能够添加,索引列是为多个相关字段还是单单为operation_date 开发同学的反馈,创建索引的语句为: create index account_log_date on test_account_log (operation_date) create index protect_log_date on test_protect_log (operation_date) 对这个索引的创建,我需要从历史的sql执行情况来分析是否合适,是否会有潜在的原因导致执行计划的变更。 3.请确认是否operation_date为变化字段,如果这个值发生变化,增量抽取的数据就会有问题。--开发同学 比如 log_id uid operation_date 1 100 2015-10-21 xxxx 如果发生变化 1 100 2015-10-23 xxxx 在增量抽取的数据中就会存在重复数据(log_id,uid.xxxx) 这一点看似会忽略,但是却是至关重要,因为仅仅根据开发的需求来完成,如果不考虑这种数据变更的影响,那后面就会有非常多的隐患。 得到开发同学的反馈为: 该表的数据都不会变化,只会增加。因为这个表是一个历史数据表,所以里面的数据是不会修改的。 4.汇总后的表放哪儿确认完再讨论,技术上是可以支持的。不过基于安全和后期数据量的情况,还是需要找领导审批 --找主管审批确认 所以一个简单的问题仔细分析之后,还是在于其范围之内,可以很容易就实现的。后续的就是实施的过程了,当然这个过程会有很多的转折点,可能会对这个需求产生更大的影响,甚至推翻需求重来,后续再来解读。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2015-10-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏钱塘大数据

【干货】华为九大热门开源项目,你了解多少?

世界 500 强的华为,旗下设有华为开源软件能力中心。是基于华为开源战略新成立的部门。承担开源新技术扫描与规划、开源技术研究、开源开发方法探索、开源社区运营和开...

1463
来自专栏PPV课数据科学社区

大数据分析需要把hbase、mysql等数据导入hive吗?

看做什么,如果不需要对数据进行实时处理,那么大部分情况下都需要把数据从hbase/mysql(数据库)“导入”到hive(数据仓库)中进行分析。“导入”的过程中...

4115
来自专栏杨建荣的学习笔记

分布式关系型数据库RadonDB体验归来

前段时间收到吴老师的邀请,是参加青云QingCloud分布式数据库(RadonDB)的一个技术体验活动,从今天的技术体验来算,收获还是很多的,大家相聊甚...

1734
来自专栏SDNLAB

SDN实战团分享(四十):揭秘Arista EOS三大特性,打造非一般的云网架构

很多人知道目前全球许多大型的云数据中心网络使用了大量 Arista 的交换机,那么这些用户看重的是哪些特性?今天我来和大家一起探讨一下云网络数据中心看重的软件驱...

3865
来自专栏木头编程 - moTzxx

PHP 开发学习[4] —— 学习参考网站

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1072
来自专栏张善友的专栏

SQL Server 2012将与Hadoop无缝集成

SQL Server 2012致力提供大规模且低成本的分析数据和数据仓库解决方案,并保证实现规模化和灵活性。在大数据时代Microsoft也做出了一些完善。 结...

1999
来自专栏Golang语言社区

大数据架构下对于业务监控的几点思考

许俊是极光的第一位严格意义上的大数据工程师,目前是大数据平台的负责人,见证了极光大数据平台从0到1,迅速发展到现在规模的历程。他给开发者带来的是大数据架构下对于...

5106
来自专栏H2Cloud

C++ FFLIB之ffcount:通用数据分析系统

摘要: 数据分析已经变得不可或缺,几乎每个公司都依赖数据分析进行决策。在我从事的网游领域,数据分析是策划新功能、优化游戏体验最重要的手段之一。网游领域的数据分析...

3576
来自专栏腾讯移动品质中心TMQ的专栏

探索式测试基础系列--初恋的味道

一、探索式测试基础系列 1、背景 在移动互联网时代,敏捷开发是主流的开发流程,功能的快速迭代让我们面临的问题就是如何应对各种需求变更,如何提升测试效率,要解决以...

2298
来自专栏姬小光

如何洞悉隐性需求

俗话说,计划赶不上变化快,无论需求文档做得如何细致,考虑得如何周全,总会有些难以预料的需求变更在每天困扰着我们。开发人员苦恼,产品运营人员更苦恼,毕竟谁也不愿意...

893

扫码关注云+社区

领取腾讯云代金券