acm-header
登录

ACM通信

实践

提取,鞋拔和装载


大脚趾穿小鞋子

信贷:拉斯克里斯坦森

回到顶部

在计算领域中,大量数据从一个系统转移到另一个系统,这是一个重要且日益增长的部分。这通常被称为ETL(提取、转换和加载)。虽然许多系统都非常擅长这个过程,但是提取源和加载目的地的数据通常具有不同的表示。这种转换通常会压缩、截断或填充数据,以使其适合目标。这就像用一个鞋拔来塞进一只太小的鞋子一样。有时这是必要的一步。这通常是一种真正的痛苦!

ETL的两个主要部分是提取和加载。这些过程是橡胶与参与的数据存储相遇的地方。

提取从源系统中提取数据。这可能是保存在数据库中的关系数据。如果是,则可以将其转换为对象关系格式,其中每个对象转换将多个关系行连接成一个内聚的东西。当数据被吸出时,它通常被组织为消息。从保存在半结构化表示中的键-值存储中提取数据也是很常见的。

负载在将数据放入目标系统时发生。目标将有自己的元数据描述其腹部数据的形状和形式。如果目标是一个分析系统,那么它的数据可能会加载到关系形式中。

尽管这可能违反直觉,但将关系数据作为对象从系统中取出通常是有用的;将数据从一种对象表示转换、调整和硬塞到另一种对象表示;并将其以关系形式加载到目标系统中。

然后,新的、硬塞进去的数据被用于分析查询。

要做到这一点,您需要元数据1对于被提取的源和被加载的目标。

提取的源的元数据为描述性的。数据存在。元数据描述其形状、形式和含义。通常情况下,提取的数据被复制出来,元数据描述它的形状是什么,以及它被提取时的形状是什么。

加载数据的元数据为说明性的。ETL系统使其完全符合输出元数据的形状和形式,正如它所规定的那样。只有当系统知道结果应该是什么样子时,它才能工作。

ETL系统总是需要知道输入的当前形状,以及数据应该变成的形状。

通常,要加载到目标系统中的输出数据在其形状上是关系型的。许多分析系统期望关系数据进行分析和报告。关系格式对于计划查询和特别查询都是很好的格式。

回到顶部

如果鞋子不合脚怎么办?

当传入数据及其描述性元数据与规定性数据指定的传出数据形状不匹配时,必须对此采取措施。

当鞋子太大时,人们会往里面塞填充物。类似地,当传入的数据没有输出形状和表单所需的所有信息时,就添加一些东西。这可能是默认值或空值。

如果鞋子太小,脚太大,有时你会用鞋拔把脚硬塞进鞋里,舒适感就见鬼了。这是一个真正的痛苦!类似地,当传入的数据包含太多信息时,系统需要丢弃不符合传出元数据的数据。

丢弃或填充数据的过程非常常见。

通常情况下,用于输入的描述性元数据与用于所需输出的规定性元数据并不完全匹配!

有时,从多个源提取数据时,使用相同或不同的输入元数据描述所加载的内容。必须修改来自不同来源的数据,以适应目标元数据。

注意,对于来自不同系统的不同输入数据,将数据规范化为关系形式可能比较困难。某些输入源可能缺少所需的信息。

回到顶部

结论

ETL采用不同的源和目的地,并将数据从一个源和目的地移动到另一个源和目的地。通常只有部分有用的元数据映射。有时数据必须被丢弃以遍历从源到目的地的路径。其他时候,源数据可能需要用空值或默认值进行扩充。也有可能映射是复杂的,在数据被重塑和重新形成时失去了原始翻译中保留的许多含义。

加载源数据的元数据为描述性的它描述了数据。加载到目标中的数据的元数据为说明性的它规定了所需的目标形状和形式。挑战在于输出描述可能不适合规定输入。

事实证明,不拟合数据的商业价值非常高。获取输入数据、丢弃不适合的数据、为遗漏的内容添加默认值或空值,以及将数据硬塞到规定的形状,这些过程都很重要。规定的形状通常是一个经得起分析的深层含义。

正是这种方式赋予了数据所需的形状,使其能够被一致地理解。

ACM队列的q戳相关文章
queue.acm.org

不变性改变了一切
帕特Helland
https://queue.acm.org/detail.cfm?id=2884038

数据在飞行中
朱利安·海德
https://queue.acm.org/detail.cfm?id=1667562

别人的数据
Stephen Petschulat
https://queue.acm.org/detail.cfm?id=1655240

回到顶部

参考文献

1.如果你有太多的数据,那么“足够好”就足够好了。acmqueue 95 (2001);https://queue.acm.org/detail.cfm?id=1988603

回到顶部

作者

帕特Helland自1978年以来一直在实现事务系统、数据库、应用程序平台、分布式系统、容错系统和消息传递系统。他目前在Salesforce工作。


版权归所有者/作者所有。授权ACM出版权利。
请求发布的权限permissions@acm.org

数字图书馆是由计算机协会出版的。版权所有©2019 ACM, Inc.

Baidu
map