背景介绍:

数据的抽取,转换和加载 (ETL, Extract, Transform, Load) 是构建数据仓库过程中最复杂也是至 关重要的一个步骤,我们通常用两种办法来处理 ETL 流程:

一种是异步(Asynchronous) ETL 方式, 也称为文本文件(Flat file)方式

另外一种是同步(Synchronous) ETL 方式,也称为直接传输 (Direct transfer) 方式。根据项目的各自特点,合理选择恰当的数据抽取流程,确定抽取过程中的监督核 查机制,对于 DW 项目的成功可以起到事半功倍的作用。在第一种模式中,数据被从源数据库 抽取到文本文件中,通过网络传输被传送到目标服务器,然后再装载到目标数据库中。对于后一 种模式,顾名思义,数据抽取过程是直接从源到目标的,没有通过中间路径或者手段。在数据仓 库工程的开发中,这两种体系架构被普遍采用,不能绝对地评价哪一种模式好,哪一种模式坏。 运用之妙,存乎一心,完全根据系统架构师或高级开发人员根据项目特点(如数据库分布,网络 连接……) 灵活实施,随机应变。

本文目的是比较两种体系架构各自的不同点和优缺点,并基于本文的假设条件,分析两种体系架 构各自的特点和适用范围。本文共分为以下几个部分:

 系统结构图比较

 假设条件

 特点比较

 各自适用的环境

系统结构图比较

假设条件

依循数据仓库的工作方式,原始资料由源数据库被抽取出来后,将在中间过程被写入

到”Operational Data Store”(ODS),ODS 是被设计用来存储中间数据和核查校验数据的。通 过 ODS,数据将被萃取、预先被计算及整理,而后被导入数据仓库作进一步的报表生成与分析。 所以通常意义的 ETL 过程涵盖了两个方面的内容:1. 从源数据库到中间步骤的 ODS; 2. 从 ODS 到最终的数据仓库。本文所讨论的数据装载过程包括如下的假设条件:

 数据的抽取过程可以是数据的完全(refresh)抽取或者是增量(incremental)抽取。完全 抽取是指数据从其源系统中完整的抽取;然后,由转换及加载步骤决定需要哪些数据。 增量抽取仅抽取那些自上次抽取以来发生变化、插入或删除的数据。这样往往就会为转 换和加载步骤单独提供所需的数据。

目标数据库存放数据的时间区间比源数据库长。例如源数据库存放的是 3 个月的交易生 产数据,ODS 存放了 1 年左右的数据,而数据仓库存放了 3-5 年的历史数据。

 源数据的记录中应该有特定的时间戳字段来表明数据是何时更新的。这样在 ETL 抽取过 程中就可以根据装载的需要凭借使用时间参数来选择所需要的数据。与之相对应,目标 数据库也应该保留说明数据是何时插入或者更新的字段。一来是为了维护的需要,同时 今天的目标可能是明天的源,保留这些字段可以具有很大的灵活性。例如企业如果有基 于数据仓库基础上的数据集市系统的应用,需要抽取数据仓库的数据作为数据集市的输 入,这些字段就可以作为用来比较的参数值使用。

 许多数据库系统保留了历史记录变动的详细情况。例如对于同一客户记录来说,由于其 居住城市或者地址的变动,记录的内容也会发生相应变动,就会产生许多历史记录,有 些应用需要系统保留这些历史记录以便于回溯(Keep Track)。本文假定目标数据库 只需要抽取最近更新的一条数据,对于历史的陈旧数据,可以置之不理。

两种体系结构的特点比较

各自适用的环境

最后,通过表 2 我们可以清楚地了解两种不同的数据 ETL 模式所各自适用的环境。 这可以帮助 开发者面对具体的开发背景确定更加合适的模式。

Table 2 compares the strong point and weak point of the two architectures.

表 2. 列出了两种不同体系结构的各自优缺点

同步、异步ETL架构的比较相关推荐

  1. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

  2. 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...

    网上有很多讲同步/异步/阻塞/非阻塞/BIO/NIO/AIO的文章,但是都没有达到我的心里预期,于是自己写一篇出来. 常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数 ...

  3. 同步/异步,阻塞/非阻塞概念深度解析

    ‍‍ 原文:https://blog.csdn.net/lengxiao1993/article/78154467 更新:极客重生 网络IO作为网络编程核心基础知识,是所以程序员都需要理解掌握的,最近 ...

  4. JavaScript学习笔记(五)---cookie、Proxy、服务器、PHP语言、http协议、同步异步、事件轮循机制、ajax编写、接口

    JavaScript学习笔记(五)---cookie.Proxy.服务器.PHP语言.http协议.同步异步.事件轮循机制.ajax编写.接口 1.cookie 1.1cookie概念 1.2cook ...

  5. 2021年大数据Spark(五十):Structured Streaming 案例一实时数据ETL架构

    目录 案例一 实时数据ETL架构 准备主题 ​​​​​​​模拟基站日志数据 ​​​​​​​实时增量ETL 案例一 实时数据ETL架构 在实际实时流式项目中,无论使用Storm.SparkStreami ...

  6. 简单理解浏览器的event loop 和 JavaScript的同步异步

    为什么JavaScript是单线程的? JavaScript的主要用途是和用户进行交互以及对DOM的操作,为了避免复杂的同步问题(如果多线程,A线程对某DOM添加内容,B线程对它又进行了删除操作,这往 ...

  7. 异步通知是什么意思_一次相亲经历,我彻底搞懂了阻塞非阻塞、同步异步

    看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西.不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友.这不,刚刚门口,我的大姨 ...

  8. 老张喝茶 教你同步异步 阻塞与非阻塞(转)

    原文 老张爱喝茶,废话不说,煮开水. 出场人物:老张,水壶两把(普通水壶,简称水壶:会响的水壶,简称响水壶). 1 老张把水壶放到火上,立等水开.(同步阻塞) 老张觉得自己有点傻 2 老张把水壶放到火 ...

  9. Node.js前置知识点(二):同步/异步

    前言 本文是node.js前置知识系列文章的第二篇,主要介绍 同步/异步:阻塞/非阻塞 的相关概念 (参考来源 见文末的 Reference) 一 什么是 同步/异步 同样从 What的角度开始介绍, ...

最新文章

  1. 他89岁,拿下人生第3个博士学位,横跨医学物理学,只为“实现儿时梦想”
  2. c语言中的字节序和字节对齐,C语言字节序对齐以及空间利用率
  3. 图书销售管理系统概要分析报告总体分工
  4. MySQL 高级 loop循环
  5. insert into 多条数据_「数据库」一千行MySQL命令
  6. LeetCode 869. 重新排序得到 2 的幂(排序 全排列)
  7. 《是碰巧还是执着?python所阅读的每一场知识点,唯一的共同点就是——参赛选手中,有python之socket编程!》
  8. 1.6.PHP7.1 狐教程-【版本库客户端 git SourceTree安装配置使用】
  9. Linux下搭建CACTI的时候总结的一些小知识
  10. Python 安装skimage即Scikit-Image
  11. 课后答案︻︼─一大收集
  12. 匿名邮件实现的方式及原理
  13. python通过win32com库播放mp3文件的代码
  14. Processing 自动贪吃蛇脚本
  15. linux deploy安装kali和磁盘扩容
  16. 面向对像(8day) 正则表达式,日志格式,json模块
  17. 浅析漫谈EOS之存储
  18. 华为手机备份工具备份方法与新版本不再支持备份到手机内部存储解决办法
  19. Elasticsearch升级1.5版本暴露jdk的bug
  20. 麻省理工学院的计算机终端,“面纱(Veil)”系统:打造真正的无痕浏览

热门文章

  1. Hadoop之——伪分布安装
  2. 如何使公式和编号上下对齐?
  3. gnuplot小功能
  4. 升级 MacOS 到最新版本 macOS Ventura 13.0 后,Parallels Desktop 不可用
  5. C++三角定位法求两圆交点坐标
  6. 我的【藏羚头条】开发运营经验
  7. JAVA 九大排序算法
  8. 12个scp命令传输文件的例子
  9. 本地测试机构怎么查?第三方测试公司排名情况
  10. Python性能优化