闲聊 modern data stack

2021-12-24 19:50:03 浏览数 (2)

本文编译自: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等等,感兴趣的读者可以继续读读。

0 人点赞