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

回顾:

  • Day 3 总结了无限客户端的日志采集 大数据之路 读书笔记 Day 3
  • Day 2总结了浏览器端的日志采集 大数据之路 读书笔记 Day 2

数据同步

阿里数据体系中的数据同步,主要指的是在不同的数据存储系统之间进行数据的传输与更新,以保证数据的一致性和实时性。这个过程通常涉及到源系统的数据抽取、数据转换处理以及目标系统的数据加载三个核心步骤,简称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 以内,有效保障了各种场景的实时数据应用。


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

reactor和proactor模型

Reactor模型是非阻塞的同步IO模型。在主线程中也就是IO处理单元中,只负责监听文件描述符上是否有事件发生,有的话就立即将事件通知工作线程,将socket可读可写事件放入请求队列,交给工作线程处理。 总而言之就是主线程监听有事件发…

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_3【二十二】

在前面的几期博文中有过解析去除apk中功能权限的反编译步骤。另外在以往博文中也列举了修改apk中选项功能权限的操作方法。今天以另外一款apk作为演示修改反编译去除软件功能限制的步骤。兴趣的友友可以参考其中的修改过程。 课程的目的是了解apk中各个文件的具体作用以及简单…

【密码学】什么是密码?什么是密码学?

一、密码的定义 根据《中华人民共和国密码法》对密码的定义如下: 密码是指采用特定变换的方法对信息等进行加密保护、安全认证的技术、产品和服务。 二、密码学的定义 密码学是研究编制密码和破译密码的技术科学。由定义可以知道密码学分为两个主要分支&#x…

69.WEB渗透测试-信息收集- WAF、框架组件识别(9)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:68.WEB渗透测试-信息收集- WAF、框架组件识别(8) 有无waf存在&am…

GESP C++一级真题

PDF图片1-7 点赞❤️关注😍收藏⭐️ 互粉必回🙏🙏🙏

DPDK源码分析之(1)libmbuf模块

DPDK源码分析之(1)libmbuf模块 Author:OnceDay Date:2024年7月2日 漫漫长路,有人对你笑过嘛… 全系列文档可参考专栏:源码分析_Once-Day的博客-CSDN博客 参考文档: DPDK downloadGetting Started Guide for Linux…

CGAL计算凸包(OSG进行可视化)

目录 一、什么是凸包 二、运行步骤 1、安装依赖项 2、编译osg库 3、运行代码 4、运行截图 一、什么是凸包 凸包是计算几何中的一个基本概念,用来描述一个点集的最小凸包围形。具体来说,给定一个点集,凸包是包含该点集的最小凸多边形或凸多面体。 二维凸包:在二维平面…

算法-常见数据结构设计

文章目录 1. 带有setAll功能的哈希表2. LRU缓存结构3. O(1)时间插入删除随机(去重)4. O(1)时间插入删除随机(不去重)5. 快速获取数据流中的中位数6. 最大频率栈7. 全O(1)结构8. LFU缓存结构 本节的内容比较难, 大多是leetcodeHard难度级别的题目 1. 带有setAll功能的哈希表 哈希…

js计算两个日期直接的间隔天,2018/12/14到2017/11/10有多少天

const startDate new Date(2017-11-10)const endDate new Date(2018-12-14)const diffTime Math.abs(endDate - startDate)const diffDays Math.ceil(diffTime / (1000 * 60 * 60 * 24))console.log(diffDays) // 输出天数差 人工智能学习网站 https://chat.xutongbao.top…

VSCode神仙插件——Codeium (AI编程助手)

1、安装&登录插件 安装过程中会让你登录Codeium账户,可以通过Google账户登录,或者可以注册一个Codeium账户(如果没有弹出让你登录账户的界面,可以等安装结束后在右下角找到登录的地方) 右下角显示如下图所示&#…

【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、nouveau驱动程序加入黑名单二、安装NVIDIA显卡驱动总结 前言 NVIDIA显卡驱动是用于支持和优化NVIDIA显卡在计算机系统中运行的关键软件组件。该驱动程序能…

【每日一练】python算数练习题(函数.随机.判断综合运用)

""" 幼儿园加减法练习题 答对点赞表情,答错炸弹表情 表情随机出现 如果全答对有大奖 """ import random df0 #定义答对函数 def dd():global dfdf10bq["🌹🌹🌹","🎉&…

系统测试-测试方法学习

目录 (1)等价类 (2)边界值 (3)正交:(只用于确定排列组合,不确定具体内容) (4)判定表法 (5)流程分析法 (6&#xff0…

Django 查询数据

模型参考上一章内容: Django QuerySet对象,filter()方法-CSDN博客 查询数据可以通过以下方法: Book.objects.all() Book.objects.filter() Book.objects.get() 1,添加视图函数 Test/app11/views.py from django.shortcuts im…

昇思25天学习打卡营第12天|MindSpore-基于MobileNetv2的垃圾分类

基于MobileNetv2的垃圾分类 主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中。 1、实验目的 了解熟悉垃圾分类应用代码的编写(Python语言);了解Linux操作系统的基本使用;掌握atc命令进行模型…

Spring学习05-[AOP学习-AOP原理和事务]

AOP原理和事务 AOPAOP底层原理比如下面的代码案例手动模拟AOP 动态代理详解JDK动态代理具体实现 AOP AOP底层原理 当实现了AOP,Spring会根据当前的bean创建动态代理(运行时生成一个代理类) 面试题:为什么执行方法的时候,会执行切面里的通知方法&#xf…

华为机试HJ40统计字符

华为机试HJ40统计字符 题目: 想法: 统计上述题目中的四种字符的个数存入字典中,按指定顺序进行输出 input_str input()str_dict {"alpha": 0, "space": 0, "number": 0, "others": 0}for i in …

ZYNQ-LINUX环境C语言利用Curl库实现HTTP通讯

前言 在Zynq-Linux环境中,需要使用C语言来编写APP时,访问HTTP一般可以使用Curl库来实现,但是在Zynq的SDK中,并没有集成该库,在寻找了很多资料后找到了一种使用很方便的额办法。这篇文章主要记录一下移植Curl的过程。 …

【2024_CUMCM】数据预处理、数据分析、数据可视化

目录 2023-c题-问题1 问题分析 偏度 峰度 箱线图 读图 重采样、降采样、升采样 重采样 降采样 升采样 解题代码 2023-c题-问题1 问题分析 问题说白了就是探究品类和销售量这两个数据他们各自内在联系,根据题意,我们先进行数 据预处理&#…

【C语言】 —— 编译和链接

【C语言】 —— 编译和链接 一、编译环境和运行环境二、翻译环境2.1、 预处理2.2、 编译(1)词法分析(2)语法分析(3)语义分析 2.3、 汇编2.4、链接 三、运行环境 一、编译环境和运行环境 平时我们说写 C语言…