本文编译自:https://jameskle.com/writes/open-source-data-stack-2021
2021 年一个有趣的新变化就是:Building the modern stack with open-source data solutions
,换成比较容易理解的话,就是基于开源软件构建自己的数据处理流程。如果是在国内玩大数据的人,可能对此还有些不太理解(比如我),现在各家互联网公司基于 Hadoop 生态圈等一系列开源组件构建的大数据平台解决方案早就已经成熟,那modern data stack
价值在哪呢?通过对What I Learned From The Open Source Data Stack Conference 2021的阅读,我发现这是为了解决传统企业的数字化转型问题的,让这些企业也能使用上方便高效的处理工具洞察数据,而不用局限于某一家提供闭源的商业解决方案的公司。用文中的话来说,就是通过开源软件,企业可以自己掌控数据,保证用户数据隐私安全,而不用担心数据被第三方公司利用。
Open-source software helps you control the end-to-end flow of customer data throughout your organization to guarantee data auditability, allow data governance, support consumer data privacy, and enable productive engineer workflows.
现代数据栈
首先是modern data stack
导致的一些变化:
- 从行式存储到列式存储:十年前,数据仓库大部分都是基于行式存储的 OLTP 数据库(例如 MySQL 或 PostgreSQL)构建的。行式存储数据库最适合读取和写入小型记录集的应用程序,其中所有列都可以放入一个记录中。然而,现代数据仓库中的表又宽又深。为了解决这个问题,列式存储数据库将数据列分块存储,从而更容易地跨多个节点分发数据。
- 从自有机器到云数据仓库:使用自有机器就必须购买昂贵的设备并部署到数据中心(机房)中,并根据业务需要对其进行维护和扩展。云数据仓库(Snowflake、BigQuery、Redshift)已经改变了这套方案。它们使处理海量数据集变得成本可控、可访问且可扩展。
- 从ETL到ELT:廉价的云数据仓库的诞生,可以让ETL里的 T (转换)不用提前完成,而是可以先加载到数据仓库中,再进行转换。数据工程师负责E(抽取)和L(加载),而数据分析师可以根据自己的需求使用T(转换)。数据分析师开始像软件工程师一样工作,因为他们也可以使用软件工程中的最佳实践(版本控制、单元测试、单独的开发和生产环境等)
开源项目是如何完成这个变化的呢?
- 已经创建了开源项目来填补 ELT(现在是 ELT )范式的不同步骤的空白。有可供数据工程师拥有数据抽取和加载的工具,也有分析工程师可以使用的转换数据的工具。有些运营分析工具使数据团队能够将分析派生的数据导入运营系统,例如 CRM、营销工作流等。
- 企业可以在数据管道的每个节点选择最适合企业的开源工具。企业将获得更大的灵活性,而不是局限于单一的企业供应商。
- 开源可以让企业选择与自己开源产品相匹配的的集成解决方案,被单一供应商垄断的风险较小。
- 开源还为数据团队文化带来了良好的氛围
对于未来,
- 分析工程师获得更多的自主权和独立性。
- 去中心化的数据组织将变得更加普遍。
- 数据将被视为一等公民。后续数据平台会专注于基础设施/核心“数据”资产,而不是特定领域的数据建模。
Conclusively, open-source will continue to drive innovation on the modern data stack.
数据团队
数据团队的目的是帮助组织做出更好的决策。那么数据团队应该如何运作呢?数据团队构建数据产品并向数据栈添加工具。
- 数据产品包括人、系统和流程之间流动的每一条数据,团队产生的每一个分析,具有一定的分析能力的每一个工具,团队协作处理的每个电子表格。简而言之,如果人们使用它来做出决策,它就是数据产品的一部分。
- 数据产品不是某个工具或软件的某一部分。
数据产品也应该按照产品的定义去管理和构建:
- 他们有产品经理、用户体验研究人员、设计师、工程师、技术作家等——都专注于解决客户问题。优秀的产品团队对产品的发展方向有远见和战略——推动收入和良好的业务成果。
- 他们还应该有清晰的愿景和战略,对客户(同事)的深入了解,并具备各种技能。所有这些都用于迭代数据产品的功能集,并使公司能够做出最佳决策。
- 数据领导者指导数据产品的策略和功能集。
其余部分
本文的其余部分主要是在介绍现在数据栈里的工具了,比如有 Superset、dbt、Snowplow等等,感兴趣的读者可以继续读读。