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

news2024/11/22 22:13:18

回顾:

  • 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.coloradmin.cn/o/1904859.html

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

相关文章

自用款 复制粘贴工具 Paste macOS电脑适配

Paste是一款专为Mac和iOS用户设计的剪贴板管理工具,它提供了强大的剪贴板增强功能。Paste能够实时记录用户复制和剪切的内容,包括文本、图片、链接等多种数据类型,并形成一个可视化的剪贴板历史记录,方便用户随时访问和检索。此外…

【密码学】密码学中的四种攻击方式和两种攻击手段

在密码学中,攻击方式通常指的是密码分析者试图破解加密信息或绕过安全机制的各种策略。根据密码分析者对明文、密文以及加密算法的知识程度,攻击可以分为以下四种基本类型: 一、四种攻击的定义 (1)唯密文攻击(COA, C…

蚂蚁全媒体总编刘鑫炜谈新媒体时代艺术家如何创建及提升个人品牌

新媒体时代艺术家如何创建及提升个人品牌形象——专访蚂蚁全媒体总编刘鑫炜 图为蚂蚁全媒体总编刘鑫炜 在新媒体风潮席卷全球的今天,传统艺术与新媒体技术的融合越来越紧密。这种变革不仅改变了艺术作品的呈现方式,也给艺术家们提供了更多的可能性。那么…

python 10个自动化脚本

目录 🌟 引言 📚 理论基础 🛠️ 使用场景与代码示例 场景一:批量重命名文件 场景二:自动下载网页内容 场景三:数据清洗 场景四:定时执行任务 场景五:自动化邮件发送 场景六…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十二)-管道、环境变量、常用命令

大致介绍了一下管道、环境变量、一些常用的基本命令,可以当作学习笔记收藏学习一下!!! 文章目录 前言 一、管道 二、环境变量 1.概念 2.查看 3.修改 4.常用环境变量 三、系统状况 总结 前言 大致介绍了一下管道、环境变量、一些常…

【因果推断】优惠券政策对不同店铺的影响

这次依然是用之前rossmann店铺竞赛的数据集。 之前的数据集探索处理在这里已经做过了,此处就不再赘述了CSDN链接 数据集地址:竞赛链接 这里探讨数据集中Promo2对于每家店铺销售额的影响。其中,Promo2是一个基于优惠券的邮寄活动,发…

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

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

将iStoreOS部署到VMware ESXi变成路由器

正文共:888 字 19 图,预估阅读时间:1 分钟 前面把iStoreOS部署到了VMware workstation上(将iStoreOS部署到VMware Workstation)。如果想把iStoreOS直接部署到ESXi上,你会发现转换镜像不能直接生成OVF或者OV…

Redis源码整体结构

一 前言 Redis源码研究为什么先介绍整体结构呢?其实也很简单,作为程序员的,要想对一个项目有快速的认知,对项目整体目录结构有一个清晰认识,有助于我们更好的了解这个系统。 二 目录结构 Redis源码download到本地之后,对应结构如下: 从上面的截图可以看出,Redis源码一…

【2024_CUMCM】T检验、F检验、卡方检验

T检验 T检验主要用于比较两组数据的均值差异,适用于小样本数据分析。它可以分为单样本T检验、独立样本T检验和配对样本T检验。 单样本T检验用于比较一个样本与已知的总体均值差异,独立样本T检验用于比较两个独立样本的均值差异,配对样本T检…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】 购物车需求描述购物车数据结构数据Model抽取实现流程(参照京东)代码实现参考 购物车需求描述 用户可以在登录状态下将商品添加到购物车【用户购物…

从FasterTransformer源码解读开始了解大模型(2.1)代码通读03

从FasterTransformer源码解读开始了解大模型(2.2)代码解读03-forward函数 写在前面的话 本篇的内容继续解读forward函数,从650行开始进行解读 零、输出Context_embeddings和context_cum_log_probs的参数和逻辑 从653行开始,会…

Python实现ABC人工蜂群优化算法优化随机森林回归模型(RandomForestRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 人工蜂群算法(Artificial Bee Colony, ABC)是由Karaboga于2005年提出的一种新颖的基于群智能的全局优化…

LeetCode Hard|124.二叉树中的最大路径和

力扣题目链接 题目解读: 二叉树路径的定义即从1.任意节点出发,到达任意节点;2.该路径至少包含一个节点,且不一定经过跟节点;3.求所有可能路径和的最大值。 也就是说路径途径一个节点只能选择来去两个方向 考虑一个二叉…

微信公众平台测试账号本地微信功能测试说明

使用场景 在本地测试微信登录功能时,因为微信需要可以互联网访问的域名接口,所以本地使用花生壳做内网穿透,将前端服务的端口和后端服务端口进行绑定,获得花生壳提供的两个外网域名。 微信测试账号入口 绑定回调接口 回调接口的…

2024年06月CCF-GESP编程能力等级认证Python编程二级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证…

声明队列和交换机 + 消息转换器

目录 1、声明队列和交换机 方法一:基于Bean的方式声明 方法二:基于Spring注解的方式声明 2、消息转换器 1、声明队列和交换机 方法一:基于Bean的方式声明 注:队列和交换机的声明是放在消费者这边的,这位发送的人他…

力扣206

题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3: 输…

【排序算法】—— 快速排序

快速排序的原理是交换排序,其中qsort函数用的排序原理就是快速排序,它是一种效率较高的不稳定函数,时间复杂度为O(N*longN),接下来就来学习一下快速排序。 一、快速排序思路 1.整体思路 以升序排序为例: (1)、首先随…

PTA甲级1005:Spell It Right

错误代码&#xff1a; #include<iostream> #include<vector> #include<unordered_map> using namespace std;int main() {unordered_map<int, string> map {{0, "zero"}, {1, "one"}, {2, "two"}, {3, "three&qu…