看看 Pat 的
关于分布式系统的零散思考
pathelland.substack.com
在计算领域中,将大量数据从一个系统移动到另一个系统是一个重要且日益增长的部分。这传统上被称为 ETL(提取、转换和加载)。虽然许多系统非常擅长这个过程,但提取的源和加载的目标通常对其数据有不同的表示形式。常见的做法是进行这种转换,挤压、截断或填充数据,使其适应目标。这真的就像使用鞋拔子来硬塞进一双太小的鞋子。有时这是一个必要的步骤。但通常情况下,这真的很麻烦!
ETL 的两个主要部分是提取和加载。这些过程是实际数据存储参与的地方。
提取 从源系统中拉取数据。这可能是保存在数据库中的关系数据。如果是这样,它可以转换为对象关系格式,其中每个对象转换多个关系行的连接成一个有凝聚力的事物。数据在被吸出时经常被组织成消息。从键值存储中提取数据也很常见,数据以半结构化表示形式保存在其中。
加载 发生在数据被放入目标系统时。目标将有自己的元数据来描述其内部数据的形状和形式。如果目标是分析系统,那么其数据很可能以关系形式加载。
虽然这可能违反直觉,但通常将关系数据作为对象从系统中取出是很有用的;将数据从一种对象表示形式转换、按摩和硬塞到另一种对象表示形式;并以关系形式将其加载到目标系统中。
然后,新的硬塞数据用于分析查询。
为了使这项工作有效,您需要元数据1——用于被提取的源和被加载的目标。
提取源的元数据是描述性的。数据存在。元数据描述其形状、形式和含义。总是这样,提取的数据被复制出来,元数据描述了其形状以及提取时的形状。
加载数据的元数据是规范性的。ETL 系统使其完全按照规定的形状和形式来适应输出元数据。只有当系统知道结果应该是什么样子时,它才能完成这项工作。
ETL 系统始终需要知道输入的当前形状,以及数据应该变成的形状。
通常,要加载到目标系统中的输出数据在形状上是关系型的。许多分析系统期望使用关系数据进行分析和报告。关系型非常适合计划内查询和即席查询的格式。
当传入数据及其描述性元数据与规范性数据指定的传出数据形状不匹配时,您需要做些什么。
当鞋子太大时,人们会在里面塞入填充物。同样,当传入数据没有传出形状和形式所需的所有信息时,您会添加一些东西。这可能是默认值或空值。
如果鞋子太小而脚太大,有时您会使用鞋拔子将脚硬塞进鞋子,舒适性被抛在脑后。这真是太痛苦了!同样,当传入数据的信息过多时,系统需要丢弃不适合传出元数据的数据。
丢弃或填充数据的过程非常普遍。
通常,输入的描述性元数据与期望输出的规范性元数据并不完全匹配!
有时,数据是从许多来源提取的,这些来源具有相同或不同的输入元数据来描述正在加载的内容。至关重要的是,必须修改来自不同来源的数据以适应目标元数据。
请注意,对于来自不同系统的不同输入数据,将数据规范化为关系形式可能很困难。所需的信息可能从某些输入源中丢失。
ETL 采用不同的来源和目标,并将数据从一个移动到另一个。通常,元数据只有部分有用的映射。有时需要丢弃数据才能遍历从源到目标的路径。其他时候,源数据可能需要用空值或默认值来扩充。映射也可能是复杂的,并且在数据被重塑和重构时,会丢失原始翻译中保留的大部分含义。
加载的源数据的元数据是描述性的——它描述了数据。加载到目标中的数据的元数据是规范性的——它规定了所需的目标形状和形式。挑战在于描述的输出可能与规定的输入不匹配。
事实证明,不匹配数据的商业价值极高。获取输入数据,丢弃不匹配的部分,为缺失的内容添加默认值或空值,并通常将其硬塞到规定的形状的过程非常重要。规定的形状通常是适合分析以获得更深层含义的形状。
正是这种硬塞使得数据具有一致理解所需的形状。
1. Helland, P. 2011. 如果您有太多数据,那么“足够好”就足够了。 acmqueue 9(5); https://queue.org.cn/detail.cfm?id=1988603。
不变性改变一切
我们需要它,我们负担得起它,现在正是时候。
Pat Helland
https://queue.org.cn/detail.cfm?id=2884038
飞行中的数据
流式 SQL 技术如何帮助解决 Web 2.0 数据危机
Julian Hyde
https://queue.org.cn/detail.cfm?id=1667562
其他人的数据
公司可以访问比以往任何时候都更多的外部数据类型。他们如何才能最有效地整合它?
Stephen Petschulat
https://queue.org.cn/detail.cfm?id=1655240
Pat Helland 自 1978 年以来一直从事事务系统、数据库、应用程序平台、分布式系统、容错系统和消息传递系统的实施工作。为了消遣,他偶尔会撰写技术论文。他目前在 Salesforce 工作。
版权所有 © 2019,所有者/作者持有。出版权已许可给 。
最初发表于 Queue vol. 17, no. 2—
在 数字图书馆 中评论本文
Qian Li, Peter Kraft - 事务和无服务器天生一对
数据库支持的应用程序是无服务器计算令人兴奋的新领域。通过紧密集成应用程序执行和数据管理,事务性无服务器平台实现了许多在现有无服务器平台或基于服务器的部署中不可能实现的新功能。
Pat Helland - 任何其他名称的身份
新兴的系统和协议都收紧和放松了我们对身份的概念,这很好!它们使完成工作更容易。REST、IoT、大数据和机器学习都围绕着故意保持灵活且有时含糊不清的身份概念。身份概念是我们分布式系统基本机制的基础,包括互换性、幂等性和不变性。
Raymond Blum, Betsy Beyer - 实现数字永恒
今天的信息时代正在为世界所依赖的数据创造新的用途和新的管理方式。世界正在从熟悉的物理制品转向更接近信息本质的新表示手段。我们需要流程来确保知识的完整性和可访问性,以保证历史将被知晓和真实。
Graham Cormode - 数据草图
您是否曾经感到被无休止的信息流淹没?似乎如潮的新电子邮件和短信需要持续关注,还有电话要接听,文章要阅读,还有敲门声要应答。将这些碎片拼凑在一起以跟踪重要的事情可能是一个真正的挑战。为了应对这一挑战,流数据处理模型越来越受欢迎。其目的不再是捕获、存储和索引每一分钟的事件,而是快速处理每个观察结果,以便创建当前状态的摘要。