大数据之路 读书笔记 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 以内,有效保障了各种场景的实时数据应用。


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

相关推荐
Data跳动1 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc1112 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq3 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq3 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈3 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据
小白学大数据4 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具
15年网络推广青哥4 小时前
国际抖音TikTok矩阵运营的关键要素有哪些?
大数据·人工智能·矩阵
节点。csn5 小时前
Hadoop yarn安装
大数据·hadoop·分布式
arnold665 小时前
探索 ElasticSearch:性能优化之道
大数据·elasticsearch·性能优化
NiNg_1_2346 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式