如今,每个人都在谈论现代数据堆栈(MDS)。我是一个数据系统人员。我在大数据时代就开始构建核心数据库系统,见证了云计算在过去十年中的诞生和繁荣。但是当我第一次遇到“现代数据堆栈”这个词时,我感到困惑 - 它只是云服务供应商为吸引人们眼球而创造的另一个流行语吗?网上的文章很多,但大多数都相当市场化和销售。在运行了一家在现代数据堆栈领域构建核心系统的初创公司一段时间后,我想分享我的想法。在本文中,我将用简单的术语向您解释“现代数据堆栈”,并讨论为什么现代数据堆栈在公司中真的很重要。
什么是现代数据堆栈?
对现代数据堆栈最一般(也许也是最不清楚)的解释是,它是围绕数据仓库构建的一组工具,用于简化数据集成。现代数据堆栈的基本起点是节省数据工程师和数据分析师的时间。在这里,数据集成本质上是将来自不同数据源的数据放在一起,然后进行分析和操作。例如,在电子商务网站中,必须有用户访问数据、用户订单数据、商品信息数据等数据源。通过以某些方式将这些数据放在一起,我们可以获得一些知识,例如哪些类型的用户对哪些产品感兴趣,哪种类型的产品最适合销售,等等。一般来说,现代数据堆栈就是帮助人们将数据转化为知识。
来自 Fivetran 的现代数据堆栈的插图
上图来自 Fivetran 首席执行官 George Fraser 在 Tableau 大会 2019 上的分享。在分享中,George 解释了现代数据堆栈的样子。数据仓库从各种数据源获取输入,在仓库内部转换,并提供建模良好的数据来支持商业智能,
看完上面对现代数据栈的定义,你可能会问:为什么这个架构是“现代”的?这听起来像是营销噱头的流行语吗?的确,“现代数据堆栈”一词听起来如此以营销为导向,以至于人们甚至可能不喜欢它。在我们深入研究现代数据堆栈之前,让我们先探索一下谁首先发明了这个术语。
谁发明了“现代数据堆栈”一词?
坦率地说,由于现有的模棱两可之处,很难找到关于其根源的非常明确的答案。但是,可以肯定的是,该术语是由Fivetran,dbt及其背后的风险投资推广的。
通过在网上搜索,我们可以发现这个词第一次流行是在 2020 年之后。最著名的演讲/文章来自2020年下半年,由dbt首席执行官特里斯坦·汉迪(Tristan Handy)撰写。在他的文章《现代数据栈:过去、现在和未来》中,现代数据栈的发展分为三个时代:寒武纪大爆发I(2012-2016)、部署(2016-2020)和寒武纪大爆发II(2020-2025)。我建议读者阅读原文,了解这三个时代的确切定义。同年,知名风险投资公司a16z发布了另一份题为“现代数据基础设施的新兴架构:2020”的报告。本文从VC的角度解释了2020年美国各科技公司使用的数据基础设施。
“现代数据堆栈”在谷歌趋势上的搜索流行度
事实上,经过更深入的搜索,你会发现 Fivetran 的首席执行官乔治·弗雷泽在 2019 年的一次演讲中提到了这个概念。特里斯坦在推特上还表示,他在2016年提出了类似的想法,即“现代BI堆栈”。
dbt首席执行官Tristan Handy在Twitter上的回复
为什么我们需要现代数据堆栈?
了解了现代数据堆栈的历史,我们可以回到上一个问题:为什么这种架构是“现代”的?为什么我们需要一个“现代”数据堆栈?以前的数据堆栈不完美吗?为了回答这些问题,我认为我们应该关注“数据”,而不是“现代”。数据是现代数据堆栈的核心,而不是技术。这个术语的本质是它改变了公司使用技术的方式:公司不再为某个技术产品构建堆栈,而是为自己的数据构建堆栈。
让我们回顾一下 20 年前公司如何管理其数据。二十年前,企业数据基本上存储在甲骨文、IBM和微软销售的数据库系统中。这些用例中的一些典型特征如下。
首先,甲骨文、IBM和微软等科技巨头销售的数据库系统价格昂贵,并非所有公司都能负担得起这些数据库系统。
其次,数据库供应商提供咨询和支持服务,而不是运维服务。通常,企业需要聘请专门的DBA团队来操作和维护这些数据库,并在这些数据库之上构建应用程序。
第三,数据规模和应用程序数量都不大。
由于这些原因,当企业试图管理自己的数据时,他们并没有真正为数据构建框架。相反,他们正在为数据库构建一个框架。
现在时间不同了。在过去的20年里,企业的数据规模和应用数量呈指数级增长。一些数据库产品从现代企业的需求中应运而生。云计算的发展和普及,进一步刺激了更多企业使用数据库。另一方面,市场的爆炸式增长也导致了数据库领域的可持续发展。与20年前相比:
数据库的价格和使用栏已大大降低。
数据库供应商不仅销售软件,还销售服务。
数据库不再争夺性能,而是争夺易用性。
在面对海量数据和应用时,如果数据软件的价格足够低,性能足够好,企业就可以把时间从处理数据库的繁琐工作中省下来,专注于如何让数据管理更容易。这正是现代数据堆栈背后的初衷:使数据管理更容易。
如何使数据管理更轻松?
如上所述,现代数据堆栈的倡导者包括dbt,Fivetran,a16z,其他数据软件公司和许多风险投资。他们都想改变的是公司准备数据进行分析的方式:从传统的ETL(提取,转换,加载)到ELT(提取,加载,转换)。下面是 George Fraser在 Tableau 大会 2019 上的分享,解释了 ETL 和 ELT 之间的区别。这里 ETL 意味着要将数据源引入数据仓库,必须经过三个步骤:数据提取、转换和加载。相反,ELT 的意思是,在将数据加载到云数据仓库之前,只需要数据提取和数据加载。数据转换直接在数据仓库内执行。
ETL 和 ELT 之间的区别
将传统的 ETL 转换为新型的 ELT,可以将复杂的数据计算从数据仓库外部移动到内部。此移动可以简化整个数据的管理。这听起来仍然有点令人困惑:ELT如何简化我们的数据管理?您能否通过一个简单的步骤将公司的“旧技术堆栈”转变为“现代数据堆栈”?
想象一下,如果没有 ELT,我们的数据管理会是什么样子。公司的一些员工想要分析原始数据,他们使用 ETL 工具构建管道,将数据清理处理到数据仓库中的表 X 中,然后在数据仓库中分析表 X。在分析过程中,他们发现他们没有提取一列数据,或者数据处理方法错误,或者数据的单位错误。这时,她/他该怎么办?唯一的方法是从数据源重新获取数据,重新生成 ETL 管道,然后重新分析数据。但是,数据源中的数据通常是临时的。通常,企业仅将数据源保存 30 天或 <> 天。也就是说,当她/他想要重新提取数据、构建管道并执行分析时,原始数据可能已经丢失。
ELT以蛮力方式解决了这个问题:将所有原始数据存储在数据仓库中。当原始数据存储在数据仓库中时,不存在所谓的数据丢失问题,可以找到所有历史记录。当我们想要处理数据时,我们不构建任何用于处理的管道,而是直接编写 SQL,并使用数据仓库本身的算力进行处理。
这听起来很简单,似乎不像是 2020 年代才出现的东西。为什么 20 年前没有使用 ELT?为什么ELT是最近几年才推广的?我认为这有几个原因。
首先,20年前的数据量比较小,数据格式比现在比较简单,处理要求不高。即使每个人开发应用程序都很麻烦,但都可以由堆栈工程师解决。
其次,20年前的数据库系统太贵了,无法购买或不想花很多钱来存储大量数据。
第三,当时数据库系统的性能还比较弱。如今,工程师的成本很高,应用复杂多样,不再可能简单地依靠工程师来解决问题;云计算的出现大大降低了数据仓库的成本,使得廉价存储海量历史数据成为可能;性能有了很大的提升,在数据仓库中处理大量数据不再困难。
如果我们仔细思考,就会发现ELT的本质其实就是把数据仓库变成数据管理的中心,尽可能地利用数据仓库的能力来处理数据问题。现在回到本文的主题,这种以数据仓库为中心的构建堆栈的方式是现代数据堆栈所倡导的方式:数据仓库功能的广泛使用。ELT 只是现代数据堆栈的一部分。事实上,现代数据栈还包括其他方面,包括数据可视化、元数据信息管理、数据发现、数据共享等。我们不会在本文中介绍这些主题。
现代数据堆栈与云计算有什么关系?
现代数据堆栈和云计算密切相关,但不一定是因果关系。事实上,云计算确实催化了现代数据栈的发展。现代数据栈的本质是简化数据管理,而云计算则是降低数据管理成本;因此,起点是不同的。然而,如果没有低成本的解决方案,就没有办法使数据管理更容易。
现代数据堆栈上是否会有一个放之四海而皆准的系统?
这里的一刀切系统是指一个可以做任何事情的系统:它可以支持操作处理、分析处理、流处理、数据可视化、数据共享、数据治理等。所有任务都由一个系统完成。我认为这是一个理想的愿景,但实际上,我们还没有达到一种尺寸可以适合所有人的阶段。这里的关键问题不是它在技术上是否可行,而是产品是否可以被广泛接受。
我认为这个问题可以从产品竞争和用户需求的角度来探讨。
从产品竞争来看,现代数据软件的竞争不仅仅是“硬”层面的竞争,比如性能和价格。供应商已将竞争扩展到“软”级别的更多点,例如安全性和可用性。一刀切的系统通常很难与专门从事某项任务的产品竞争。一个很好的例子是缩放。尽管包括Slack,Microsoft Teams等在内的许多办公软件都可以进行视频会议,但Zoom凭借其专业性和易用性已成为该领域的当之无愧的赢家。
在用户需求方面,用户很少需要使用一刀切系统中的所有功能。中小型企业往往只使用两三个功能,自然而然地,他们可能更喜欢在这两个或三个功能中做得最好的系统。在大公司中,用户确实使用各种功能,但是当试图说服这些用户替换现有系统时,他们通常会被高昂的迁移成本所吓倒。
当然,各种观点都证明了一刀切制度的存在是合理的。最常见的论点是,企业级用户通常只想解决问题,而不想花时间选择解决方案。一刀切系统的存在可以大大节省他们选择产品的时间。此外,这样的系统可以提供更适合企业用户的统一用户体验。
我认为这个问题没有标准答案,我相信未来的趋势(至少在未来 3-5 年)是共存。尽管如此,一刀切的制度仍将是少数。无论是瑞士军刀、水果刀,还是美工刀,它们都有自己的生存空间,让瑞士军刀不会占领其他种类刀具的市场。
总结
现代数据堆栈服务于用户的数据,它正在彻底改变用户与少数科技巨头绑定的情况。现代数据堆栈的目标是大大简化用户管理数据的难度,让用户更关心数据本身,而不是软件。当然,现代数据堆栈仍在快速发展。在下一篇文章中,我将解释现代数据堆栈的当前格局,以及在不久的将来会发生什么。