数据管道与Kafka基础

在技术尚未发展成熟的年代,人们需要根据不同的需求从周围的不同资源中收集水资源。随着技术的进步,人们通过使用单一资源满足所有需求,自动化了获取水资源的过程。数据管道的概念与此类似,它涉及从源头到目的地存储和丰富数据的一系列步骤,进一步帮助获得洞察力,并促进数据存储和转换的自动化。

数据管道的疑问

当听到“数据管道”这个术语时,以下几个问题立刻浮现在脑海中:什么是数据管道?它的用途是什么?它与ETL有何不同?在数据生产者和数据消费者的情况下,生产者在发送数据之前不能不进行数据处理、数据治理和数据清洗。

数据管道的类型

数据管道的类型由其被使用的用途决定。它可能被用于数据科学、机器学习或商业分析等。数据管道的类型包括:

生产者可以发送批处理或实时数据。批处理数据的例子包括CSV、数据库和大型机,例如每周或每月的计费系统。实时数据则来自IoT设备、卫星等来源,例如交通管理系统。在进入中央数据管道之前,批处理数据会经过批处理摄取,而实时数据则通过流摄取。

批处理和流摄取

批处理摄取是一段时间内获取的数据的处理。相比之下,流摄取涉及实时数据,因此是逐块处理的。数据管道由几个独立的组件组成。考虑一个ODS(操作数据存储),批处理数据在处理后会在此暂存。流数据也可以在消息中心使用Kafka暂存。NoSQL数据库,如MongoDB,可以用作消息中心。

数据的存储和丰富

得益于ODS,组织能够从多个来源收集数据并将其存储在单一位置。Kafka是一种分布式数据存储,可用于创建实时数据管道。即使所有这些数据已经被分析,仍然可以对其进行丰富。MDM(主数据库管理)可用于此,它通过减少错误和冗余来协助数据。

数据的最终目的地

当数据准备就绪时,它可以被发送到预定目的地,如数据湖或数据仓库。客户可以使用这些资源来创建业务报告、机器学习模型和仪表板等。

数据管道与ETL的区别

ETL管道的最终结果是将数据放入数据库/数据仓库。而数据管道则明显不同,因为它不仅仅涉及导入数据。它作为源和目的地之间的链接。在这里,ETL管道可以被视为数据管道的一个子集。

ApacheKafka

ApacheKafka是一个开源平台,与事件一起工作。要完全理解事件驱动的方法,首先必须理解数据驱动和事件驱动方法之间的区别。

考虑一个在线零售商,如亚马逊。当客户A在日期1购买产品X时,数据库记录了这笔交易。但如果必须考虑超过2亿客户呢?所有数据都保存在多个数据库中,这些数据库应该相互通信以及与在线网站通信。

这种方法使用与公司网站相同的交互方式。然而,所有数据都保存在队列中。数据库可以从队列中获取它需要的信息。

事件是什么?

它可能是一个单独的活动或一组业务行动。例如,如果客户A在日期1购买产品X,会记录一个事件,包含以下信息:

客户ID: -123 名称: – A 订单ID: – 001 日期: – 1.

Kafka鼓励使用队列来存储事件。任何客户都可以使用这个队列来获取他们需要的信息。

Kafka与其他中间件的区别

1. 可以存储任意时期内的大量数据。 2. 它对每个事件都是唯一的(即使同一客户再次购买,因为他或她可能在不同的日期购买产品Y)。

Kafka的另一个显著作用

它使用“日志”数据结构。日志中的OFFSET字段指示数据被取走的位置。它永远不会覆盖现有数据;相反,它会在末尾追加数据。

日志是描述仅追加记录序列的最基本数据结构。不可变的日志记录以确切的顺序添加到日志文件的末尾。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485