目录

1.数据同步基础

2.阿里数据仓库的同步方式

3.数据同步遇到的问题和解决方案


1.数据同步基础

大数据的数据同步主要包括从分布式业务系统同步进入数据仓库和数据从数据仓库同步进入数据应用和数据服务两个方面。本文主要讲述的是前者。

从业务系统同步数据到数据仓库的数据同步总的说来分为三种,直连同步(侵入式),数据文件同步,数据库日志解析。

直连同步:通过JDBC方式直接连接源系统抽取数据,当数据量大时容易对数据库造成压力甚至拖垮数据库的性能。

数据文件同步:约定好数据文件的格式,编码,大小,通过专门的FTP文件服务器传输到目标系统,同时配上一个校验文件,用于核验数据文件的数据量以及文件大小等校验信息以防丢包并验证数据同步的准确性。传输前加密压缩,传输后解密和解压缩。

数据库日志解析同步:这个方式其实已经 可以达到“实时”和“准实时”的要求了。数据库日志文件格式稳定内容丰富,解析日志文件获取发生变更的数据完成增量同步的需求。数据库日志抽取通常是获取所有的数据记录的变更(增,删,改),根据主键分组并按照操作时间倒序排序 来查看数据状态的变化。通过数据库日志解析增量同步该方式性能好,效率高,对业务系统影响较小,但有如下问题:a.数据延迟。例如,业务系统做批量补录可能会使数据更新量超出系统处理峰值,导致数据延迟。b.投人较大。采用数据库日 抽取的方式投入较大,需要在源数据库与目标数据库之间部署 个系统实时抽取数据。c.数据漂移和遗漏。数据漂移,一般是对增量表而言的,通常是指该表的同一个业务日期数据中包含前一天或后一天凌晨 附近的数据或者丢失当天的变更数据。(QST:数据延迟和数据漂移,这俩我不能理解啥意思啥情况)

“删除数据”这个变更情况,其落地方式视情况而定 ,主要有三种。

第一种:不过滤删除流水。不管是否是删除操作,都获取同一主键最后变更的那条流水。

第二种:过滤最后一条删除流水。如果同一主键最后变更的那条流水是删除操作,就获取倒数第二条流水。

第三种:过滤删除流水和之前的流水。如果同一主键变更的过程中有删除操作,则根据操作时间讲该删除操作和之前的操作流水都过滤掉。

一般可使用第一种,“不过滤删除流水”,留下删除标识来判断数据是否有效。

如果明确业务数据不存在业务上的删除,但是存在批量手工删除或备份数据删除,例如淘宝商品,会员 等,则可以采用只过滤最后一条删除流水的方式,通过状态字段来标识删除记录是否有效。(QST:折啥意思,为什么这样的话第二种方式有效??)

2.阿里数据仓库的同步方式

阿里数据同步的数据源类型是多样的,需要同步的数据是海量的,阿里大数据处理系统MaxCompute的数据存储达到EB级别,每天同步的数据量达到PB级别。

批量数据同步:Datax,多方向多自由度的数据同步,有分布式有单机的。读取数据,处理处于中间状态的数据格式化统一化再传到目标数据仓库。一般所有字段全部统一用String类型。一个大Job通过Splitter切分为多个并行执行的Sub-Job,运行Sub-Job中的读入数据数据部分对中间状态做处理,通过Channel传给Writer,Writer负责数据写出模块。

实时数据同步:双十一的数据大屏是通过解析Mysql库binlog日志(相当于Oracle的归档日志)来实时获得增量的数据更新,加上订阅消息,实现实时增量同步数据。比如阿里实时数据传输平台TimeTunnel(TT),通过一个模块不停去读取并解析各机子的日志文件,增量数据通过数据流传输到日志交换中心,然后通知所有订阅了这些数据的数据仓库系统来获取

3.数据同步遇到的问题和解决方案

分库分表的处理:TDDL(Taobao Distributed Data Layer) 分布式数据库访问引擎通过建立中间状态的逻辑表来整合统一分库分表的访问。再JDBC层之上,再持久层之下,包括了SQL解释器,SQL优化器,SQL执行器,结果集合并。(QST:真牛逼啊,有源码可看吗

高效同步和批量同步:OneClick产品,实现了数据的一键化和批量化同步,还包括了与数据同步相关的建表,配置任务,发布,测试操作。    数据仓库的数据源种类丰富,不同数据源的同步需要开发人员去了解其特殊配置,为解决这个问题,OneClick通过 库名和表名唯一 定位 ,通过IDB接口获取元数据信息自动生成配置信息。

增量和全量同步的合并:在数据库不支持update或者数据量特别大的情况下,采用 全外连接(Full outer Join)+数据全量覆盖重新加载(Insert Overwrite)。用今天新增数据 full outer join 昨日全量数据,得到今日全量数据 insert overwrite。如果怕数据错误,以时间为分区字段,保留近5-7日的全量数据版本。

同步性能的处理:基于负载均衡的思想设计的一套数据同步方案,实现了根据目标数据库元数据信息来自动估算同步任务所需的总线程数,数据同步任务按照业务优先级定位。

数据漂移的定义:ODS表的同一个业务日期数据中包含前一天或后一天凌晨附近的数据或者丢失当天的变更数据。

数据漂移的案例:双十一的时候,发现有批在11月11日23:59:59左右支付的交易订单漂移到了12日。主要原因是用户下单支付后系统需要调用支付宝接口而有所延迟,从而导致这些订单最终生成的时间跨天了。即modified_time和log_time都晚于proc_time。

数据漂移的原因:时间戳字段通常分为4类,具体业务过程发生时间 proc_time,数据库表中数据记录更新时间的时间戳字段 modified_time,数据库日志中标识数据记录更新时间的时间戳字段log_time,数据记录被抽取到数据仓库的时间戳字段 extract_time。按理来讲,这四个应一样,但四个往往出现差异从而导致当根据其中某个时间戳字段区分ODS表时就会发生数据漂移

数据漂移的一般处理:1.多获取后一天凌晨15min的数据来保证数据只多不少,而具体的数据切分
让下游根据自身不同的业务场景用不同的业务时间 proc time 来限制。但是这种方式会有一些数据误差,例如 某个订单是当天支付的,但是第二天凌晨申请退款关闭了该订单,那么这条记录的订单状态会被更新,下游在统计支付订单状态时会出现错误。(QST:这个案例我不理解,会出现啥错误)        2.通过多个时间戳字段限制时间来获取相对准确的数据。首先根据log_time冗余前一天最后15min和后一天最开始15min的数据,然后根据modified_time去筛选出当天数据,确保不会出现因系统问题导致的遗漏。然后将后一天log_time前15min的数据按照logtime升序排序去重获得最接近当天记录变化的数据。最后将第一步的全部数据和第二步中最接近昨天的记录做全外连接,然后通过限制proc_time来最终获取我们所需要的数据。(牛啊牛啊,真牛啊)

操作包含多个业务过程时发生数据漂移的处理:比如订单有多个业务流程,包括 下单,支付,成功,每个业务过程都有对应的时间戳,每个业务过程都可能会发生数据漂移。因此,我们可以根实据际情况获取后 15 分钟的数据,并限制多个业务过程的时间戳字段(下单、支付、成功)都是“双 ”当天的,然后对这些数据按照订单的 modified time 升序排列,获取每个订单首次数据变更的那条记录。此外,我们可以根据 log_time 分别冗余前一天最后 15 分钟的数据和后一天凌晨开始 15 分钟的数据,并用 modified time 过滤非当天数据,针对每个订单按照 log time 进行降序排列 ,取每个订单当天最后一次数据变更的那条记录。最后将两份数据根据订单做全外连接,将漂移数据回补到当天数据中。(QST:我不理解。。)

大数据之路:数据同步相关推荐

  1. 大数据之路——数据同步

    三.数据技术篇-- 数据同步 3.1 数据同步基础 @ 3.1.1 直连同步 3.1.2 数据文件同步 3.1.3 数据库日志解析同步 3.2 数据仓库同步方式 3.2.1 批量数据同步 3.2.2 ...

  2. 大数据之路—— 数据整合和管理体系

    九.数据模型篇-- 数据整合和管理体系 9.1 体系架构图 9.2 名词术语 9.3 指标体系 9.4 模型设计 9.4.1 基本原则 9.5 模型实施 大数据建设方法论的核心:从业务架构设计到模型设 ...

  3. 万字总结阿里大数据之路-数据技术篇(建议收藏)

    目录 一.日志采集 1.1 浏览器的页面日志采集 1.2 无线客户端的日志采集 1.3 日志采集的挑战案例 二.数据同步 2.1 数据同步基础 2.2 数据同步策略 2.2.1 批量数据同步 2.2. ...

  4. 大数据之路读书笔记-03数据同步

    大数据之路读书笔记-03数据同步 如第一章所述,我们将数据采集分为日志采集和数据库数据同步两部分.数据同步技术更通用的含义是不同系统间的数据流转,有多种不同的应用场景.主数据库与备份数据库之间的数据备 ...

  5. 阿里巴巴大数据之路——数据模型篇

    阿里巴巴大数据之路--数据模型篇 一.概述 1.什么是数据模型? 数据模型就是数据的组织和存储方法.主要关注的是从业务.数据存取和使用角度合理存储数据. 2.典型数据仓库建模方法论 ER模型 纬度模型 ...

  6. 品《阿里巴巴大数据实践-大数据之路》一书(上)

    7月有人推荐阿里巴巴刚出的这本书<阿里巴巴大数据实践-大数据之路>,到亚马逊一看才是预售状态,拍下直到8月才拿到. 翻看目录一看,欢喜的很,正好出差两天就带在身边,由于在机场滞留超过12个 ...

  7. 阿里大数据之路 总述

    大数据之路 一.总述 1. 数据采集 2. 数据计算 3. 数据服务 4. 数据应用 一.总述 数据有序.有结构地分类和存储,从而产生价值. ​ 实时:数据量大,要实时.准确 ​ 离线:采集.存储.计 ...

  8. 《大数据之路:阿里巴巴大数据实践》-第3篇 数据管理篇 -第15章 数据质量

    <大数据之路:阿里巴巴大数据实践>系列丛书  第1章 总述 第1篇 数据技术篇  第2章 日志釆集  第3章 数据同步  第4章 离线数据开发  第5章 实时技术  第6章 数据服务  第 ...

  9. 淘宝走过的大数据之路

    回顾丨13年来,淘宝走过的大数据之路 来源:CSDN大数据 时间:2016-11-07 10:19:15 作者: - 淘宝大数据之路 - 2003年至今淘宝网从零开始飞速发展,走过了13个年头,支撑淘 ...

最新文章

  1. Java Collections.sort方法对list集合排序
  2. curl 忽略证书访问 https
  3. make 和 make install 的区别
  4. c语言创建通讯录不用指针,用C语言做通讯录,只能用数组,不能用指针,急用啊,谢谢了...
  5. 横空出世,比Visio快10倍的画图工具来了
  6. 计算机科学引论2答案,计算机科学引论答案-20210311090508.docx-原创力文档
  7. 暗黑2纯Linux服务器构建
  8. 511遇见易语言教程API模块制作cmd复制文件
  9. 航空公司客户价值特征构建与分析k-means
  10. 项目管理体制改革的经验和成效(转)
  11. openwrt 做二级路由 同网段无线桥接教程 relayd
  12. ZCMU暑期训练四-G - Alex and a Rhombus
  13. iOS 磁场传感器的应用 Swift CoreMotion使用
  14. 关于SV的一些知识1
  15. kubernetes 安装 Dashboard
  16. 界面布局layout
  17. cmw500 lte非信令测试_如何分辩cmw500是信令还是非信令?
  18. php微信支付怎么来测试_PHP微信支付通知处理方式实现方法
  19. 矩形的对角线经过的小方格数量
  20. Spring5框架(上) IOC

热门文章

  1. 泰语字库,泰文字库,泰文组合算法,泰语组合算法
  2. http://twitter.github.io/bootstrap/
  3. 使用UltraISO制作U盘启动盘安装win7
  4. 插画和原画有哪些区别?
  5. HDLC——面向比特的同步协议
  6. C++符号计算库GiNaC的安装和使用教程
  7. 蒲公英分发安装iOS应用
  8. MATLAB中hasFrame和readFrame
  9. 电商管理系统原型分享- E-Market
  10. Python实现人机五子棋