浅谈数据流水线

数据流水线是数据加工和处理的关键流程,包括数据的提取、转换和加载。它涉及数据源接入、数据处理、数据交付和管理,用于支持机器学习模型、数据分析等。构建数据流水线时,需考虑数据源的所有权、数据结构、数据质量和业务需求。通过数据流水线,可以提高数据管理效率,减少重复开发,并追踪数据血缘关系。经典模式ETL(提取、转换、加载)是实现数据流水线的常用方法,通过任务调度平台如Apache Airflow进行管理和调度。
摘要由CSDN通过智能技术生成

当下我们听过很多热门的技术名词,例如:机器学习模型、推荐系统、高管驾驶舱、BI等等,在这些技术背后一个关键的角色就是:数据。这些数据通常不是单一的,原始的数据,而是需要从多个数据源获取,并经过复杂的提取、清洗、处理、加工等过程才能最终提供真正的价值。

我们常说“数据是未来的石油”,其实也就是在说,数据并不是“开采”出来就可以直接提供价值的,而是要经过若干流程的“加工”和“提纯”才可以产生价值。而对于数据的加工和处理流程,我们通常将其称为数据流水线,也就是 Data Pipeline。

什么是数据流水线

那么什么是数据流水线呢?数据流水线从广义来讲,会包含源数据的接入、数据的处理、数据交付、数据管理、数据治理以及数据的访问模式等,同时也包含狭义上的数据流水线,也即对数据做相应的ETL处理,本文我们将重点关注于狭义的数据流水线。

它通常指从若干数据源中迁移数据,将迁移的数据进行复杂的数据处理之后,并加载到目标数据系统中的一系列流程,且数据的价值正是在每一步的流转中逐步产生的。数据流水线通常也是实现机器学习模型、数据分析、业务报表等技术的基础。

数据流水线的复杂性取决于数据源的数据结构、数据质量以及我们要实现的业务需求。

一条最简单的数据流水线可以只包含从一个数据源(例如:网络日志文件)复制数据,经过基础的数据清洗(例如:去除空值、无效值),再加载到目标数据仓库(例如:Hive)中。但通常情况下,一条数据流水线会包含多个步骤,包括多数据源的数据萃取、多步骤的数据处理、多环节的数据验证、有时还可能包含机器学习模型的训练和运行等任务。且这些不同的任务通常来自于不同的系统,并可以用不同的技术或语言来实现。


一条简单的数据流水线

为什么要构建数据流水线

我们都知道,冰山露出在水面之外的部分只占冰山整体的一小部分,而只有这些露出水面的部分才可以被人看到,但冰山的大部分都是隐藏在海水之下的。对于数据类相关的项目亦是如此,高管可能只关注放在他办公室的管理驾驶舱或仪表盘,业务部门可能只关注在某个推荐模型所带来产品点击率是否得到提升,产品部门可能主要关注在某个分货优化模型是否带来了产品分货效率的提升等等。但这些人们所能看到的也只是冰山的一角罢了。

要生成每一个报表,每一个模型,都依赖于一个复杂的机制,而这些隐藏在水面之下的部分通常很难被人所理解。因为要产生这些价值,都需要不断对数据进行加工和处理,不仅仅包含从数据源中提取数据并加载进入目标的数据系统,更包含过程中对于数据的清洗、数据的结构化和规范化、指标逻辑的处理与计算、数据隐私与安全性的处理、分析型数据立方体的预计算等任务。而对数据进行加工处理的这些过程,通过不断的抽象,就可以将冗杂的代码,甚至是有一些重复的代码,通过一种更高效的模式表达,也就是数据流水线。

数据流水线就是为了能够高效组织并运行这些不同阶段的任务。因此,在上面提到的例子中,在每一个报表或模型生成的背后,都至少有一条数据流水线在后台运行着,以支撑报表或模型最终为用户产生价值。通过数据流水线的方式处理数据,就可以更好的追踪数据的血缘关系,也通过开发一些通用的中间层数据,从而减少重复的开发工作。同时,数据流水线也是一种将复杂的问题逐步分解的过程,在每一条数据流水线中只处理单一的事情,最终以将复杂的问题简单化,也更有利于维护数据的准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值