CN111061715B - 基于Web和Kafka的分布式数据集成系统及方法 - Google Patents
基于Web和Kafka的分布式数据集成系统及方法 Download PDFInfo
- Publication number
- CN111061715B CN111061715B CN201911297173.3A CN201911297173A CN111061715B CN 111061715 B CN111061715 B CN 111061715B CN 201911297173 A CN201911297173 A CN 201911297173A CN 111061715 B CN111061715 B CN 111061715B
- Authority
- CN
- China
- Prior art keywords
- data
- kafka
- management
- schema
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Web和Kafka的分布式数据集成系统及方法,其中,系统包括:控制台模块,用于为用户提供控制台,使得用户以Web页面操作的形式进行ETL任务的创建和监控;管理服务模块,用于为控制台模块提供管理服务API;模式管理模块,用于管理数据源端的schema和目的地端的schema及其映射;数据抽取模块,用于将管理数据源端的数据抽取数据到消息队列;数据处理模块,用于对数据进行清洗和转换;数据加载模块,用于将数据从消息队列加载到目的地。该系统使得基于Kafka Connect创建ETL实例的过程操作更简单、管理更规范、配置更灵活,并且使得ETL程序耦合度低、容错性高,易于扩展和集成。
Description
技术领域
本发明涉及信息技术及数据业务技术领域,特别涉及一种基于Web和Kafka的分布式数据集成系统及方法。
背景技术
在进行跨应用的数据融合计算时,首先需要将数据从孤立的数据源中采集出来,汇集到可被计算平台高效访问的目的地,此过程被称为ETL,即数据的抽取(Extract)、转换(Transform)和加载(Load)。传统上,ETL是通过批量作业完成的,即定期从数据源加载(增量)数据,按照转换逻辑进行处理,并写入目的地。根据业务需要和计算能力的不同,批量处理的延时通常从天到分钟级不等。在一些应用场景下,ETL需要尽可能短的延迟,这就出现了实时ETL的需求。
Apache Flink使用流式处理来模拟批量处理,能够提供亚秒级的、符合Exactly-once语义的实时处理能力。因此基于ApacheFlink可以构建实时的数据通道,在不同的存储之间搬运和转换数据。由于Apache Flink“端到到”和流式特性让其构建实时的、符合Exactly-once语义的ETL任务具有很大的优势。但是也因此带来一些问题,由于“端到端”特性,数据的抽取、转换和加载过程耦合在一起,失去了数据抽取和数据加载过程的可插拔性,降低了程序的重用性。
KafkaConnect是Kafka0.9版本以后提供的客户端工具集,可以更方便的创建和管理数据流管道。它为Kafka和其它系统创建规模可扩展的、可信赖的流数据提供了一个简单的模型,通过connectors可以将大数据从其它系统导入到Kafka中,也可以从Kafka中导出到其它系统。基于Kafka Connect可以构建数据的抽取、转换和加载过程分离的实时ETL实例。但是构建一个基于Kafka Connect的实时ETL过程需要手动配置KafkaConnect的Worker进程的配置,并通过REST API管理Connectors,并需要手动管理connector的配置,过程复杂繁琐缺乏易用性和可管理性。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于Web和Kafka的分布式数据集成系统,该系统使得基于Kafka Connect创建ETL实例的过程操作更简单、管理更规范、配置更灵活,并且提出的实时分布式ETL方法使得ETL程序耦合度低、容错性高,易于扩展和集成。
本发明的另一个目的在于提出一种基于Web和Kafka的分布式数据集成方法。
为达到上述目的,本发明一方面实施例提出了一种基于Web和Kafka的分布式数据集成系统,包括:控制台模块,用于为用户提供控制台,以对集群进行Kafka Broker管理、Kafka Topic管理、Connector管理和ETL任务管理,使得所述用户以Web页面操作的形式进行ETL任务的创建和监控;管理服务模块,用于将Kafka、ETL Job、Connector、Configuration、Schema的操作进行API封装,以为所述控制台模块提供管理服务API;模式管理模块,用于管理数据源端的schema和目的地端的schema及其映射;数据抽取模块,用于将所述管理数据源端的数据抽取数据到消息队列;数据处理模块,用于对所述数据进行清洗和转换;数据加载模块,用于将所述数据从所述消息队列加载到目的地。
本发明实施例的基于Web和Kafka的分布式数据集成系统,基于Web的数据集成平台模块划分为控制台模块、服务管理模块、模式管理模块、数据抽取模块、数据处理模块、数据加载模块,并设计模块之间的相互依赖和作用关系,将数据集成过程系统化、流程化标准化;并设计和实现管理服务模块中的五大功能组件Kafka Manager、ETL Job Manager、Connector Manager、Config Manager和Schema Manager,基于zookeeper和DB结合的配置管理、基于SchemaRegistry和DB结合的异构数据源schema映射方法;同时使用Kafkastreams编写ETL中Transform部分的程序,将数据抽取模块、数据加载模块与数据处理的模块的程序分离,更易于程序的组合和扩展,同时使得ETL过程的数据处理能力更强大;从而使得基于Kafka Connect创建ETL实例的过程操作更简单、管理更规范、配置更灵活,并且提出的实时分布式ETL方法使得ETL程序耦合度低、容错性高,易于扩展和集成。
另外,根据本发明上述实施例的基于Web和Kafka的分布式数据集成系统还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述控制台模块进一步用于:在KafkaBroker管理页面配置Kafka集群信息;在所述Kafka Topic管理页面创建数据源端和目的端的Kafka主题;选择或创建一个源端数据连接器;选择或创建数据处理程序;选择或创建一个目的端数据连接器。
进一步地,在本发明的一个实施例中,所述服务管理模块进一步用于提供对KafkaBroker和Topic管理的服务API,提供ETL Job的基本信息查看和状态监控,提供对Connector管理的服务API,管理Kafka集群、Connector的配置,提供数据源的Schema管理服务,以管理ETLJob中SourceTask、ProcessTask和SinTask的生命周期。
进一步地,在本发明的一个实施例中,所述模式管理模块进一步用于通过SchemaRegistry注册数据源端和目的端的schema,并在数据库中存储二者的对应关系。
进一步地,在本发明的一个实施例中,所述数据抽取模块进一步用于从数据源周期性或者持续性地获取所述数据,并发送到所述数据处理模块,并将schema信息注册到Schema Registry。
进一步地,在本发明的一个实施例中,所述数据处理模块进一步用于基于KafkaStreams实现,其中,ETL任务进程从Kafka消费待处理主题数据,并进行清洗、转换处理后将数据发送回Kafka。
进一步地,在本发明的一个实施例中,所述数据加载模块进一步用于从所述Schema Registry读取源端schema,将字节类型的Kafka消息进行反序列化,获得Avro类型的Record,并从系统数据库读取目的端schema和源端schema的映射关系,封装成目的端的记录写入目的存储系统。
为达到上述目的,本发明另一方面实施例提出了一种基于Web和Kafka的分布式数据集成方法,包括以下步骤:为用户提供控制台,以对集群进行Kafka Broker管理、KafkaTopic管理、Connector管理和ETL任务管理,使得所述用户以Web页面操作的形式进行ETL任务的创建和监控;将Kafka、ETL Job、Connector、Configuration、Schema的操作进行API封装,以提供管理服务API;管理数据源端的schema和目的地端的schema及其映射;将所述管理数据源端的数据抽取数据到消息队列;对所述数据进行清洗和转换;将所述数据从所述消息队列加载到目的地。
本发明实施例的基于Web和Kafka的分布式数据集成方法,基于Web的数据集成平台模块划分为控制台模块、服务管理模块、模式管理模块、数据抽取模块、数据处理模块、数据加载模块,并设计模块之间的相互依赖和作用关系,将数据集成过程系统化、流程化标准化;并设计和实现管理服务模块中的五大功能组件Kafka Manager、ETL Job Manager、Connector Manager、Config Manager和Schema Manager,基于zookeeper和DB结合的配置管理、基于SchemaRegistry和DB结合的异构数据源schema映射方法;同时使用Kafkastreams编写ETL中Transform部分的程序,将数据抽取模块、数据加载模块与数据处理的模块的程序分离,更易于程序的组合和扩展,同时使得ETL过程的数据处理能力更强大;从而使得基于Kafka Connect创建ETL实例的过程操作更简单、管理更规范、配置更灵活,并且提出的实时分布式ETL方法使得ETL程序耦合度低、容错性高,易于扩展和集成。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于Web和Kafka的分布式数据集成系统的结构示意图;
图2为根据本发明实施例的基于Web和Kafka的分布式数据集成系统的工作流程图;
图3为根据本发明实施例的基于Web和Kafka的分布式数据集成系统的架构图;
图4为根据本发明实施例的ETL功能相关的三大模块之间的逻辑关系示意图;
图5为根据本发明实施例的数据抽取模块和数据加载模块内部组件的逻辑连接示意图;
图6为根据本发明实施例的数据处理架构示意图;
图7为根据本发明实施例的基于Web和Kafka的分布式数据集成方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于Web和Kafka的分布式数据集成系统及方法,首先将参照附图描述根据本发明实施例提出的基于Web和Kafka的分布式数据集成系统。
图1是本发明一个实施例的基于Web和Kafka的分布式数据集成系统的结构示意图。
如图1所示,该基于Web和Kafka的分布式数据集成系统10包括:控制台模块100、管理服务模块200、模式管理模块300、数据抽取模块400、数据处理模块500和数据加载模块600。
其中,控制台模块100用于为用户提供控制台,以对集群进行Kafka Broker管理、Kafka Topic管理、Connector管理和ETL任务管理,使得用户以Web页面操作的形式进行ETL任务的创建和监控;管理服务模块200用于将Kafka、ETL Job、Connector、Configuration、Schema的操作进行API封装,以为控制台模块提供管理服务API;模式管理模块300用于管理数据源端的schema和目的地端的schema及其映射;数据抽取模块400用于将管理数据源端的数据抽取数据到消息队列;数据处理模块500用于对数据进行清洗和转换;数据加载模块600用于将数据从消息队列加载到目的地。本发明实施例的系统10使得基于Kafka Connect创建ETL实例的过程操作更简单、管理更规范、配置更灵活,并且提出的实时分布式ETL方法使得ETL程序耦合度低、容错性高,易于扩展和集成。
可以理解的是,如图2所示,本发明实施例的系统10包括控制台模块100、服务管理模块200、模式管理模块300、数据抽取模块400、数据处理模块500和数据加载模块600,其中,
(1)控制台模块100提供基于Web的控制台管理,包括KafkaBroker管理和KafkaTopic管理、Connector管理、ETL任务管理。基于控制台用户可以在Web页面上操作进行ETL任务的创建和监控;
(2)服务管理模块200将Kafka、ETL Job、Connector、Configuration、Schema的操作进行API封装,向上为控制台模块提供管理服务API,通过控制台模块100可管理ETLJob中SourceTask、ProcessTask和SinTask的生命周期;
(3)模式管理模块300用于管理数据源端的schema和目的地端的schema及其映射,模式管理模块300通过SchemaRegistry注册数据源端和目的端的schema,并在数据库中存储二者的对应关系;
(4)数据抽取模块400负责将数据源端的数据抽取数据到消息队列,数据源包括关系型数据库(如Mysql、Oracle)、Nosql数据库、文件等;该模块的sourceconnector组件从数据源周期性或者持续性地获取数据并发送到数据处理模块,并将schema信息注册到SchemaRegistry;
(5)数据处理模块500由ETL任务进程和消息队列Kafka组成,负责数据清洗和转换。该模块的ETL任务基于KafkaStreams实现,ETL任务进程从Kafka消费待处理主题数据,进行清洗、转换处理后将数据发送回Kafka;
(6)数据加载模块600负责将数据从消息队列加载到目的地。数据加载时从SchemaRegistry读取源端schema,将字节类型的Kafka消息进行反序列化,获得Avro类型的Record,然后从系统数据库读取目的端schema和源端schema的映射关系,封装成目的端的记录写入目的存储系统。
进一步而言,本发明实施例将结合如图3所示的系统架构图概要地介绍系统的工作流程,如系统架构图所示,系统分为三部分:WebUIConsole、ManagerSystem和ETLWorker。WebUI Console面向用户,提供易用的的、操作简单的、规范化的ETL任务创建和管理操作;Manager System将Kafka集群、ETLJob的管理、Connector的管理、Configuration的管理、Schema的管理进行服务封装,并将ETL Job、Connector、Configuration、Schema的信息持久化到系统的数据库;ETLWorker是分布式的ETL任务执行器,由分布式允许的SourceTask、ProcessTask、SinkTask组成。
基于系统架构图,简单的说明基于WebUI Console创建ETL任务的工作流程:步骤一,配置Kafka集群信息;步骤二、创建Kafka Topic备用;步骤三,选择已有的或者创建新的source connector;步骤四,选择或创建数据处理程序;步骤五,选择已有的或者创建新的sinkconnector;步骤六,获取source schema和sink schema,定义映射关系。其中步骤四为可选步骤。
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下对本发明进行进一步详细描述。以下从两个方面进行详细介绍:一方面介绍基于Web的实时数据集成系统,另一方面介绍基于Kafka的构建分布式实时ETL任务的方法,具体如下:
首先,本发明一方面提出了一种的基于Web的实时数据集成系统,包括控制台模块100和管理服务模块200。
(1)控制台模块100
控制台模块100提供给用户Web控制台对集群进行管理,包括Kafka Broker管理和Kafka Topic管理、Connector管理、ETL任务管理。提供控制台,用户可以以Web页面操作的形式进行ETL任务的创建和监控。以下通过任务配置员通过Web页面创建ETL任务的流程来介绍控制台模块。
ETL任务配置员通过Web前端操作,创建ETL任务的步骤如下:
步骤一,在Kafka Broker管理页面,配置Kafka集群信息;
步骤二、在Kafka Topic管理页面创建数据源端和目的端的Kafka主题,如果数据抽取和数据加载中间不需要进行数据处理转换,则源端和目的端可以选择使用同一个主题;
步骤三,选择或创建一个源端数据连接器(source connector),如需创建新的数据源连接,则在Connector管理页面选择新建source connector,完成相应的配置并提交创建;
步骤四,选择或创建数据处理程序,如需创建新的处理程序,则在任务管理页面选择新建数据处理程序,在线编写KSQL脚本,提交运行。数据处理程序将消费指定源端的Kafka Topic数据完成处理,并写回指定的目的端Kafka Topics。
步骤五,选择或创建一个目的端数据连接器(source connector),如需创建新的目的端数据连接,则在Connector管理页面选择新建sinkconnector,完成相应的配置并创建;
步骤六,获取source schema和sink schema,定义映射关系。
(2)管理服务模块200
管理服务模块200提供Kafka、ETL Job、Connector、Configuration、Schema的操作管理服务,对应的五大功能组件分别是KafkaManager、ETL Job Manager、ConnectorManager、ConfigManager和SchemaManager。下面分别对这几个功能组件进行介绍。
KafkaManager提供对KafkaBroker和Topic管理的服务API。KafkaBrokers和KafkaTopic相关服务是由Zookeeper进行管理的,Kafka Manager基于ZKClient获取KafkaBrokers和KakfaTopic的相关信息,包括topic注册信息、partition状态信息、broker注册信息等。
ETL Job Manager提供ETL Job的基本信息查看和状态监控,基本信息包括任务名称、数据源连接器ID、目的端连接器ID、处理程序ID,运行状态包括抽取进度、处理进度、加载进度、任务状态。
Connector Manager提供对Connector管理的服务API。Connector的管理包括两个方面,一方面基于系统数据库存储connector的基本信息:connector的名称、连接类、最大任务数、连接URL等;另一方面是基于Kafka Connect提供的RESTAPI对connector进行实时状态监控,向用户提供Connector和Task的一系列实时信息管理功能。
ConfigManager用于管理Kafka集群、Connector的配置。该服务监听zookeeper中的配置变化并持久化到系统数据库;当用户再Web页面修改相关配置,提交修改配置修改后发布到zookeeper中并持久化到数据库。
Schema Manager提供数据源的Schema管理服务。Schema Registry以Kafak作为底层存储将Avro Schema存储到指定的Topic,并以RESTAPI提供Schema的添加、查看、删除、更新操作。源端schema和目的端schema的映射关系存储到系统数据库的schema_map表中,该表的字段如表1所示。
表1
进一步地,本发明另一方面提出了一种的基于Kafka的分布式实时ETL方法,包括数据抽取、加载地方法和数据处理地方法。下面将详细介绍平台基于Kafka的分布式实时ETL方法实现的技术细节,其中,ETL功能相关的三大模块之间的逻辑关系如图4所示:
数据抽取模块400的数据连接器从数据源抽取数据发送到Kafka组件;数据处理模块500中的ETL任务进程从Kafka消费数据,进行清洗、过滤、转换等处理逻辑后,将结果数据发送回Kafka;数据加载模块600的数据连接器读取Kafka对应主题数据,并写入到目的端存储系统。
(1)数据抽取、加载方法
数据抽取模块通过数据源连接器完成数据从数据源到Kafka消息队列的抽取;数据加载模块通过目的地连接器完成数据Kafka消息队列到目的地的加载。数据源连接器和目的地连接器基于Kafka Connect实现,包括SourceConnector、SourceConverter、SinkConnector、SinkConverter。图5展示了该数据抽取模块和数据加载模块内部组件的逻辑连接。
由图5可知,通过数据源连接器、Kafka消息队列、目的地连接器完成了数据源到目的地的数据管道连接。数据连接器是基于Kafka connect实现的,对于不同类型的数据源和目的地需要实现相应的SourceConnector类(继承自org.apache.kafka.connect.source.SourceConnector)和SinkConnector(继承自org.apache.kafka.connect.source.SourceConnector)。
Source Converter和SinkConverter处理序列化和反序列化。SourceConnector抽取数据将源格式转换为ConnectAPI的内部格式,Source Converter将内部格式序列化为Avro格式存储到Kafka。目的的连接器从Kafka消费Avro格式的字节流数据,通过SinkConverter反序列化为ConnectAPI的内部格式,并通过SinkConnector将内部格式转换为目的格式。
(2)数据处理方法
数据处理模块500通过Kafka提供的客户端类库kafka streams编写流处理程序,对Kafka的数据消费,处理完成后并写回Kafka。图6展示了基于kafka streams进行数据处理的架构图。
根据图6举例解释基于Kafkastreams对Kafka数据进行处理的原理和流程。Kafkastreams处理一个主题名为topicA的消息时,假设topicA的分区topic partition数为n,则创建n个consumer进行数据摄取并产生n个streampartitions,每一个streampartition由若干个tasks进行处理,tasks的拆分基于程序中定义的processor topology完成。
当一个应用实例出现异常并终止运行,该实例所承载的tasks将自动地重新分配到其他运行地实例中,重新分配不会影响task和分区的对应关系。基于这种任务分配机制和Kafka分区的高可用和可复制特性,可以构建并行度高、可用性高的分布式流处理程序。
综上,本发明实施例提出的基于Web和Kafka的分布式数据集成系统,基于Web的数据集成平台模块划分为控制台模块、服务管理模块、模式管理模块、数据抽取模块、数据处理模块、数据加载模块,并设计模块之间的相互依赖和作用关系,将数据集成过程系统化、流程化标准化;并设计和实现管理服务模块中的五大功能组件Kafka Manager、ETL JobManager、Connector Manager、Config Manager和Schema Manager,基于zookeeper和DB结合的配置管理、基于SchemaRegistry和DB结合的异构数据源schema映射方法;同时使用Kafkastreams编写ETL中Transform部分的程序,将数据抽取模块、数据加载模块与数据处理的模块的程序分离,更易于程序的组合和扩展,同时使得ETL过程的数据处理能力更强大;从而使得基于Kafka Connect创建ETL实例的过程操作更简单、管理更规范、配置更灵活,并且提出的实时分布式ETL方法使得ETL程序耦合度低、容错性高,易于扩展和集成。
其次参照附图描述根据本发明实施例提出的基于Web和Kafka的分布式数据集成方法。
图7是本发明一个实施例的基于Web和Kafka的分布式数据集成方法的流程图。
如图7所示,该基于Web和Kafka的分布式数据集成方法包括以下步骤:
在步骤S701中,为用户提供控制台,以对集群进行Kafka Broker管理、KafkaTopic管理、Connector管理和ETL任务管理,使得用户以Web页面操作的形式进行ETL任务的创建和监控;
在步骤S702中,将Kafka、ETL Job、Connector、Configuration、Schema的操作进行API封装,以提供管理服务API;
在步骤S703中,管理数据源端的schema和目的地端的schema及其映射;
在步骤S704中,将管理数据源端的数据抽取数据到消息队列;
在步骤S705中,对数据进行清洗和转换;
在步骤S706中,将数据从消息队列加载到目的地。
需要说明的是,前述对基于Web和Kafka的分布式数据集成系统实施例的解释说明也适用于该实施例的基于Web和Kafka的分布式数据集成方法,此处不再赘述。
根据本发明实施例提出的基于Web和Kafka的分布式数据集成方法,基于Web的数据集成平台模块划分为控制台模块、服务管理模块、模式管理模块、数据抽取模块、数据处理模块、数据加载模块,并设计模块之间的相互依赖和作用关系,将数据集成过程系统化、流程化标准化;并设计和实现管理服务模块中的五大功能组件Kafka Manager、ETL JobManager、Connector Manager、Config Manager和Schema Manager,基于zookeeper和DB结合的配置管理、基于SchemaRegistry和DB结合的异构数据源schema映射方法;同时使用Kafkastreams编写ETL中Transform部分的程序,将数据抽取模块、数据加载模块与数据处理的模块的程序分离,更易于程序的组合和扩展,同时使得ETL过程的数据处理能力更强大;从而使得基于Kafka Connect创建ETL实例的过程操作更简单、管理更规范、配置更灵活,并且提出的实时分布式ETL方法使得ETL程序耦合度低、容错性高,易于扩展和集成。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种基于Web和Kafka的分布式数据集成系统,其特征在于,包括:
控制台模块,用于为用户提供控制台,以对集群进行Kafka Broker管理、Kafka Topic管理、Connector管理和ETL任务管理,使得所述用户以Web页面操作的形式进行ETL任务的创建和监控;
管理服务模块,用于将Kafka、ETL Job、Connector、Configuration、Schema的操作进行API封装,以为所述控制台模块提供管理服务API;
模式管理模块,用于管理数据源端的schema和目的地端的schema及其映射;
数据抽取模块,用于将所述管理数据源端的数据抽取数据到消息队列;
数据处理模块,用于对所述数据进行清洗和转换;以及
数据加载模块,用于将所述数据从所述消息队列加载到目的地。
2.根据权利要求1所述的系统,其特征在于,所述控制台模块进一步用于:
在Kafka Broker管理页面配置Kafka集群信息;
在所述Kafka Topic管理页面创建数据源端和目的端的Kafka主题;
选择或创建一个源端数据连接器;
选择或创建数据处理程序;
选择或创建一个目的端数据连接器。
3.根据权利要求1所述的系统,其特征在于,所述管理服务模块进一步用于提供对KafkaBroker和Topic管理的服务API,提供ETL Job的基本信息查看和状态监控,提供对Connector管理的服务API,管理Kafka集群、Connector的配置,提供数据源的Schema管理服务,以管理ETLJob中SourceTask、ProcessTask和SinTask的生命周期。
4.根据权利要求1所述的系统,其特征在于,所述模式管理模块进一步用于通过SchemaRegistry注册数据源端和目的端的schema,并在数据库中存储二者的对应关系。
5.根据权利要求1所述的系统,其特征在于,所述数据抽取模块进一步用于从数据源周期性或者持续性地获取所述数据,并发送到所述数据处理模块,并将schema信息注册到Schema Registry。
6.根据权利要求5所述的系统,其特征在于,所述数据处理模块进一步用于基于KafkaStreams实现,其中,ETL任务进程从Kafka消费待处理主题数据,并进行清洗、转换处理后将数据发送回Kafka。
7.根据权利要求6所述的系统,其特征在于,所述数据加载模块进一步用于从所述Schema Registry读取源端schema,将字节类型的Kafka消息进行反序列化,获得Avro类型的Record,并从系统数据库读取目的端schema和源端schema的映射关系,封装成目的端的记录写入目的存储系统。
8.一种基于Web和Kafka的分布式数据集成方法,其特征在于,包括以下步骤:
为用户提供控制台,以对集群进行Kafka Broker管理、Kafka Topic管理、Connector管理和ETL任务管理,使得所述用户以Web页面操作的形式进行ETL任务的创建和监控;
将Kafka、ETL Job、Connector、Configuration、Schema的操作进行API封装,以提供管理服务API;
管理数据源端的schema和目的地端的schema及其映射;
将所述管理数据源端的数据抽取数据到消息队列;
对所述数据进行清洗和转换;以及
将所述数据从所述消息队列加载到目的地。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911297173.3A CN111061715B (zh) | 2019-12-16 | 2019-12-16 | 基于Web和Kafka的分布式数据集成系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911297173.3A CN111061715B (zh) | 2019-12-16 | 2019-12-16 | 基于Web和Kafka的分布式数据集成系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061715A CN111061715A (zh) | 2020-04-24 |
CN111061715B true CN111061715B (zh) | 2022-07-01 |
Family
ID=70301223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911297173.3A Active CN111061715B (zh) | 2019-12-16 | 2019-12-16 | 基于Web和Kafka的分布式数据集成系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061715B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625583B (zh) * | 2020-05-21 | 2022-07-29 | 广西电网有限责任公司 | 业务数据处理方法、装置、计算机设备和存储介质 |
CN111813806B (zh) * | 2020-06-01 | 2024-04-19 | 北京百卓网络技术有限公司 | 一种基于策略服务实现etl系统及其方法 |
CN112181965A (zh) * | 2020-09-29 | 2021-01-05 | 成都商通数治科技有限公司 | 一种基于mysql大数据清洗系统及其写入瓶颈的方法 |
CN112667472B (zh) * | 2020-12-28 | 2022-04-08 | 武汉达梦数据库股份有限公司 | 一种数据源连接状态监控装置与方法 |
CN113010512A (zh) * | 2021-02-24 | 2021-06-22 | 上海中通吉网络技术有限公司 | 基于Flink的实时数据处理方法、平台和设备 |
CN112905635A (zh) * | 2021-03-11 | 2021-06-04 | 深圳市分期乐网络科技有限公司 | 一种业务的处理方法、装置、设备及存储介质 |
CN112860412B (zh) * | 2021-03-12 | 2023-10-20 | 网易(杭州)网络有限公司 | 业务数据处理方法、装置、电子设备及存储介质 |
CN113111107B (zh) * | 2021-04-06 | 2023-10-13 | 创意信息技术股份有限公司 | 一种数据综合接入系统及方法 |
CN113190528B (zh) * | 2021-04-21 | 2022-12-06 | 中国海洋大学 | 一种并行分布式大数据架构构建方法及系统 |
CN113220757A (zh) * | 2021-04-24 | 2021-08-06 | 上海钢银科技发展有限公司 | 实时数仓自动etl方法、系统、设备及计算机存储介质 |
CN113222223B (zh) * | 2021-04-24 | 2023-02-21 | 上海钢银科技发展有限公司 | 实时数仓的风控联动预警方法、系统、设备及存储介质 |
CN114553866B (zh) * | 2022-01-19 | 2024-09-17 | 深圳力维智联技术有限公司 | 全量数据的接入方法、装置以及计算机可读存储介质 |
CN114553970A (zh) * | 2022-02-07 | 2022-05-27 | 上海数依数据科技有限公司 | 一种基于Kafka分布式消息处理方法及数据总线系统 |
CN114816583B (zh) * | 2022-05-31 | 2024-03-19 | 以萨技术股份有限公司 | 基于Flink的数据自动化处理方法、装置和电子设备 |
CN118377825A (zh) * | 2024-06-24 | 2024-07-23 | 山东浪潮数字商业科技有限公司 | 一种异构数据平台流数据序列化转换的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271475A (zh) * | 2008-04-02 | 2008-09-24 | 北京邮电大学 | 一种商业智能系统 |
CN104391989A (zh) * | 2014-12-16 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种分布式etl一体机系统 |
CN108846076A (zh) * | 2018-06-08 | 2018-11-20 | 山大地纬软件股份有限公司 | 支持接口适配的海量多源异构数据etl方法及系统 |
CN109189589A (zh) * | 2018-08-14 | 2019-01-11 | 北京博睿宏远数据科技股份有限公司 | 一种分布式大数据计算引擎及架构方法 |
-
2019
- 2019-12-16 CN CN201911297173.3A patent/CN111061715B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271475A (zh) * | 2008-04-02 | 2008-09-24 | 北京邮电大学 | 一种商业智能系统 |
CN104391989A (zh) * | 2014-12-16 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种分布式etl一体机系统 |
CN108846076A (zh) * | 2018-06-08 | 2018-11-20 | 山大地纬软件股份有限公司 | 支持接口适配的海量多源异构数据etl方法及系统 |
CN109189589A (zh) * | 2018-08-14 | 2019-01-11 | 北京博睿宏远数据科技股份有限公司 | 一种分布式大数据计算引擎及架构方法 |
Non-Patent Citations (1)
Title |
---|
基于Web服务的数据集成框架;王仲玉等;《计算机辅助工程》;20070330(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111061715A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061715B (zh) | 基于Web和Kafka的分布式数据集成系统及方法 | |
EP3889774A1 (en) | Heterogeneous computing-based task processing method and software-hardware framework system | |
US7844959B2 (en) | Runtime optimization of distributed execution graph | |
CN110716748B (zh) | 业务处理方法、装置、计算机可读介质及电子设备 | |
CN111694888A (zh) | 基于微服务架构的分布式etl数据交换系统及方法 | |
US8024529B2 (en) | Providing shared memory in a distributed computing system | |
KR20210005043A (ko) | 입력 및 출력 스키마 매핑 | |
CN109117252B (zh) | 基于容器的任务处理的方法、系统及容器集群管理系统 | |
CN102880503A (zh) | 数据分析系统及数据分析方法 | |
CN104657497A (zh) | 一种基于分布式计算的海量用电信息并行计算系统及方法 | |
CN102937964B (zh) | 基于分布式系统的智能数据服务方法 | |
CN102983996A (zh) | 一种高可用集群资源管理的动态配置方法与系统 | |
CN110569113A (zh) | 分布式任务的调度方法及系统、计算机可读存储介质 | |
CN116302574B (zh) | 一种基于MapReduce的并发处理方法 | |
CN112379884A (zh) | 基于Spark和并行内存计算的流程引擎实现方法及系统 | |
CN113660231A (zh) | 一种报文解析方法、装置、设备和存储介质 | |
WO2018177335A1 (zh) | 一种进行资源调度的方法和装置 | |
CN112416980B (zh) | 数据业务处理方法、装置及设备 | |
CN113626869A (zh) | 数据处理方法、系统、电子设备以及存储介质 | |
CN109783253B (zh) | 基于kafka的分布式消息数据总线 | |
CN116302457A (zh) | 一种云原生工作流引擎实现方法、系统、介质及电子设备 | |
CN110955602A (zh) | 一种基于资源共享的分布式嵌入式软件测试系统 | |
CN112148546A (zh) | 电力系统静态安全分析并行计算系统及方法 | |
CN115617480A (zh) | 一种任务调度方法、装置、系统及存储介质 | |
US9235445B2 (en) | Process mapping parallel computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |