大数据之路 读书笔记 Day4 数据同步

回顾:

数据同步

阿里数据体系中的数据同步,主要指的是在不同的数据存储系统之间进行数据的传输与更新,以保证数据的一致性和实时性。这个过程通常涉及到源系统的数据抽取、数据转换处理以及目标系统的数据加载三个核心步骤,简称ETL(Extract, Transform, Load)。

DataX在阿里数据体系中扮演着关键的角色,它是一款高性能的离线数据同步工具,主要用于实现不同数据源之间的数据迁移和同步。DataX的设计理念是为了提供一种灵活、高效且可扩展的方式,来解决数据在各种异构系统之间的传输问题。

总的来说,数据同步有三种方式:

  • 直连同步
  • 数据文件同步
  • 数据库日志解析同步

本文将重点介绍后两种,因为比较重要

1. 直连同步

定义了规范接口API,配置简单,但性能较差

2. 数据文件同步

约定好文件编码、大小、格式,直接从源系统生成数据的文本文件,然后上传到文件服务器(FTP),然后加载到目标系统。

好处:

  • 可以包含多个异构数据库系统,如oracle、mysql、DB2等等
  • 还可以传输互联网的日志类数据,因为它们也是文本文件形式存储

注意:

  • 由于文件服务器上传、下载可能会丢包,所以还需要上传校验文件
  • 在源系统生成数据文件时,可以压缩和加密,大大提高传输性能和安全性

3. 数据库日志解析同步

通过直接解析日志文件,获取发生变更的数据,从而满足增量数据同步的需求

以Oracle举例

  • 通过源系统进程读取归档日志文件,收集数据变化信息
  • 判断是否属于被收集对象
  • 解析到目标数据文件(以上三步均通过操作系统完成,不通过数据库,因此不会影响源系统性能)
  • 通过网络协议传输
  • 通过数据加载模块导入
    数据库日志解析同步方式实现了实时与准实时同步的能力,延迟可以控制在毫秒级别,并且对业务系统的性能影响也较小,目前广泛应用于从业务系统到数据仓库系统的增量数据同步应用之中。

本书中还介绍了数据库日志抽取中,针对不同的业务场景,须采用不同的落地手法。如类似删除数据后产生的日志的处理方法,结合主键考虑,这里不再详述。

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

4.1 阿里数据仓库的特点

  1. 数据来源的多样性,包括mysql等结构化数据,同时还包含web服务器产生的日志、各类图片、视频等
  2. 海量数据,目前阿里巴巴的大数据处理系统maxcompute的数据存储达到EB级别,需要同步的数据量达到PB级别

以上两点,使得处理数据需要采取不同策略

4.2 批量数据同步

阿里巴巴的 DataX 是一个能满足多方向高自由度的异构数据交换服务产品。对于不同的数据源,DataX 通过插件的形式提供支持,将数据从数据读出并转换为中间状态,同时维护好数据的传输、缓存等工作。数据在 DataX 中以中间状态存在,并在目标数据系统中将中间状态的数据转换为对应的数据格式后写入。目前 DataX 每天都需要处理 2PB 左右的批量数据同步任务,通过分布式模式,同步完所有的数据所需要的时间一般在 3 小时以内,有力保障了大数据同步的准确及高效性。

  • Job:数据同步作业。
  • Splitter:作业切分模块,将一个大任务分解成多个可以并行的小任务。
  • Sub-Job:数据同步作业切分后的小任务,或称之为 Task。
  • Reader:数据读入模块,负责运行切分后的小任务,将数据从源系统装载到 DataX。
  • Channel:Reader 和 Writer 通过 Channel 交换数据。
  • Writer:数据写出模块,负责将数据从 DataX 导入目标数据系统。

4.3 实时数据同步

产生原因:

处理双11这种需要实时汇总,实现秒级数据刷新的业务场景

具体来说,就是建立一个数据日志交换中心,从每台服务器源源不断的读取日志数据,然后通知订阅了这些日志的数据仓库获取,TimeTunnel能够实现这样的需求

示意图和介绍:

具体来说,TT 是一种基于生产者、消费者和 Topic 消息标识的消息中间件,将消息数据持久化到 HBase 的高可用、分布式数据交互系统。

  • 生产者:消息数据的产生端,向 TimeTunnel 集群发送消息数据,就是图中的生产 Client。

  • 消费者:消息数据的接收端,从 TimeTunnel 集群中获取数据进行业务处理。

  • Topic:消息类型的标识,如淘宝 acookie 日志的 Topic 为 taobao_acookie,生产 Client 和消费 Client 均需要知道对应的 Topic 名字。

  • Broker 模块:负责处理客户端收发消息数据的请求,然后往 HBase 取发数据。

TimeTunnel 高效、稳定地支持阿里巴巴实时数据的同步,每天处理的日志类数据多达几百 TB,数据库 binlog 解析的实时增量数据同步也有几百 TB,在天猫"双 11"大促活动中,在峰值为每秒十几万笔交易量的极端情况下延迟控制在 3s 以内,有效保障了各种场景的实时数据应用。


以上就是今天的内容啦
点赞收藏关注,获取更多干货知识~

相关推荐
在下不上天7 分钟前
Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
大数据·开发语言·python
智慧化智能化数字化方案36 分钟前
华为IPD流程管理体系L1至L5最佳实践-解读
大数据·华为
PersistJiao2 小时前
在 Spark RDD 中,sortBy 和 top 算子的各自适用场景
大数据·spark·top·sortby
2301_811274312 小时前
大数据基于Spring Boot的化妆品推荐系统的设计与实现
大数据·spring boot·后端
Yz98762 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
青云交2 小时前
大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)
大数据·数据清洗·电商数据·数据整合·hive 数据导入·多源数据·影视娱乐数据
武子康2 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康2 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
时差9532 小时前
Flink Standalone集群模式安装部署
大数据·分布式·flink·部署
锵锵锵锵~蒋2 小时前
实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
大数据·数据仓库·flink·实时数据开发