构建易于扩展的数据管道的五个要点​

译文 精选
大数据
数据管道就是将数据从一个位置传输到另一个位置的一系列过程,常常在此过程中改变数据。

译者 | 布加迪

审校 | 重楼

我们这个数字世界充满了数据,但实现数据的全部价值可能很困难。如果是数据工程的新手,可能会对需要学习和理解的种种工具和概念感到有点不知所措。原因在于,从大数据到数据科学,每个有效的数据驱动决策过程都需要设计强大且可扩展的数据管道。

构建数据管道是应该学习的一项非常重要的技能。数据管道就是将数据从一个位置传输到另一个位置的一系列过程,常常在此过程中改变数据我相信一定听说过ETL这个术语,它代表提取、转换和加载。

可以这想:数据管道类似工厂装配线。原材料数据从一端进来,经过几个加工(处理)步骤,然后作为成品(处理过的数据从另一端出来。

典型的数据管道包括以下几个阶段:

1. 数据摄取:从各种来源(包括数据库、API和文件系统)收集数据的过程。步骤负责最初的数据收集,可以实时或批量收集。

2. 数据处理:对数据进行修改、清理和分组,为分析做准备。步骤可能包括数据丰富、规范其他类型的数据操作

3. 数据存储:将处理后的数据存储在数据仓库、数据湖或其他存储系统中。所使用的存储系统类型影响数据的搜索和检查方式

4. 数据交付:向最终用户或系统提供用于分析、报告或进一步处理的数据。步骤通常需要开发数据可视化工具或连接业务智能工具

随着组织规模和数据复杂性的增加,可扩展数据管道变得更必不可少。构建不力的管道可能会导致性能问题,比如系统崩溃、缓慢的处理速率和延长的停机时间。因此,收入来源下降,影响消费者满意度。

扩展数据管道对于企业跟上业务需求的增长速度至关重要。没有它们,企业将无处理客户或应用程序每天生成的大量数据。据Gartner的一项研究显示,糟糕的数据质量平均每年给企业造成1500万美元的损失,导致数字化计划破坏竞争地位被削弱以及客户不信任。

这就是为什么我们在本文中将介绍如何构建可扩展数据管道的五个技巧。我们将先讨论一些常见的可扩展性问题,最后重点介绍用于构建可扩展数据管道的一些工具和技术。

图1. 北美数据管道市场规模2019年至2030年(单位:10亿美元)图1. 北美数据管道市场规模2019年至2030年(单位:10亿美元)

由于金融、医疗保健和零售等行业的采用增加,预计从2023年到2030年,全球数据管道市场将以22.4%复合增长率增长。北美目前是市场的领导者,亚太区预计将迎来最快的增长,部分原因是低延迟网络基础设施领域获得比如诺基亚与澳大利亚Optus的合作项目。

不妨看一个真实的场景。

真实场景

不妨考虑一个真实场景:一家正在快速增长的电子商务公司。随着客户群扩大,该公司从网站互动购买历史记录、客户评论和库存收集的数据量也随之增加。最初,数据管道被设计用于处理适度的交易量,但随着销售在旺季飙升,问题开始出现。

比如在黑色星期五这样的重大销售活动期间,该公司的数据管道力不从心。大量涌入的数据使系统不堪重负,导致实时处理订单和更新库存出现延迟。这可能导致沮丧的客户收到不准确的库存信息或遇到订单确认延迟,从而影响销售和客户满意度。

为了应对这些挑战,该公司需要扩展数据管道。它可以从实施一套更灵活的架构入手,该架构可以动态调整以适应不同的数据负载。比如说,使用基于云的服务便于它在热销活动期间分配更多的资源,在较平淡期间缩减资源,确保它可以处理数据峰值而不会出现问题。

此外,该公司可以集成流数据处理框架来实时分析进入的数据。这意味着可以即时监控销售趋势和库存从而能够更快地根据数据做出决策。通过增强数据管道的可扩展性,该公司不仅提高了运营效率,还提高了客户信任度和留率。

数据管道中的常见可扩展性问题

数据管道中的可扩展性问题可能会很快变得混乱,尤其是当数据量和复杂性增加时。以下是一些最常见的挑战:

1. 数据处理方面的瓶颈

随着数据负载增加,管道可能难以实时处理所有数据。如果管道的某一部分(比如转换或丰富步骤)很缓慢,可能会阻碍其他所有步骤,造成波及整个系统的延迟。这就像一家繁忙咖啡店慢吞吞的咖啡师;如果某一卡住了,其他步骤有多快都不重要

2. 存储和检索速度

由于大量数据流入,存储系统可能难以跟上,从而导致数据检索和处理时间变慢。传统数据库可能无法效扩展,在访问数据进行分析或报告时导致延迟。数据仓库和云存储解决方案是更具可扩展性的选择,但它们认真加以管理,以免遇到性能瓶颈。

3. 处理数据峰值

许多数据管道在流量突然激增会崩溃。比如说,零售公司在节日销售或产品发布期间可能会遇到大量数据。如果没有自动扩展功能,管道可能不堪重负,导致数据丢失或延迟,最终影响公司实时响应需求的能力

4. 数据质量和一致性

当管道扩展时,跨数据源维护数据质量可能成为一大挑战。在快速从不同来源提取数据时,经常会出现不一致和丢失数据的情况。这些问题不仅减慢处理速度,还会导致获得洞察力不准确,从而误导决策者

5. 资源争用

随着管道扩大,相互竞争的流程比如同时运行的多个ETL作业)可能会争夺相同的资源,从而降低彼此的速度。这可能导致不可预测的性能,其中某些作业被延迟,或者数据被序处理

然而,非常仔细的规划和准备加上可靠的执行可以解决这些可扩展性问题。下面介绍的技巧可发帮助构建可扩展的数据管道。

构建可扩展数据管道的技巧

构建可扩展的数据管道需要时间和精力才能入手旨在创建一个随着组织需求而增长的系统,不错过任何机会。随着公司不断扩张,这么做绝对是值得的。以下是确保数据管道可扩展的五个关键实用技巧:

1. 选择正确的架构

说到可扩展性,架构就是一切。精心选择的架构可以处理增加的数据负载或处理需求,而不陷入困境或需要进行重大改动。这通常意味着考虑分布式系统,这种系统允许在需求增加时通过向架构中添加更多节点进行横向扩展。

基于云的解决方案在这方面出色,特别是在高流量期间,提供了基于使用模式快速扩展或缩减基础设施的灵活性。关键是要有一不仅现在稳健,而且适应性足够强的架构,以支持新数据源和更高的处理需求。

2. 实施智能数据管理

可靠的数据管理策略是任何可扩展管道的支柱。先定义处理什么,需要达到什么目标。如果专注于分析结构化数据以获取商业智能,传统的数据仓库可能是最佳选择。但如果在处理大量非结构化数据,比如社交媒体流或物联网传感器数据,数据湖可能是更好的选择

数据湖允许以原始形式存储数据,这对于各种格式的非结构化数据非常理想。这种无需不断重新格式化就能处理结构化数据和非结构化数据的灵活性有助于确保管道的效率和适应性。

3. 充分利用并行处理

数据处理可能会变得工作量很大,尤其在处理大量数据时。为了便于管理,不妨考虑并行处理。把任务分解成可以同时运行的小块。比如说,如果的管道处理TB级的数据,将其分成不同处理系统可以同时处理的部分。这加快了整体处理速度,使的管道更具弹性,因为任务不必排队等待处理。许多大数据框架(比如Apache Spark)在设计时就考虑了并行处理,这使得它们对于可扩展的管道有价值。

4. 优化数据处理

即使有了可靠架构,优化也是保持系统平稳运行的关键。先减少不必要的数据转换,因为每个转换都需要时间和资源。如果重复处理相同的数据,考虑缓存结果以避免冗余工作。使用更快的算法和尽量减少数据移动也有帮助——每次数据移动都会产生瓶颈。这对增量更新也大有助益。不是从头开始重新计算一切,仅仅处理新的数据或更改的数据。这不仅减了系统的压力,使处理时间更易于预测。

5. 优先考虑实时处理和适应性

可扩展性不仅仅旨在处理更多的数据,还旨在满足未来的需求,并在需要时为实时处理留出空间。如果的团队依靠数据做出快速、明智的决策,就要争取构建可以支持实时处理或实时更新的管道。

这可能意味着添置数据流技术或支持快速数据摄取和处理的框架。此外,确保的管道设计有更改的空间:新的数据源、更新的业务需求或不断涌现的分析需求不应该每次都需要从头开始。

构建可扩展数据管道的工具和技术

下面是一些用于构建可扩展数据管道的主要工具和技术。每个都提供了独特的功能和可扩展选项,因此选择通常依赖特定的管道需求、青睐的编程语言以及现有的技术基础设施。

  • Apache Kafka:用于构建实时数据管道和应用程序分布式流平台。Kafka具有高度可扩展性,旨在处理大量动态数据

相关链接:https://kafka.apache.org/

  • Apache Spark:用于大规模数据处理的强大分析引擎Spark通过分布式并行处理支持批处理和实时处理,使其成为可扩展数据管道的理想选择

相关链接:https://spark.apache.org/

  • Airflow由Apache开发的开源工作流管理工具,便于自动化和调度复杂的数据工作流。Airflow具有可扩展性,并支持DAG(有向无环图),因而非常适合编排可扩展的管道

相关链接:https://airflow.apache.org/

  • dbt(数据构建工具):dbt是一个数据转换工具,允许数据工程师处理复杂的转换工作流。它可以很好地与数据仓库一起工作,并凭借版本控制和易于协作支持可扩展转换

相关链接:https://www.getdbt.com/

  • Snowflake:一数据仓库解决方案,内置处理大规模分析和数据工程的功能Snowflake的云原生架构支持高效的扩展和管道集成

相关链接:https://www.snowflake.com/

  • Databricks:一基于Apache Spark的统一分析平台Databricks为大规模数据工程而设计借助面向数据科学和工程协作特性使用户很容易构建和管理可扩展数据管道

相关链接:https://databricks.com/

结论

如果关注架构、数据管理、并行处理和深入优化,就可以建立一个可扩展高效为未来做好准备数据管道。

记住,可扩展性的目的不仅仅是容纳更大的数据量,而是增强快速响应不断变化的业务需求和利用实时洞察的能力。从选择的架构实施的数据处理技术,所做的每个决定都会影响管道的性能和适应性。

所以,无论是刚开始构建管道还是想要完善现有的管道,都要记住这些技巧。拥抱挑战,将的数据管道变成推动贵公司向前发展的潜在动力。

原文标题:5 Tips for Building Scalable Data Pipelines,作者:Shittu Olumide

责任编辑:华轩 来源: 51CTO
相关推荐

2024-05-10 13:14:41

技巧云原生应用

2018-10-25 08:00:00

数据库开源数据库开源技术

2024-06-20 08:00:00

云原生Apache Kaf

2017-05-31 14:35:17

大数据运行环境数据管道

2012-05-10 09:46:02

动态数据中心

2022-09-30 10:36:49

物联网IoT

2017-01-19 10:44:54

私有云云计算虚拟化

2018-09-17 09:00:00

测试工具网络分析

2019-10-08 14:16:08

大数据数据产业

2009-07-14 21:41:10

数据中心计算机系统

2023-10-04 17:44:27

系统设计目标

2016-10-19 13:47:41

大数据存储Hadoop

2019-05-27 23:21:47

大数据云迁移企业

2014-07-23 10:03:20

2021-12-03 14:37:38

数据备份存储备份

2023-02-19 15:28:39

CI/CD 管道集成开发

2023-01-06 16:42:28

2022-05-13 14:28:03

云原生权限云原生

2022-02-28 16:01:04

人工智能机器学习企业

2022-03-16 00:15:56

Flask扩展插件
点赞
收藏

51CTO技术栈公众号