译者|朱宪忠审稿人|孙淑娟目前,数据领域的挑战不再是处理海量数据的能力。现代流媒体平台的高性能和新一代数据存储允许计算层和存储层分离,使我们能够以极低的操作工作量增加系统的可扩展性。如果我们还记得著名的大数据“五个V”(容量、价值、多样性、速度和准确性,即“Volume、Value、Variety、Velocity、Veracity”),那么今天我们应该更清楚,准确性和准确性对当今大多数公司而言,价值仍然是一个挑战。数据管道是解决这一挑战的基础。大规模地设计和构建数据管道不仅可以提高系统的开发速度,还可以让整个团队参与维护和理解。数据量处理能力几年前,大数据领域面临的技术挑战主要表现在以下几个方面:数据存储仓库(量和速度):接收和管理大量数据。数据处理计算层(速度方面):需要一个高性能的计算层来启动数以千计的数据管道,以极快的速度接收大量数据。集成适配器(按类型):开发适配器是为了与不同类型的数据库组件集成。在开始开发第一个数据管道之前,IT团队通常会花费数年时间构建支持这些功能的数据平台。之后,所有的努力都集中在短时间内接收大量数据上。但所有这一切都是在没有关注真正的商业价值的情况下发生的。此外,操作这些数据平台通常需要付出巨大的努力。现在,随着云技术解决方案的应用——开源社区的出现、最新一代的云软件和新的数据架构模式等,实现这些功能不再是挑战。数据存储仓库目前,有几种方法可以提供高性能的数据存储库,以便以较低的操作工作量实时管理大量数据。n数据仓库:新一代数据仓库将存储层与计算层分离,并提供基于不同技术的新的可扩展功能,如NoSQL、数据湖或具有AI功能的关系型数据仓库。RelationalDatabase:最新的关系数据库,使用分片和内存能力,提供OLTP和OLAP能力。流媒体平台:ApacheKafka或ApachePulsar等平台,可提供每秒处理数百万事件的能力,支持构建实时流水线。在这种情况下,成功的关键是选择最适合企业应用场景的解决方案的问题。计算层目前的计算层可以提供以下功能来支持大量并发流水线的执行:Serverless:云平台提供简单的按需扩展。新数据存储库的计算层:与存储分离,允许在数据库上执行大多数操作,而不会像旧的本地系统那样影响其他负载或扩展限制。Kubernetes:我们可以使用KubernetesAPI将作业容器动态创建为KubernetesPods。IntegrationAdapters开源社区与新的云软件供应商一起提供了多种数据适配器来快速提取和加载数据。这简化了不同软件组件之间的集成,例如数据存储库、ERP和许多其他组件。当前的数据挑战大数据公司目前面临的主要挑战是如何以更全面、更可靠的方式提供数据。数据处理是复杂性的主要因素之一。作为数据或业务分析师,除了在正确的时间获得信息外,我们还需要了解被分析数据的元数据,以便做出决策。这些数据意味着什么?它提供什么价值?(数值)数据是如何计算的?(数字)数据的来源是什么?(数字)数据的最新程度如何?(在准确性方面)数据的质量如何?(在准确性方面)在一个大企业中,有很多数据,但也有很多部门有时会使用相似但不同的数据。例如,一家零售公司有两种库存:名义库存:这种库存是理论库存,基于采购订单和交货单。真实库存:此库存代表他们在仓库和商店中拥有的物品。通常,由于各种原因(包括交货延迟或其他人为错误),这两个数字不匹配。但是,库存数据是计算销售、销售预测或库存补充等指标的主要基础。根据理论库存购买新商品的决定可能会使公司损失数千美元,并导致不可持续的局面。但现实是,我们只能想象这些决定对库存健康等其他部门的影响。当分析师做出决策时,他们需要知道他们正在使用哪些数据来评估风险并做出有意识的选择。接下来,我们讨论了如何将数据转化为商业价值。数据管道扮演什么角色?当我们坐在办公室想象数据(或阅读高级文章)时,我们常常会想到一个非常简单的世界,只有几个数据域:但现实往往远比上述情况复杂:在大数据场景中,有是数以千计的不同级别的数据管道,它们不断地在数据域或数据存储库之间摄取和集成数据。数据管道是交付成功数据平台的最重要组成部分之一;然而,即使在今天,我们在大规模构建数据管道方面也面临着与多年前相同的挑战,形式如下:以动态和灵活的方式交付元数据,例如历史数据沿袭使数据分析师、数据工程师、和公司利益相关者轻松向数据分析师和利益相关者提供有关数据质量和新鲜度的信息大规模构建数据管道的挑战是什么?数据管道的目标集中在以下四个方面:团队合作和理解动态数据沿袭可观察性数据质量团队合作和理解规则变化很快,公司必须快速适应。数据和信息比以往任何时候都更加重要。为了快速交付价值,我们需要一个由数据科学家、数据工程师、分析师和公司利益相关者组成的异构团队一起工作。他们需要使用类似的语言才能更加敏捷。当我们所有的数据管道都是使用Spark或KafkaStreams等技术构建时,技术人员和非技术人员之间的敏捷通信就太复杂了。从数据到信息的旅程始于数据管道。数据沿袭元数据对于将数据转换为业务信息至关重要。它提供了每个人都可以访问的摘要沿袭,提高了数据可见性、理解力和信心。我们必须动态地提供此信息,而不是通过永不更改的静态文档或永远持续进行的复杂检查过程。可观察性数据管道的可观察性是一个主要挑战。通常,可观察性面向技术团队,但我们需要提高所有利益相关者(业务分析师、数据分析师、数据科学家等)的可见性。数据质量我们需要改进处理数据的方式,并开始应用传统的软件开发最佳实践。从数据到数据即代码,我们可以使用版本控制、持续集成或测试等方法。数据管道是如何演变的?当我们研究新的数据技术趋势时,我们可以观察到开源社区或商业软件初创公司中存在的一些积极举措,例如Airbyte、Meltano、dbtlabs、DataHub或OpenLineage。上面的这些用例展示了数据处理领域如何演变为:利用新的数据存储库增强功能,从ETL(提取、转换、加载)模型过渡到ELT(提取、加载、转换)模型,为以下方面提供解决方案在代码中管理数据功能提高数据理解和可观察性上述功能是使我们能够大规模构建数据管道并提供业务价值的关键。了解从数据准备到数据理解的过程是将数据转化为信息的第一步。转换层在这个过程中起着关键作用。通常,翻译层是瓶颈,协作很复杂,因为数据工程师和业务分析师说不同的语言。但是,更新的工具(例如dbt)正在尝试改进这一点。什么是数据库?dbt(DataBuildTool,或“DataBuildTool”)是一个用于转换层的开源CLI工具,支持业务数据分析师和工程师使用通用语言和软件开发最佳实践,如版本控制、持续集成/部署、和持续测试)。全公司通用语SQL是公司的通用语,允许所有利益相关者参与整个数据生命周期的讨论。SQL使数据和业务分析师能够使用版本控制工具通过SQL语句协作创作或修改转换。ELT(提取、加载、转换)数据世界发生了很大变化。目前,大多数数据存储库都具有良好的性能和可扩展性。此外,新的场景改变了过渡过程的规则。在许多情况下,数据存储库比外部流程更适合这项工作。dbt执行ELT流程的转换,利用新数据存储库的功能并在数据仓库中运行数据转换查询。数据即代码dbt允许将数据转换作为Git存储库中的代码进行管理,并应用持续集成最佳实践。它提供测试功能,包括基于SQL查询的单元测试模块,或使用宏扩展它以增加更复杂场景的覆盖率。沿袭和元数据DBT允许我们在每次运行数据转换时动态生成数据沿袭和元数据。现在有很多成熟的平台(比如阿里云的DataHub或者Datakin的OpenLineage)可以和企业的业务结合,这些平台为企业的可视化提供了丰富的支持。结论近年来,许多大数据公司在提高数据处理性能和摄取能力方面投入了大量精力,但质量和理解仍然是导致决策困难的问题领域。如果我们不理解大量数据,或者数据质量很差,我们很快就会得到大量不相关的数据。然而,要传递增加业务价值的信息,必须有一层可扩展、可维护且可理解的数据管道。请记住:与其根据不准确的数据做出决定,不如不做决定——尤其是在您没有意识到数据错误的情况下。译者介绍朱宪忠,51CTO社区编辑,51CTO专家博主,讲师,潍坊某高校计算机教师,自由编程资深人士。早期专注于各种微软技术(编译成三本与ASP.NETAJX和Cocos2d-X相关的技术书籍)。/ESP32/RaspberryPi等物联网开发技术和Scala+Hadoop+Spark+Flink等大数据开发技术。原标题:ChallengestoDesigningDataPipelinesatScale,作者:MiguelGarcia
