一、模式转变
每隔一段时间,新的解决问题的方式就会出现并改变一切。有时是采取新技术,新的基础架构或者新服务的形式,有时候则是由于市场本身的迫切需求,前者需要工程团队来推动变革,而后者很可能直接从业务中“寻求帮助”,这正是驱动行业发展最强大的力量。
随着数据(管理,处理,治理等)生态系统在过去十年中得到迅速的发展,在早期采用者证明数据可以产生价值之后,越来越多的公司开始投资并转型为数据驱动型公司。这一浪潮推动了我们今天非常了解和使用的所有大数据和云计算技术的开发。
这种“数据淘金热”的重点是打破数据孤岛并将数据集中到平台,湖泊中,越来越快地向分布式架构,混合云推进,甚至从IaaS过渡到PaaS到SaaS。但是它缺乏对数据所有权,数据质量保证,可伸缩治理,可用性,信任,数据发现性等方面的关注,而这些方面是允许客户自己查找,理解和安全使用数据,以提供业务价值的关键因素。
Data Mesh便是这种范式的转变,它起源于现实世界中的数据湖或平台领域。由于它利用了现有技术并且不受特定底层技术的束缚,因此它所承诺的结果具有革命性,至少我们认为是革命性的。
它是一种利用领域驱动(domain-driven)设计的组织和体系结构模式,即设计面向业务而不是面向技术的数据域的能力。我们可以看到这种模式上的数据转换类似于单体Web服务过渡到领域驱动设计的微服务。
二、当Data Lake变成Data Mess
为了更好地理解Data Mesh及其架构原理的主要优势,我们需要退后一步,看看在这种新范式之前,数据管理的最新技术(在大多数情况下仍然是最新技术)。
在过去的几年中,数据管理的主要趋势是创建一个单一的集中式Data Lake(通常在内部构建)以实现集中式数据治理和集中式处理平台。虽然这需要巨大的技术投入,但事实证明是成功的。不过从组织和技术角度来看,这种集中式的Data Lake会因为一些原因而适得其反。
创建Data Lakes时,第一个口号是打破孤岛,这意味着要尽快建立数据管道,以将数据从外部系统导入Data Lake。数据湖的内部数据工程师团队通常负责设计这些流程。集成工作是从系统角度进行的,即让我们了解如何从外部系统中获取数据并将其引入数据湖。这是通过种类繁多的专用或通用ETL(提取,转换,加载)作业或CDC(更改数据捕获)工具做好的。集成后,数据所有权将自动落入数据工程团队的手中,他们通常在数据文档,数据质量等方面与源系统达成一致的过程中并不需要付出太多的努力。
当源系统发生某些变化时,这种基于集成的方法会导致更糟的情况:模式更改,源域规范不断演变,GDPR引入,随便命名……这是一个无法扩展的模型,尤其是对于跨国公司集中来自不同数据的数据而言分支机构/国家/地区和相关法律/法规,因为源系统不了解数据仓库的过程,他们不了解数据消费者的需求,他们也不专注于为其数据提供数据质量,因为这不是其业务目的。
Data Lake的另一个经典问题是分层结构,其中分层通常是技术性的(清理,标准化,协调)。您可以将这些层视为数据和业务需求之间的固定开销,这些开销正在持续减慢价值创造的过程。
三、Data Mesh概述
数据网格由4条原则定义(根据Zhamak Dehghani的定义):
- 面向领域的分散数据所有权和架构
- 数据作为产品
- 自助数据基础架构为平台
- 联合计算治理。
要了解与过去相比正在发生的变化,先了解变更的专有词汇的含义。在Data Mesh中,我们谈论的更多的是服务,而不是摄取,因为发现和使用数据比提取和加载数据更为重要。
数据的每次移动或复制都有其固有的成本:
- 开发:必须开发,测试和部署ETL
- 维护:这是最糟糕的一种。您需要监视此类过程,在更改源时对其进行调整,并注意数据删除和数据所有权分散。
通常由于以下原因需要移动或复制数据:
- 技术层
- 技术上的需求:您将数据存储在阿里云上,但是客户要求将数据存储在内部表中进行处理。或者,您在阿里云上有一个庞大的数据集,而您的ML培训工具则需要腾讯云上的数据。
- 没有时间旅行和历史记录功能:需要对数据源进行快照
请记住,数据移动/复制不是数据非规范化。当您有多个具有不同需求的使用者时,非规范化是很正常的事情,但这并不意味着所有权转移。
当您将数据从一个系统/团队转移到另一个/团队时,您将转移所有权,并且您正在从业务角度创建没有附加值的依赖项。仅当数据具有新的功能/业务含义时,Data Mesh才会转移数据所有权。
当新技术出现时,Data Mesh范式也有助于公司“面向未来”。每个源系统都可以采用它们,并为脚手架模板创建新的连接器(我们将在下一篇文章中对此进行更深入的介绍),从而在通过网格服务提供对公司其他部门的数据访问方面保持一致性。
数据网格的采用要求在基础设施供应方面实现非常高的自动化水平,以实现“所谓的”自助服务基础设施。每个数据产品团队都应该能够自主调配所需的内容。即使团队要在技术选择和供应方面保持自主,他们也无法通过使用环境所提供的全部技术来开发产品。使数据网格平台成功的关键是联合计算治理,它可以通过全局标准化实现互操作性。“联合计算治理”是数据产品所有者的联合,其任务是创建规则并自动执行(或至少简化)对此类法规的遵循。“联合计算治理”所达成的共识应尽可能遵循DevOps和基础设施即代码实践。
每个数据产品通过定义其输入和输出端口,通过目录展示其功能。尽管如此,Data Mesh平台仍应提供脚手架来实现此类输入和输出端口,并尽可能选择与技术无关的标准;这包括为分析以及基于事件的数据访问设置标准。请记住,它应该放宽并推动内部商定的标准,但切勿将产品团队锁定在技术框架中。联邦计算治理也应该对变更非常开放,以使平台随用户(产品团队)一起发展。
数据产品标准化是允许数据使用者和数据生产者之间轻松集成的基础。当您在亚马逊上购买商品时,您无需与卖家互动即可知道如何购买产品或知道产品具有哪些特征。产品标准化和集中治理是市场为提高消费者体验所做的工作。
文丨Soundhearer
图丨来源于网络