数据流水线架构

简介: 数据流水线架构

对数据的获取、存储、处理、分析、查询、可视化,构成了数据的完整生命周期,并为商业洞见提供支持。从技术上来说,有一系列的开源系统共同构成了数据处理的流水线。原文:Data Pipeline Architecture[1]


我经常对一些个人项目进行数据分析并尝试得出一些有用的结果。但我们都知道,在数据行业里没有干净的数据,总是需要对数据进行手工或者自动的处理。因此数据工程师应该首先考虑如何设计数据流水线,用于获取、存储和管理数据。


数据流水线在银行零售部门(retail banking industry)是如何运作的?


银行的零售部门总是基于数据来决定业务的运作,比如产品推荐、流失预测、贷款审批、客户细分等,通常其需要的数据不会很清晰。此外,将数据存储在一台机器中是非常危险和低效的,银行业应该转而使用大数据技术来处理。


当我们使用大数据技术进行数据处理的时候,并不是用一台机器来处理所有的事情,而是用 5 台机器来处理。使用更多的机器,系统速度会更快、更方便扩展、也更容易维护[2]

批处理数据流水线架构


通常需要考虑 3 个系统,分别是数据源、基础设施系统和终端系统(请注意,这只是我自己的解释,其他人可能会有不同的说法)。


image.png


批处理数据流水线架构


数据源(Data Sources)


数据的来源各种各样,如自动柜员机(ATM)、软件、用户交互、客户服务对话,并且大部分都包含事务性数据。可以将其视为数据市场(Data Mart),它是特定于数据仓库环境的结构以及访问模式,可用于检索面向客户的数据。收集到的所有数据都将存储在一台特定的机器上,这些是未经处理的原始数据。


基础设施系统(Infrastructure Systems)


这里有很多我们需要了解的系统,分别用于数据提取、数据调度、数据处理、数据仓库和查询引擎。

数据提取(Ingestions)


提取模块用于负责从数据源读取数据的过程,该模块通过 API 从每个数据源读取数据。在我们提取这些数据之前,需要首先进行数据剖析(data profiling)——通过检查其特征和结构,看看是否适合我们的业务。

之后,数据被分批提取。批处理流程可以在一个组里提取多组记录。在存储了很长时间的原始数据之后,通过这个过程提取数据。它并不会实时收集数据,而是按照计划执行,例如每周、双周、每月、季度和年度计划来提取数据。


Python 是在这个过程中可以使用的工具之一。对于较小的项目来说,只用 python 就足够了。更大的项目可以使用任何支持数据提取的云服务,如 GCP、Azure、AWS 等。

数据调度(Scheduler)


调度器用来决定什么时候应该在其他平台上接收和处理数据。在上图中,可以使用 Apache Airflow[3]为这种情况创建一个时间表。它将安排何时从数据仓库提取数据,何时处理数据。注意,Airflow 不是数据流解决方案。

数据仓库(Warehouse)


数据仓库是我们存储从数据市场收集到的数据的地方。在 GCP 中,可以使用 BigQuery 和 Cloud Storage 进行存储。大多数情况下,BigQuery 可以处理关系型数据,而 Cloud Storage 可以处理非结构化数据,如图像、声音、视频和文本。BigQuery 和 Could Storage 之所以受到大多数公司的青睐,是因为它们提供了几乎从不间断的可用性,使我们不必担心和处理基础设施。我们需要考虑哪种 BigQuery 和 Cloud Storage 计划最适合我们的用例,从而尽可能优化总成本。不过要注意,并不是所有场景都适合云存储,尤其考虑到在银行零售业务中,某些政策可能会限制云存储的使用,比如不能将敏感数据分享给云服务商。因此,私有的现场数据库更适合这些策略。

数据处理(Processing)


当数据存储被存储到仓库中,就可以对其进行处理并转换为更合适的格式。BigQuery 可以通过 SQL 查询来处理这个问题,但是使用 Apache Spark 可能会更加灵活。我们可以用 python 编写 Apache Spark 代码,对数据进行处理和转换,并存储到 BigQuery 中。Spark 比 pandas 更适合处理大数据[4]。和 pandas 相比,Spark 的缺点在于缺乏可视化的手段。

查询引擎(Query Engine)


查询引擎是编写 SQL 代码和提取请求数据的引擎,是位于数据库或服务器之上的一段软件,对数据库或服务器中的数据执行查询操作,为用户或应用程序提供答案,其获取的数据可能会被终端用户使用。查询引擎工具有 BigQuery、Presto、Apache Drill、M3 等。

终端系统(End Systems)


最后,终端用户通过各种应用程序接收处理、转换和存储的数据。数据分析师和商业智能系统可能会使用可视化工具,如 Data Studio、Tableau、Qlik 和 PowerBI 来创建一些仪表板或根据数据进行分析。数据科学家和机器学习工程师可以使用提取的数据来开发一些模型、A/B 测试,并使用类笔记本应用程序(如 jupyter notebook、谷歌 colab 和 watson studio)找到一些有意义的商业洞见。


结论


最后,数据流水线的意义是为业务和数据团队提供现成的数据。对于数据工程师来说,为业务选择最合适、最有效的系统和基础设施是一个挑战。


参考文献



Reference:

[1] https://medium.com/@diemasaksyafachriza/data-pipeline-architecture-28687d7dce6b

[2] https://www.tutorialspoint.com/hadoop/hadoop_introduction.htm

[3] https://airflow.apache.org/docs/apache-airflow/stable/index.html

[4] https://towardsdatascience.com/stop-using-pandas-and-start-using-spark-with-scala-f7364077c2e0

目录
相关文章
|
3月前
|
存储 BI Shell
Doris基础-架构、数据模型、数据划分
Apache Doris 是一款高性能、实时分析型数据库,基于MPP架构,支持高并发查询与复杂分析。其前身是百度的Palo项目,现为Apache顶级项目。Doris适用于报表分析、数据仓库构建、日志检索等场景,具备存算一体与存算分离两种架构,灵活适应不同业务需求。它提供主键、明细和聚合三种数据模型,便于高效处理更新、存储与统计汇总操作,广泛应用于大数据分析领域。
381 2
|
2月前
|
数据采集 缓存 前端开发
如何开发门店业绩上报管理系统中的商品数据板块?(附架构图+流程图+代码参考)
本文深入讲解门店业绩上报系统中商品数据板块的设计与实现,涵盖商品类别、信息、档案等内容,详细阐述技术架构、业务流程、数据库设计及开发技巧,并提供完整代码示例,助力企业构建稳定、可扩展的商品数据系统。
|
13天前
|
数据采集 机器学习/深度学习 搜索推荐
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
MIT与丰田研究院研究发现,扩散模型的“局部性”并非源于网络架构的精巧设计,而是自然图像统计规律的产物。通过线性模型仅学习像素相关性,即可复现U-Net般的局部敏感模式,揭示数据本身蕴含生成“魔法”。
77 3
MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
|
3月前
|
SQL 缓存 前端开发
如何开发进销存系统中的基础数据板块?(附架构图+流程图+代码参考)
进销存系统是企业管理采购、销售与库存的核心工具,能有效提升运营效率。其中,“基础数据板块”作为系统基石,决定了后续业务的准确性与扩展性。本文详解产品与仓库模块的设计实现,涵盖功能概述、表结构设计、前后端代码示例及数据流架构,助力企业构建高效稳定的数字化管理体系。
|
22天前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
2月前
|
数据采集 监控 数据可视化
数据量暴涨时,抓取架构该如何应对?——豆瓣电影案例调研
本案例讲述了在豆瓣电影数据采集过程中,面对数据量激增和限制机制带来的挑战,如何通过引入爬虫代理、分布式架构与异步IO等技术手段,实现采集系统的优化与扩展,最终支撑起百万级请求的稳定抓取。
数据量暴涨时,抓取架构该如何应对?——豆瓣电影案例调研
|
2月前
|
缓存 前端开发 BI
如何开发门店业绩上报管理系统中的门店数据板块?(附架构图+流程图+代码参考)
门店业绩上报管理是将门店营业、动销、人效等数据按标准化流程上报至企业中台或BI系统,用于考核、分析和决策。其核心在于构建“数据底座”,涵盖门店信息管理、数据采集、校验、汇总与对接。实现时需解决数据脏、上报慢、分析无据等问题。本文详解了实现路径,包括系统架构、数据模型、业务流程、开发要点、三大代码块(数据库、后端、前端)及FAQ,助你构建高效门店数据管理体系。
|
3月前
|
数据采集 存储 分布式计算
一文读懂数据中台架构,高效构建企业数据价值
在数字化时代,企业面临数据分散、难以统一管理的问题。数据中台架构通过整合、清洗和管理数据,打破信息孤岛,提升决策效率。本文详解其核心组成、搭建步骤及常见挑战,助力企业高效用数。
1051 24
|
2月前
|
SQL 数据采集 数据处理
终于有人把数据架构讲清楚了!
本文深入浅出地解析了数据架构的核心逻辑,涵盖其定义、作用、设计方法及常见误区,助力读者构建贴合业务的数据架构。
|
6月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
535 69