一篇由Jack Vanlightly撰写的博客文章,标题为“Dismantling ELT: The Case for Graphs, Not Silos”。这篇文章探讨了数据架构中的ELT(提取、加载、转换)流程,以及它如何受到Conway定律的影响,导致软件开发和数据分析团队之间的隔阂。
作者主张打破这种隔阂,通过改善合作、对齐团队激励,并采用数据合约和数据产品等工程实践来实现“数据分析的左移”。
最近我一直在强调康威定律的弊端以及低耦合数据架构的必要性。康威定律体现在软件开发和数据分析团队之间的脱节中。这是一个源于孤立的组织设计的结构性问题,它不仅导致效率低下和协作不佳,而且最终会阻碍业务敏捷性和有效性。
我通常主张通过改善协作、协调团队激励措施以及采用数据合同和数据产品等工程实践来打破软件开发和数据分析团队之间的孤岛。
简而言之,“左移”适用于数据分析。
考虑到所有这些,现在让我们看看 ELT(及其同类 ETL 和反向 ETL),其中字母代表“提取”、“加载”、“转换”。
ELT 思维模式
ELT 是孤岛之间的桥梁。没有孤岛的世界是一张图。
在一个孤岛世界里,软件在一个孤岛中,数据分析在另一个孤岛中,ELT 非常有意义。
康威定律就在得到体现:软件和数据团队之间脱节。
我查看了一些关于 Extract 的字典定义:
- 强行拉或拔
- 从某人不愿意的地方费很大力气去获得
- 如果您从某个地方提取某物,则将其取出或拉出。
提取阶段是由于软件团队不了解或不关心数据团队在做什么而导致的。如果没有协调,数据团队就会获得数据库凭证并简单地提取原始数据。一旦提取完成,工程原理就开始应用,但现在已经太晚了。
这就是康威定律的实际作用。
这些工具和实践都是建立在软件和数据团队不紧密合作的前提下。软件团队不会向数据团队提供“数据 API”,尽管他们向其他软件团队提供软件 API。
但即便如此,如果我们看看今天的世界,它比 ETL 最初的设计要复杂得多。它不仅仅是将数据从许多关系数据库移动到一个数据仓库。数据不仅仅存在于运营和分析领域;我们现在有了代表第三个数据领域的 SaaS。数据跨区域和云流动,从后端系统流向 SaaS,反之亦然。现在的应用程序数量可能比以前多 100 倍。组织正在变成软件,软件系统之间的关系网络越来越复杂。ETL、ELT 和反向 ETL 都是从孤岛思维角度看待这个问题,但现代数据架构需要以图形方式思考。
图Graph思维
现在,让我们想象一下数据团队与软件团队保持一致,并且每个人都致力于构建低耦合的软件和数据架构。
首先,如果没有这些孤岛,我认为我们将不再把世界看作两个由 ELT 作业连接的孤岛,数据从中提取然后登陆,而是把世界看作一个派生数据集的Graph,其中图中的每个节点都从它所连接的节点“消耗”数据。
通过创建数据产品,我们从提取转向消费。
我查了一下“消费”的一些定义:
- 作为顾客使用(消费商品和服务)
- 使用燃料、能源、时间或产品,
我们还使用该术语来描述 API 和队列/主题的使用。使用 API 的软件是 API 消费者。从队列读取数据的软件是队列消费者。请注意,API、队列和 Kafka 主题都是共享原语。它们抽象源数据,提供私有数据的公共版本。
一个人的消费者是另一个人的生产者,因为应用程序往往会消费数据,但也会生成其他人消费的新数据集。这自然会形成一个数据生产者和消费者的网络或Graph。此图中每个节点的数据本质上是一次写入,多次使用,因为已发布的数据集可由许多消费者重复使用。
当我们考虑到分析和应用程序之间的界限正在变得模糊时,数据分析作为孤岛的想法就进一步被削弱了。应用程序现在嵌入了分析(具有操作 SLA 的分析查询)。人工智能和机器学习主要是关于自动化决策并将这种决策推向更操作的层面。越来越多的人认为,分析作为孤岛似乎只是由康威定律和惯性造成的。
在这种消费数据产品的新思维下,随着数据孤岛的消失或削弱,我们可以接受图形思维或图形心态。
图Graph思维是指:
- 更多的消费。
- 提取较少。
- 对高质量数据集进行更多的数据建模。
- 减少原始数据的获取、减少数据清理、减少对重大变化的反应。
- 更多增量处理,使用增量或流数据源。
- 在进行进一步处理之前需要验证阶段的批处理较少(但绝不意味着批处理的终结)。
- 在操作用例中更多地利用分析。
- 较少的分析仅仅作为战略决策支持(BI)的工具。
- 更多的端到端数据质量。
- 出现数据质量问题后,修复损坏的管道会减少。
- ...最后,团队需要更多的协作与配合,减少各自为政或自我封闭的工作。
结论
一旦你认识到康威定律的存在,你就会发现它在数据分析领域以无数种方式体现出来。从团队文化到工具,再到实践和痛点。ELT 思维显然是软件和数据团队之间脱节的后果。
我们是否需要抛弃所有 ETL/ELT 工具?我不这么认为,但我们需要打破当前的想法!让我们停止谈论 ETL 和 ELT,开始谈论使用数据源并通过良好的数据建模和数据平台工具构建可靠的派生数据集。让我们停止提取数据,转而采用一种消费模式,让数据团队花时间进行数据建模,而不是救火。数据从业者只需忙着构建横跨整个组织的数据图的一部分即可。
现实情况是,我们仍处于向左移动的理想阶段。前路漫漫。仍有许多基于 FTP 的遗留基础设施和集成!大多数数据团队仍处于孤立状态!外面的世界很混乱。但最能接受这种Graph思维的组织将是那些能够最大限度地利用其数据、最大限度地利用人工智能、获得最高投资回报率并取得最佳业务成果的组织。
要点:
- 在数据孤岛的世界中,ELT流程是有意义的,因为它将数据从一个孤岛(软件)移动到另一个孤岛(数据分析)。然而,随着现代数据架构的发展,数据不再仅在操作和分析领域之间流动,还涉及到SaaS(软件即服务)等第三方数据领域。现代数据架构应该采用图(Graph)思维,而不是孤岛思维。
- 数据团队与软件团队对齐,共同构建低耦合的软件和数据架构。数据被视为一个由派生数据集组成的图,每个节点(数据集)都从其连接的节点“消费”数据。这种模式强调数据的重复使用和共享,而不是简单地提取和存储原始数据。