写给大忙人看一文掌握运营环境与数据仓库之间的接口
Posted dbLenis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写给大忙人看一文掌握运营环境与数据仓库之间的接口相关的知识,希望对你有一定的参考价值。
「数仓宝贝库」,带你学数据!
导读:尽管大数据和系统接口很有趣,但这并不是数据架构师需要了解的唯一接口。企业系统环境中另一个值得关注的接口是运营环境与数据仓库之间的接口。
1
运营环境和数据仓库接口
下图是运营环境和数据仓库之间的接口示意图。运营环境是详细地做出企业日常决策的地方,数据仓库环境则是存储企业决策基础的地方。
图1 将应用数据转换为企业数据
2
经典ETL接口
在运营环境和数据仓库环境之间的接口被称为“ETL”层,ETL是提取/转换/存储(extract/transform/load)的缩写。在ETL接口中,应用数据被转换为企业数据。这其中的转换是企业最重要的数据转换之一。图2是经典的ETL接口。
图2 通过ETL将应用数据转换为企业数据
这个接口的转换工作是将应用数据转换为企业数据。运营数据是由每个应用来定义的。因此,会存在数据的定义不一致、公式不一致、数据结构也不一致等问题。但当数据经过ETL层后,这些不一致性就可以得到解决。
3
ODS和ETL接口
然而,运营环境和数据仓库环境之间的传统ETL接口存在很多不同的变种。其中的一个变种是将运营数据存储(Operational Data Store,ODS)纳入接口中,如图3所示。
图3 ODS
流向ODS的数据可以直接从运营环境中流入ODS,也可以通过ETL转换层流向ODS。无论数据是否通过,ETL层完全取决于ODS的类别。若为I类ODS,数据可以直接从运营环境中输入ODS,若是II类或III类ODS,数据则需要通过ETL接口。
并非每个公司都有或需要ODS。通常,只有那些在线事务处理程度较高的公司才有ODS。
4
暂缓区
在运营环境和数据仓库环境之间的经典ETL接口的另一个变体是存在暂存区的情况,如图4所示。
图4 暂存区
在一些非常特殊的情况下,是需要暂存区的。其中一种情况是来自两个或多个文件的数据需要合并时,存在时间问题。来自应用A的数据在上午九时已经准备好进行合并,但来自应用B的数据在下午五时才能准备好进行合并。在这种情况下,来自应用A的数据必须被“暂存”,直到合并准备就绪。
需要用到暂存区的第二种情况是数据量很大,必须将数据分散到不同的工作负载中,以适应ETL处理中的并行化。在这种情况下,需要一个暂存区来分离数据。
第三种情况是来自运营环境的数据必须经过预处理步骤。在预处理步骤中,数据需要经过编辑和修正。
暂存区的问题之一是能否针对在暂存区中发现的数据进行分析处理。通常情况下,暂存区中的数据是不能用来进行分析处理的。因为暂存区中的数据还没有进行过转换,故对暂存区中的数据进行任何的分析处理都是没有意义的。
值得注意的是,暂存区是可选的,大多数公司都不需要暂存区。
5
变动数据捕获
运营系统和数据仓库系统间经典接口的另一个变体被称为CDC方案,“CDC”代表“变动数据捕获”。对于高性能的在线事务环境,每次需要刷新数据仓库环境中的数据时,扫描整个数据库是非常困难的,或者说效率很低。在这些环境中,通过检查日志磁带来确定哪些数据需要更新到数据仓库是有意义的。创建日志磁带是为了当在线事务处理过程中发生故障时,可以进行在线备份和恢复。但日志磁带包含了所有需要更新到数据仓库的数据。日志磁带是离线读取的,用来收集需要被更新到数据仓库的数据。图5描述了CDC方案。
图5 事务处理系统的CDC方案
6
内嵌转化
传统运营系统到数据仓库接口的另一种选择是内嵌转换。在内嵌转换中,需要流向数据仓库的数据是作为在线事务处理的一部分来进行采集和处理的。
由于编码需要成为原始编码规范的一部分,而且高性能的在线事务处理过程需要消耗资源,因此内嵌转换并不常用。事实上,在线事务处理代码是在人们意识到在线事务处理的结果需要被反映在数据仓库环境中之前创建的。不过,偶尔也会需要使用内嵌转换。图6展示了内嵌转换的示意图。
图6 文本数据的内嵌语境方案
7
ELT处理
经典ETL接口的最后一个变体,我们可以直接称之为ELT接口。ELT接口是将数据直接从运营环境加载到数据仓库中。进入数据仓库后,就会对数据进行转换。
选择ELT方案的问题在于,有一种诱惑是干脆不执行“T”(转化)这一步。在这种情况下,数据仓库就会变成一个“垃圾堆”。而一旦数据仓库中装满了垃圾,作为决策的基
础,它就会变得毫无价值。
如果不忽略掉“T”这一步,那么采用ELT方法是没有问题的。但很少有企业能够坚持正确使用ELT方法的毅力。图7说明了将运营系统和数据仓库连接起来的ELT方法。
图7 ETL的一个变体是ELT
本文摘编自《数据架构:数据科学家的第一本书》,经出版方授权发布。
以上是关于写给大忙人看一文掌握运营环境与数据仓库之间的接口的主要内容,如果未能解决你的问题,请参考以下文章