ETL架构师面试题(八)
来源:互联网 发布:博德宝橱柜 知乎 编辑:程序博客网 时间:2024/06/05 16:54
实时ETL
一.简述在架构实时ETL时的可以选择的架构部件。
在建立数据仓库时,ETL通常都采用批处理的方式,一般来说是每天的夜间进行跑批。
随着数据仓库技术的逐步成熟,企业对数据仓库的时间延迟有了更高的要求,也就出现了目前常说的实时ETL(Real-Time ETL)。实时ETL是数据仓库领域里比较新的一部分内容。
在构建实时ETL架构的数据仓库时,有几种技术可供选择。
1.微批处理(microbatch ETL,MB-ETL)
微批处理的方式和我们通常的ETL处理方式很相似,但是处理的时间间隔要短,例如间隔一个小时处理一次。
2.企业应用集成(Enterprise Application Integration,EAI)
EAI也称为功能整合,通常由中间件来完成数据的交互。而通常的ETL称为数据整合。
对实时性要求非常高的系统,可以考虑使用EAI作为ETL的一个工具,可以提供快捷的数据交互。不过在数据量大时采用EAI工具效率比较差,而且实现起来相对复杂。
3.CTF(Capture, Transform and Flow)
CTF是一类比较新的数据整合工具。它采用的是直接的数据库对数据库的连接方式,可以提供秒级的数据。CTF的缺点是只能进行轻量级的数据整合。通常的处理方式是建立数据准备区,采用CTF工具在源数据库和数据准备区的数据库之间相连接。数据进入数据准备区后再经过其他处理后迁移入数据仓库。
4.EII(Enterprise Information Integration)
EII是另一类比较新的数据整合软件,可以给企业提供实时报表。EII的处理方式和CTF很相似,但是它不将数据迁移入数据准备区或者数据仓库,而是在抽取转换后直接加载到报表中。
在实际建立实时ETL架构的数据仓库时,可以在MB-ETL, EAI, CTF, EII及通常的ETL中作出选择或者进行组合。
二.简述几种不同的实时ETL实现方法以及它们的适用范围。
实时数据仓库在目前来说还不是很成熟,成功案例也比较少,下面列举了一些实时数据仓库架构的实现方法。
1.EII ONLY
使用EII技术来代替实时的数据仓库,数据延迟可以保证在1分钟左右,支持数据整合的复杂程度较低。无法保存历史数据。
2.EII + Static DW
使用EII技术联合非实时的数据仓库,数据延迟可以保证在1分钟左右,1天内的数据整合的复杂程度较低,1天前的数据整合的复杂程度可以较高。可以保存历史数据。
3.ETL + Static DW
普通的ETL处理,数据延迟在1天。支持复杂程度较高的数据整合。保存历史数据。
4.CTF + Real-Time Partition + Static DW
使用CTF技术建立实时数据仓库,数据延迟可保证在15分钟左右。数据整合的复杂程度较低。保存历史数据。
5.CTF + MB-ETL + Real-Time Partition + Static DW
使用CTF技术和MB-ETL联合处理数据迁移,数据延迟可保证在1小时左右,支持数据整合的复杂程度较高,保存历史数据。
6.MB-ETL + Real-Time Partition + Static DW
直接使用MB-ETL建立实时数据仓库,数据延迟可保证在1小时左右,支持数据整合的复杂程度较高,保存历史数据。
7.EAI + Real-Time Partition + Static DW
使用EAI技术建立实时数据仓库,数据延迟可保证在1分钟左右,支持数据整合的复杂程度较高。保存历史数据。
三.简述实时ETL的一些难点及其实现方法。
实时ETL的引入给数据仓库的建设带来了很多新的问题和挑战,下面列举了一些问题,其中有些问题有具体的解决办法,有些只能在实际情况下去斟酌。
1.连续的ETL处理对系统可靠性提出更高的要求。
2.离散快照数据的间隔时间变短。
3.缓慢变化维变成快速变化维。
4.如何确定数据仓库中数据的刷新频率。
5.目的是只出报表还是要实现数据整合。
6.做数据整合还是应用整合。
7.采用点对点的方式还是集中的方式。
8.前端展现工具的数据刷新方式如何确定。
- ETL架构师面试题(八)
- ETL架构师面试题(一)
- ETL架构师面试题(二)
- ETL架构师面试题(三)
- ETL架构师面试题(四)
- ETL架构师面试题(五)
- ETL架构师面试题(六)
- ETL架构师面试题(七)
- ETL架构师面试题
- ETL架构师面试题
- ETL架构师面试题
- ETL架构师面试题
- 转载ETL架构师面试题
- ETL架构师面试题(中文)
- 面试题(八)
- ETL面试题
- IBM ETL面试题
- ETL面试题
- TreeMap的put()方法抛ClassCastException异常
- hive 建表,建外部表,建分区表
- 必须Mark!43个优秀的Swift开源项目推荐
- 异步通知与同步互斥
- yate学习--yateclass.h--class YATE_API ObjList : public GenObject
- ETL架构师面试题(八)
- soapUI获取数据表数据并向下传递给request
- 解决Android加载图片时内存溢出的问题
- java同步工具类之CountDownLatch
- js中substring()和substr
- 简单实现基于TCP的Socket多线程通信
- SoapUI自动化--Groovy脚本常用操作
- C语言 sscanf 和 sprintf函数的说明和使用
- python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里