2021年1月7日,第18卷,第6期在海洋中最大的鲸鱼的嘴中发现了Baleen。与构造中的指甲类似,baleen用作巨型过滤器,可使这些鲸鱼sc起大量海水,同时保持营养丰富的磷虾和其他海洋生物作为食物。磷虾是类似于虾的小型甲壳类动物。我认为它们是" shrimpy"虾,但是它们提供了地球上最大的动物消耗的大部分食物。
像这些鲸鱼一样,数据分析越来越多地徘徊在它可以找到的所有内容上,而与形状,形式或模式无关。通过摄取任何东西,不管其来源或卫生状况如何,我们正在寻找以前无法获得的模式和见解。通过将数据保留为JSON,XML,Avro或其他半结构形式,可以极大地适应这种情况。
本文探讨了此“后期绑定”的含义。用于数据分析以及服务和微服务之间的消息传递的架构。似乎许多不同来源之间的很好理解可以提供更大的灵活性和互连性。灵活性越来越主导着完美。
在90年代中期,我帮助构建了世界上第一个事务性N层应用程序平台的体系结构。这是一支出色的团队,是我职业生涯的亮点之一。应用程序开发人员创建了组件和它们的接口。随着工作跨客户端,服务器和具有明确定义的事务行为的多个数据库之间的工作流,组件可以动态激活和负载平衡地跨多个服务器部署。 RPC(远程过程调用)基于预先定义的接口中的方法调用。
关于早期绑定接口和后期绑定接口之间的折衷,我们进行了许多激烈而生动的辩论。提前绑定的接口是预先定义的。它们指定方法集,访问控制策略以及调用持久性服务所需的所有内容,这些服务必须具有完美的一切来处理远程方法调用。早期绑定的接口以某种形式的共享存储库保存,潜在的客户端可能会将它们吸收,以确保完全合规。在许多方面,这反映了如何使用组件来组成整体式单进程应用程序。我们中的许多人认为,早期绑定是接口的最终进化步骤,为交互提供了最紧密的语义。
相反,后期绑定的接口要松散得多。目标服务可以记录发送给服务的半结构化消息中所需的近似格式。该服务将获取此信息并找出可以解决的问题。通常,这很好。通常,逐渐增强目标服务,以更好地发挥作用,以充分利用从调用方收到的几乎难以理解的垃圾。 SOAP(简单对象访问协议)最早的体现和REST(表示状态转换)都是后期绑定接口机制的示例。
在许多方面,早期和晚期绑定界面之间的差异是愿景和目标之一。早期绑定提供清晰明了的目的。您对调用方和被调用方的语义紧密性更有信心。在相对较小的世界中,交互作用的组合相对较小,这很有意义。它可以帮助调试两个组件的交互。另一方面,当一组被调用和被调用的组件变大时,随着组件随着时间的发展,这种相同的语义紧密性会带来很大的挑战。当被叫方和主叫方位于不同部门甚至公司内时,施加于更改的摩擦可能会变得不堪重负。
早期的分布式系统正在从单服务器大型机和小型计算机发展而来。该愿景是对集中式计算机的扩展,以在一个组织的单个信任域下利用单个数据中心中的多台计算机的计算功能。多年来,这已演变为在不同信任环境中松散耦合服务的喧嚣,每种服务都以自己的步伐向前发展。当组件协同工作时,成功互操作的能力比清晰明了的语义更有价值。虽然我最初没有看到这种情况,但在后视镜中很明显。
SQL是主要的关系数据库语言。关系系统功能强大,功能强大,用于保存和处理大量基本数据,尤其是用于运营公司的数据。关系代数(SQL的理论主干)需要定义好其架构,以描述如何将数据构造为表,行和列。该模式是通过数据库中的DDL(数据定义语言)捕获的。
SQL模式是早期绑定的。它已声明,并且可以进行事务更新。如果使用事务在数据库中更改了DDL,则使用新的DDL定义更改后查询的行为。旧的DDL在更改之前生效。在任何时间点,DDL都有一个单一的结构,它定义了数据库的形状和形式以及如何查询它。
SQL在OLTP(在线事务处理)方面表现出色。这支持来自数千个并发用户的活动在线更新。许多系统在OLAP(在线分析处理)方面也很出色,其中针对大型数据集处理复杂且频繁的大型查询。系统在针对快速变化的OLTP数据处理OLAP查询方面变得越来越好,但这是一个艰巨的挑战。
应对这一挑战的一种方法是将数据移出OLTP系统,移至可以更轻松地处理而又不影响在线交易工作的地方。一种常见的技术是在交易系统日志流到数据库使用的存储时对其进行处理。以这种方式,可以保持稍微落后的分析系统。从执行更新的时间点开始,在DDL中捕获了稍旧数据的架构的形状和形式。为了正确理解此数据,您必须了解时间点模式。
将动态SQL解释为时间点SQL会导致同时捕获数据映像及其架构。随着时间的流逝,您将拥有许多数据集,每组数据都有其自己的架构,并且您希望一起分析这些数据。将此数据投影为从数据库数据派生的JSON中的半结构化对象并不少见。 1这特别方便,因为投影的半结构化对象的语义包含它们自己的模式,这些模式在修改数据时就有意义。他们是自我描述的。这就是我所说的描述性元数据。 2,4
通常,SQL数据库不是唯一的数据源。如今,有传感器,摄像机供稿,事件流,从谁知道哪里的上传,来自合作伙伴的数据更改,客户趋势分析,新闻供稿等等。随着公司推出更多的服务器来保存虚拟或物理数据的新数据激增。所有这些数据都具有描述其含义的某种形式的元数据。元数据可以在对象或事件上,也可以在数据集或事件流上。不过,如果没有元数据,您可能会启动一些软件来识别模式,然后附加元数据。
随着机器学习的发展,通过检查原始数据来找到模式变得越来越实用。半结构化数据对象通常具有层次结构,并且该层次结构中的每个节点都被标记。即使不同的对象具有不同的元数据并且来自不同的来源,我们也可以通过比较和对比这些不同的对象并标记相似的事物来找到越来越多的成功。在语义上,这可以被认为是在检测到模式时用新属性装饰单个对象。在学习过程中,这是一个反复的过程,其中模式是在将添加到新数据的属性与旧数据的属性相关联之后出现的。一段时间后,随着新数据的到来,机器学习变得足够熟练,可以做得很好。
ETL(提取,转换和加载)是一种古老的机制,用于从具有完善模式的系统中下载数据并将数据转换为目标模式。有时,这会丢失一些知识,因为架构映射不是很完美。 3,4数十年来,这一直是在独立系统之间共享数据的久经考验的机制。
ELT(提取,加载和转换)有所不同。在这种方案中,即使没有模式,目标系统也会吸收数据。通常,半结构化对象中有一些所需模式的子集,但并非总是如此。通过检查对象中的数据并查找模式,系统可以分配解释。
ELT及其延迟的元数据分配具有优点和缺点。像延迟绑定跨服务的过程调用一样,ELT更具适应性,可以接受差异和演进。此外,就像后期绑定一样,它可能无法完全匹配语义,而是会给与“足够好”的提示。答案。
当您考虑分解文档时,您会考虑确保将纸张分成无法理解的细小片段。在复杂的分析环境中,反之亦然。您可以找到具有与其他文档相同的元数据的数据属性。通过找到通用性或相当好的通用性,可以将许多文档中的这些属性的值组合在一起。将文档分成其组成属性,然后分别存储它们称为切碎。
有时,文档中的所有属性都被分解为这些分组。有时,某些属性与其他属性不太匹配,因此保留在原始文档中。根据文档的内容,切细的表示可能足够完整,可以根据需要重新构成原始文档。在这种情况下,您可以丢弃原始文件而不会丢失数据。
通过将这些相关属性并排放置,可以将它们视为一列,并创建超快速的,面向列的分析。发生这种情况时,系统将收集数据,通过推断的关系对其进行组织,并创建快速的分析能力。随着吸收更多数据,将对其进行重组以支持快速查询。附加信息将不断合并到旧的文件中。现在,可以对切碎的输入文档执行非常快速的分析。
数据湖是用于结构化,非结构化和半结构化数据的集中存储库。对于许多公司而言,公共云使数据湖成为可能。这些云需要大量技术来构建和运行。完全不同的数据集合可能很大,庞大或相对较小。如今,收集数据,命名和提供读取访问权限并不太复杂。复杂的,不受大小限制的是对其中包含的所有不同架构和数据的推理。
我们的进展超出了预期,一切都在一个数据库中。而是,我们看到了不同表示形式,来源和元数据的不合时宜的合唱。不再期望对合并数据的所有细节和细微差别有深入的了解。越来越多地变得“很好”。对许多不同来源的见解是有价值的。确实,这经常是至关重要的。
蓝鲸被认为是地球上曾经生活过的最大的动物。众所周知,一些巨大的蓝鲸一次吞噬多达220吨的磷虾海水,并通过口中的鲸蜡过滤。这样,他们只能保留最好的东西被吞咽和加工,并用产出物丰富海水。
在新兴的数据湖,数据池和数据海洋中,拥有使用有意义的(或部分有意义的)元数据来摄取,分析和标记数据的系统非常有价值。模式匹配和机器学习的最新进展现在正在产生令人惊讶的有用输出。就像蓝鲸。
1. Helland,P.2005。外部数据与内部数据的比较。创新数据系统研究会议(CIDR)会议录; http://cidrdb.org/cidr2005/papers/P12.pdf。
2. Helland,P.2011。如果您有太多数据,则表示“足够好”。足够好排队9(5); https://queue.acm.org/detail.cfm?id=1988603。
自1978年以来,Pat Helland一直在实施事务处理系统,数据库,应用程序平台,分布式系统,容错系统和消息传递系统。出于娱乐目的,他偶尔撰写技术论文。他在Salesforce工作。 Pat的博客位于pathelland.substack.com
最初发表于Queue vol。 18号6-请参阅ACM数字图书馆中的此项
相关信息:Pat Helland-外部数据与内部数据本文描述了服务和信任对数据处理的影响。它介绍了内部数据与外部数据不同的概念。在讨论了不跨服务边界共享事务的时间含义之后,本文考虑了外部数据不变性和稳定性的需求。这导致将外部数据描述为由不同服务独立生成的数据项的DAG。
Kate Matsudaira-管理数据科学的科学他们整天在做什么?当我第一次在一家从事数据挖掘和机器学习研究的初创公司担任工程副总裁时,这就是其他高管想要知道的。他们知道团队非常聪明,他们似乎在努力工作,但是高管们对工作本身有很多疑问。他们怎么知道他们正在做的工作是正确的"工作?他们还有其他项目可以代替吗?怎样才能使这项研究更快地掌握在客户手中?
Lucian Carata,Sherif Akoush,Nikilesh Balakrishnan,Thomas Bytheway,Ripduman Sohan,Margo Seltzer和Andy Hopper-来源入门评估数据质量或有效性通常不是孤立进行的。通常,您会检查数据出现的上下文,并尝试确定其原始来源或查看创建数据的过程。但是,在处理数字数据时,这并不是那么简单:计算结果可能来自许多来源,并且可能需要很长时间才能应用复杂的连续变换。
Zachary Hensley,Jibonananda Sanyal,Joshua New –传感器数据管理的起源在当今信息驱动的工作场所中,数据不断地移动和转换。通常的常规做法是使用电子邮件附件,共享的网络位置,数据库,以及最近使用的云。通常,数据的多个版本位于不同的位置,并且由于缺乏描述其出处或换句话说沿袭的元数据而使该数据的用户感到困惑。本文所述的Oak Ridge国家实验室(ORNL)的ProvDMS项目旨在解决传感器数据方面的此问题。