关于Kafka的介绍
当咱们听到 “数据管道 “这个术语时,以下问题当即值得一提。
- 什么是数据管道?
- 它的目的是什么?
- 它与ETL有什么差异?
在数据生产者和数据顾客的情况下,生产者在做一些数据处理、数据治理和数据清洗之前不能发送数据。
数据管道的类型
1.实时数据管道
2.批量数据管道
3.Lambda架构(实时和批处理)
生产者能够发送批量或实时数据。
批量数据。CSV、数据库和主机是传统数据的比如。例如,每周或每月的计费体系。
实时数据。这种信息来自物联网设备、卫星和其他来历。例如,交通办理体系。
在进入中央数据管道之前,批量数据要经过批量吸取,而实时数据要经过流吸取。
什么是批处理和流吸取?
批量吸取是对一段时期内取得的数据进行处理。相比之下,由于流吸取涉及到实时数据,所以处理是逐件进行的。
数据管道是由几个独立的组件组成的。考虑一个ODS(运营数据存储),在那里,批量数据在处理后被分阶段存放。流数据也能够在运用Kafka的Message hub中被分阶段处理。一个NoSQL数据库,如MongoDB,能够作为一个音讯枢纽。
由于ODS的存在,企业将能够从多个来历搜集数据,并将其存储在一个方位。Kafka是一个分布式数据存储,可用于创立实时数据管道。即使一切这些数据已经被剖析过,依然有可能充沛它。MDM能够用来做这个(主数据库办理)。它通过减少错误和冗余来协助处理数据。
当数据准备好后,它能够被交付到预订的目的地,如数据湖或数据仓库。客户能够利用它来创立事务报告、机器学习模型和仪表盘,以及其他东西。
但它与ETL有什么不同?
在ETL管道的结尾,数据被放入数据库/数据仓库。另一方面,数据管道显然是不同的,由于它涉及的不仅仅是导入数据。它作为源和目的地之间的联系。这里,ETL管道能够被认为是数据管道的一个子集。
让咱们深化了解一下Apache kafka。
Linkedin在将Kafka交给Apache基金会之前开发了它。Apache Kafka是一个开源的平台,与事情一起作业。为了充沛理解事情驱动的办法,咱们必须首先了解数据驱动和事情驱动办法之间的差异。
**数据驱动。**考虑一个在线零售商,如亚马逊。当顾客A在日期1购买了产品X,数据库就会记载下这笔交易。但假如咱们不得不考虑超过2亿的客户,会产生什么?一切的数据都保存在几个数据库中,这些数据库应该相互交流,并与在线网站交流。
**事情驱动:**这种办法选用与公司网站相同的互动办法。但是,一切的数据被保存在一个行列中。数据库能够从行列中取得它需求的信息。
什么是事情?
它可能是一个单一的活动或一组商业行为。例如,假如客户A在第1天购买了产品X,一个事情被记载下来,其信息如下。
客户ID- 123
名字- A
订单ID- 001
日期- 1。
Kafka鼓励运用行列来存储事情。任何客户都能够运用这个行列来获取他们需求的信息。
接下来应该想到的问题是:Kafka与其他中间件有什么不同?
1.咱们能够在任何时间段内存储大量的数据。
2.3.它对每个事情都是仅有的(即使同一个客户进行第2次购买,由于他或她可能在不同的日期购买产品Y)。
Kafka的另一个值得注意的作用是它运用了 “日志 “数据结构。日志中的OFFSET字段表明晰数据的取值范围。它永远不会掩盖现有的数据;相反,它将在最终追加数据。
**日志数据结构。**日志是最基本的数据结构,用于描述一个仅有附加记载的序列。不可变的日志记载是以准确的顺序添加到日志文件的结尾的。
**音讯-**行(它是Kafka架构中最小的单位)
**主题–**表
分区–视图
音讯(邮件符号)、主题(圆柱形管道)和分区在上面的图片中都是清晰可见的。为了完成容错和可扩展性,这些分区都保持在多个设置中。事情只能在一个分区内进行分类或排序。
Kafka集群。
Kafka生意人是Kafka服务器的另一个名字。他们从生产者和顾客那里取得数据存储和检索指令。数据仿制也被保存在与领导者不同的生意商中。在产生故障的情况下,仿制的生意人将行使权力。领导者将始终与生产者和顾客互动。一个Kafka集群是许多生意商的调集。
为了进一步探索,有一些Kafka产品。
1.Kafka中心(主题、日志、分区、生意人和集群)
2.Kafka Connect(衔接主机和数据库)
3.kSQL (为Kafka设计的SQL)
4.Kafka客户端(要衔接客户端)
5.Kafka Streams(办理Kafka中的流摄入)
优势
2.完全分布式(容错)。
3.基于事情的办法
4.零停机时间(可扩展的架构)
咱们能够清楚地看到,这个数据管道的概念关于现实世界的问题是很有用的,它通过自动化和使数据在单一来历供顾客访问,使其更容易取得洞察力和渐进式剖析。它提供了一个灵活的环境。
本文所展现的媒体不属于Analytics Vidhya一切,由作者自行决定运用。