深入浅出:数据流水线管理(上)

本文介绍数据流水线在数据中台建设中的核心作用,包括数据采集、转换、分析和传输等关键任务,以及面临的挑战。

680a368fd0b43a537669e1814138f94a.png

在绝大部分企业的数据中台建设中,数据流水线的建设都是核心工作之一。数据流水线系统承担着将数据从原始形态转换到用户与业务应用可以直接使用的形态的整个过程。在绝大多数时候,这些工作必须是自动且高度可靠的,并能够实时确保数据的正确性。数据流水线是数据驱动的重要环节,也是数据中台建设的重要过程。

本文主要介绍数据流水线的具体任务以及建设数据流水线的注意事项。

数据流水线定义与模型

简单来讲,数据流水线就是从原始数据到最终数据能力(如报表、大屏、数据服务)的整个转换流程的管理系统,就像工厂里从原材料到成品的流水线管理一样。数据流水线管理的是这个转换流程中的程序和数据。这些程序的输入/输出数据是什么,两个相关联的程序如何协调运行,如何保证程序和数据的质量,如何在出现问题时报警,都是数据流水线的工作。图中所示为一个典型的数据流水线模型。

20b7023b8dad79ab89f842b0621bd548.png

图 | 常见数据流水线模型

数据流水线输入的数据是各种形式的原始数据,例如业务系统的OLTP数据库、服务器的日志、第三方合作伙伴的数据接口、用户上传的文件、ERP/CRM系统的数据、从互联网上下载的媒体文件等。它们必须经过数据流水线的清洗、转换、分析,才能最终产生数据价值。

数据流水线中的应用,运行平台和处理的数据是多种多样的,例如用Python编写的采集互联网数据的爬虫,用Java编写的接受第三方数据的API服务,采集关系型数据库数据的Sqoop(运行在Hadoop上),DataX(运行在命令行上),进行数据转换的SQL程序(运行在Hive上)等。如果需要处理实时数据,可能还有Kafka/Flink流处理应用。这些程序之间一般都有依赖关系,而且有不同的调度周期,有的是持续运行的,有的是按小时/天定时运行,还有的是按照数据到达的时间来运行。

为了管理这些数据处理应用以及它们处理的数据,我们需要一个完善的数据流水线系统。这里我们对数据流水线下一个定义:

数据流水线是一个数据处理应用管理系统,它负责发布、调度、运行、管理所有自动的数据处理应用,将数据从各种数据来源进行提取、转换、分析、存储,最后形成可被直接使用的形式。

数据流水线与传统的ETL有何不同呢?数据流水线是一个更为广泛的术语,其中包含ETL。ETL(Extract-Transform-Load)及其变形ELT(Extract-Load-Transform),是指数据的萃取、转换、治理过程,一般由一系列SQL语句完成,在Hadoop生态中也可以由一些MapReduce任务来完成。而数据流水线需要管理系统中所有数据流动的全流程。在流动的过程中,数据可以转换,也可以不转换,可以使用机器学习算法生成新数据,并且可以以实时或流式处理的方式来进行,而不只是批量处理。

谁会需要数据流水线呢?企业不分大小,只要业务增长依赖数据驱动,就可以开始搭建数据流水线。如果有以下几个特征,那么企业就可以计划铺设数据流水线了:

  • 依赖批处理ETL的流程已经难以承载由业务的持续增长带来的分析压力;

  • 不能很好地对非结构、结构化数据进行分析;

  • 无法进行全局的数据汇聚和治理;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值