CN114428818A - 数据处理系统、数据处理方法、可读存储介质 - Google Patents
数据处理系统、数据处理方法、可读存储介质 Download PDFInfo
- Publication number
- CN114428818A CN114428818A CN202210108019.2A CN202210108019A CN114428818A CN 114428818 A CN114428818 A CN 114428818A CN 202210108019 A CN202210108019 A CN 202210108019A CN 114428818 A CN114428818 A CN 114428818A
- Authority
- CN
- China
- Prior art keywords
- data
- etl
- cluster
- task
- component
- 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.)
- Pending
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/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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种数据处理系统、数据处理方法、可读存储介质。该系统与设置有数据ETL组件和kafka组件的多个数据集群通信,用于向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换。本实施例中通过ETL组件和kafka组件可以实现1个源集群到1个目标集群以及多个源集群到多个目标集群之间的数据ETL任务,可以满足数据ETL任务对于多维度数据的需求,可以提高数据交换效率。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据处理系统、数据处理方法、可读存储介质。
背景技术
目前,各行各业会形成不同的数据中心,并且各个数据中心相互隔离。当需求两个数据中心的数据时可以将一个数据中心的数据同步到另一个数据,如相关技术中数据ETL(Extract-Transform-Load,提取-转换-加载)转换工具可以从一个数据中心的集群内抽取数据并同步到另一个数据中心的集群内。实际应用中,有些需求依赖一个维度数据无法实现,即这些需求需要依赖多个维度的数据实现,因此只有将多个数据中心的数据汇聚在一起时,才能进行数据融合与协同计算。然而,每个数据中心的数据量如此之大,将一个数据中心的数据完全存储到另一个数据中心的方式并不现实,尤其是需求涉及到多个数据中心的数据时上述方案更无法实现。
发明内容
本公开提供一种数据处理系统、数据处理方法、可读存储介质,以解决相关技术的不足。
根据本公开实施例的第一方面,提供一种数据处理系统,所述系统与设置有数据ETL组件和kafka组件的多个数据集群通信;所述系统用于向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换。
可选地,所述源集群包括以下至少一种:Mysql数据集群、PostgresSql数据集群、Clickhouse数据集群、Mongodb数据集群、Hdfs数据集群、ElasticSearch数据集群和Kafka数据集群;
所述目标集群包括以下至少一种:Mysql数据集群、PostgresSql数据集群、Clickhouse数据集群、Mongodb数据集群、Hdfs数据集群、ElasticSearch数据集群、Redis数据集群和Kafka数据集群。
可选地,所述系统用于向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换,包括:
所述数据ETL任务对应的第一数据ETL组件从源集群读取所述数据ETL任务所需要的目标数据,并输出到所述源集群中的kafka组件;
所述数据ETL任务对应的第二数据ETL组件从所述源集群中的kafka组件读取所述目标数据,并输出到所述目标集群中的kafka组件;
所述数据ETL任务对应的第三数据ETL组件从所述目标集群中的kafka组件读取所述目标数据,并输出到所述目标集群。
可选地,所述系统还用于:
从所述第一数据ETL组件、所述第二数据ETL组件和所述第三数据ETL组件获取任务信息,并显示所述任务信息,所述任务信息用于使维护人员定位异常任务;
响应于处理所述异常任务的操作,恢复所述异常任务对应的数据ETL任务。
可选地,所述kafka组件对所述目标数据进行持久化处理。
可选地,所述源集群中不同的业务数据可选用不同的主题topic实现。
可选地,所述kafka组件的节点可随着主题topic数量的增加而横向扩展。
可选地,kafka组件设置有多个消费组,每个消费组对应至少一个数据ETL任务,
可选地,所述系统还用于:
当检测到跨集群的数据ETL任务时生成审核任务,并发送给所述审核任务对应的目标用户;
响应于检测到目标用户通过所述审核任务的操作,生成所述数据ETL任务并配置到所述数据ETL组件。
可选地,所述系统还用于:
获取并显示所述数据ETL任务的任务日志,以使用户查询各所述数据ETL任务在各阶段的状态信息。
可选地,所述系统还用于:
当检测到表示关闭或暂停数据ETL任务的操作,控制所述数据ETL任务对应的数据ETL组件暂停从kafka组件读入数据并且继续输出数据;
当数据输出完成后,控制所述数据ETL任务对应的数据ETL组件关闭或暂停数据ETL任务。
根据本公开实施例的第二方面,提供一种数据处理方法,包括:
向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换。
根据本公开实施例的第三方面,提供一种数据处理系统,包括至少一个处理装置和至少一个存储装置;
所述至少一个存储装置,用于存储所述至少一个处理装置可执行的计算机程序;
其中,所述至少一个处理器装置配置为执行所述至少一个存储器中的计算机程序,以实现如第二方面所述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如第二方面所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本公开实施例提供的方案中,数据处理系统可以与设置有数据ETL组件和kafka组件的多个数据集群通信,并用于向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换。本实施例中通过ETL组件和kafka组件可以实现1个源集群到1个目标集群以及多个源集群到多个目标集群之间的数据ETL任务,可以满足数据ETL任务对于多维度数据的需求,可以提高数据交换效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1A是根据一示例性实施例示出的一种生产制造所用数据集群的框图。
图1B是根据一示例性实施例示出的一种智慧城市所用数据集群的框图。
图2是根据一示例性实施例示出的一种数据处理系统配置集群间数据交换的框图。
图3是根据一示例性实施例示出的一种分三阶段实现数据交换任务的框图。
图4是根据一示例性实施例示出的一种对数据ETL任务进行审核的框图。
图5是根据一示例性实施例示出的一种数据ETL任务状态的示意图。
图6是根据一示例性实施例示出的一种设置外部请求时数据交换的流程图。
图7是根据一示例性实施例示出的一种数据处理系统的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
为解决上述技术问题,本公开实施例提供了一种数据处理系统,该系统可以与设置有数据ETL组件和kafka组件的多个数据集群通信。参见图1A,数据集群100包括显示装置200、数据处理装置300和分布式存储装置400。数据处理装置300分别与显示装置200和分布式存储装置400连接。
需要说明的是,数据集群100可以适用于不同的场景,例如生产制造、质量检测、交通信息、政务管理、智能城市等,相应的原始数据与各场景相关。为方便描述,本公开以生产设备的原始数据,其存储在相应的生产制造系统中。
继续参见图1A,分布式存储装置400包括数据湖层、数据仓库层(HIVE)和数据集市(HBASE)。用户可以通过显示装置200上的交互界面输入需要查询的参数或者配置的数据ETL任务,显示装置200还可以通过API接口访问数据集市。数据处理装置300可以通过API接口访问数据集市,从而将从数据集市获得的数据处理后发送给显示装置200进行显示。
继续参见图1A,数据集群100包括具有不同内容和/或存储结构的多组数据,并存储到分布式存储装置400之内。在一些实施例中,分布式存储装置400之内的数据ETL组件(为一段程序代码,或者一个功能模块,或者一个硬件电路,不作限定)可以将原始数据从多个数据源抽取到数据集群中,形成第一数据层(例如,数据湖层DL),以降低对产品生产设备和生产制造系统的负载,便于后续分析设备的数据读取。其中数据源可以是生产设备的原始数据,其存储在相应的生产制造系统中,如YMS(Yield Management System,良率管理系统)、FDC(Fault Detection&Classification,错误侦测及分类)、MES(ManufacturingExecution System,制造执行系统)等系统的关系型数据库(如Oracle、Mysql等)中。上述数据ETL组件是指被配置为提供诸如抽取、转换或加载数据的功能的计算机程序逻辑。在一些实施例中,数据ETL组件被存储在分布式网络中的一个或多个存储节点上,加载到分布式网络中的一个或多个存储器中,并且由分布式网络中的一个或多个处理器执行。
分布式存储装置400中的数据湖层是用于存储任何结构或非结构数据的集中式HDFS(Hadoop Distributed File System,分布式文件系统)或KUDU数据库。可选地,数据湖被配置为存储由数据ETL组件从多个数据源DS抽取的第一组数据。可选地,第一组数据和原始数据具有相同的内容。原始数据的维度和属性被保存在第一组数据中。在一些实施例中,数据湖存储的第一组数据包括动态更新的数据。可选地,动态更新的数据包括基于Kudu的数据库实时更新的数据,或在Hadoop分布式文件系统中周期性更新的数据。在一个示例中,存储在Hadoop分布式文件系统中周期性更新的数据存储在基于Hive的存储器中。在一个示例中,动态更新的数据还包括实时更新数据,实时更新表示分钟级以下,而不包括分钟的更新,以区别于上述表示分钟级以上且包括分钟更新的周期性更新。
在一些实施例中,分布式存储装置400还包括第二数据层,例如数据仓库。数据仓库包括内部存储系统,该内部存储系统具有以抽象方式提供数据而不暴露文件系统的特点,其中抽象方式可以包括表格格式或视图格式。数据仓库可以基于Hive实现。此时,数据ETL组件可以对第一组数据进行抽取、清洗、转换或加载等处理,以形成第二组数据。可选地,第一组数据经过清洗和标准化后可以形成第二组数据。在一些实施例中,第二组数据还包括统计数据,例如检测点计数、检测点参数值的最大值、最小值和平均值、缺陷占比等。
在一些实施例中,分布式存储装置400包括第三数据层,例如至少一个数据集市。可选地,数据集市是存储可用于计算处理的NoSQL类型的数据库。可选地,数据集市基于Hbase实现。数据ETL组件还可以将第二数据进行转换以形成第三组数据。
本领域技术人员可以理解的是,第一组数据、第二组数据、第三组数据、可以基于一张或多张数据表的形式进行数据的存储和查询。
在一些实施例中,第二组数据转换形成第三组数据的过程,可以是将数据仓库中的数据(hive表)导入到数据集市中(Hbase表)。在一个示例中,在数据集市中生成第一表,并且在数据仓库中生成第二表(例如,外部表)。第一表和第二表被配置为是同步的,以便当数据被写入第二表时,第一表将被同时更新以包括对应的数据。在另一示例中,Hadoop中的MapReduce模块可被用作分布式计算处理模块,以用于读取被写到数据仓库中的数据。然后,可以将写入到数据仓库中的数据写入到数据集市上。在一个示例中,可以使用基于HBase API将数据写入数据集市。在另一示例中,MapReduce模块一旦读取被写到数据集市上的数据,就可以生成HFile文件,批量加载(Bulkloaded)到数据集市上。
在一些实施例中,描述了数据集群的各种组件之间的数据流、数据转换和数据结构。在一些实施例中,由多个数据源DS收集的原始数据包括生产履历数据、参数数据或检测参数数据中的至少一个。原始数据可选地可以包含维度信息(时间、工厂、设备、操作者、Map、腔室、卡槽等)和属性信息(工厂位置、设备使用年限、坏点数、异常参数、能耗参数、处理持续时间等)。
生产履历数据信息包含产品(例如面板或玻璃)在制造期间经过的特定处理的信息。产品在制造期间经过的特定处理的示例包括工厂、工序、站点、设备、腔室、卡槽和操作者。
参数数据包含产品(例如面板或玻璃)在制造期间经受的特定环境参数及其变化的信息。产品在制造期间经受的特定环境参数及其变化的示例包括环境颗粒条件、设备温度和设备压力等。
检测参数数据包括基于检测站点检测到的产品的电阻、膜厚、阈值电压、反映图形偏移度、反向截止电流等。
在一个示例中,数据集群100将各种业务数据(例如,与半导体电子器件制造相关的数据)集成到多个数据源DS(例如,Oracle数据库)中。数据ETL组件例如使用数栈工具、SQOOP工具、kettle工具、Pentaho工具或DataX工具,将来自多个数据源的数据抽取到数据湖中。然后,数据被清洗、转换并加载到数据仓库中。数据仓库DW和数据集市DMT利用诸如Kudu、Hive和Hbase的工具存储大量数据和分析结果。
在制造过程的各个阶段中生成的信息由各种传感器和检查设备获得,并且随后被保存在多个数据源DS中,或者由对传感器和检测设备获得数据进行计算或分析,此时计算结果和分析结果也被保存在多个数据源DS中。通过数据ETL组件实现数据集群的各个部件之间的数据同步(数据的流动)。例如,数据ETL组件被配置为获得同步过程的参数配置模板,包括网络许可和数据库端口配置、流入数据库名称和表名称、流出数据库名称和表名称、字段对应关系、任务类型、调度周期等。数据ETL组件基于参数配置模板配置同步过程的参数。数据ETL组件同步数据,并基于过程配置模板清洗同步的数据。数据ETL组件通过SQL语句来清洗数据,以移除空值、移除离群值,并建立相关表之间的相关性。数据同步任务包括多个数据源和分布式存储装置400之间的数据同步,以及分布式存储装置400的各个层(例如,数据湖、数据仓库、或数据集市)之间的数据同步。
在另一示例中,分布式存储装置400可以实时地或离线地完成到数据湖的数据抽取。在离线模式中,周期性地调度数据抽取任务。可选地,在离线模式中,所抽取的数据可以存储在基于Hadoop分布式文件系统的存储装置(例如,基于Hive的数据库)中。在实时模式中,数据抽取任务可以由OGG(Oracle GoldenGate)结合Apache Kafka来执行。可选地,在实时模式中,所抽取的数据可以存储在基于Kudu的数据库中。OGG读取多个数据源(例如,Oracle数据库)中的日志文件,以获得添加/删除数据。在一个示例中,前端接口(如API接口)可基于存储在基于Kudu的数据库中的数据来执行显示、查询和/或分析。在另一示例中,前端接口可基于存储在基于Kudu的数据库、Hadoop分布式文件系统(例如,基于ApacheHiveT的数据库)和/或基于Hbase的数据库中的任何一个或任何组合中的数据来执行显示、查询和/或分析。在另一示例中,(例如,在几个月内生成的)短期数据被存储在基于Kudu的数据库中,而长期数据(例如,在所有周期中生成的全部数据)被存储在Hadoop分布式文件系统(例如,基于Hive的数据库)中。在另一示例中,数据ETL组件被配置为将存储在基于Kudu的数据库中的数据抽取到Hadoop分布式文件系统(例如,基于Hive的数据库)中。
通过组合来自各种业务系统(MDW、YMS、MES、FDC等)的数据,基于数据湖来构建数据仓库。根据任务执行时间来划分从数据湖中抽取的数据,所述任务执行时间不完全匹配原始数据中的时间戳。另外,存在数据重复的可能性。因此,有必要通过对数据湖中的数据进行清洗和标准化来基于数据湖构建数据仓库,以满足上层应用对数据准确性和划分的需要。数据仓库中存储的数据表是通过对数据湖中的数据进行清洗和标准化而获得的。基于用户需求,对字段格式进行标准化,以保证数据仓库中的数据表与多个数据源中的数据表完全一致。同时,按日期或月份,根据时间以及其他字段划分数据,大大提高了查询效率,降低了运行存储器需求。数据仓库可以是基于Kudu的数据库和基于Apache Hive的数据库中的一个或任意组合。
在一实施例中,分布式存储装置400可以是一个存储器,可以是多个存储器,也可以是多个存储元件的统称。例如,存储器可以包括:随机存储器(Random Access Memory,RAM),双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic RandomAccess Memory,DDR SRAM),也可以包括非易失性存储器(non-volatile memory),例如磁盘存储器,闪存(Flash)等。
显示装置200用于显示界面,可以显示数据处理装置300的处理结果。在一实施例中,显示装置可以是显示器,还可以是包含显示器的产品,例如电视机、电脑(一体机或台式机)、计算机、平板电脑、手机、电子画屏等。在一实施例中,该显示装置可以是显示不论运动(例如,视频)还是固定(例如,静止图像)的且不论文字还是的图像的任何装置。更明确地说,预期所述实施例可实施在多种电子装置中或与多种电子装置关联,所述多种电子装置例如(但不限于)游戏控制台、电视监视器、平板显示器、计算机监视器、汽车显示器(例如,里程表显示器等)、导航仪、座舱控制器和/或显示器、电子相片、电子广告牌或指示牌、投影仪、建筑结构、包装和美学结构(例如,对于一件珠宝的图像的显示器)等。
可理解的是,图1A所示实施例仅介绍了数据处理系统与之通信的其中一个数据集群100的组成。对于智慧城市、智慧园区等场景,这类场景通常具有多个子系统,而各个子系统又设置有至少一个数据集群100,如图1B所示。以智能城市为例,其通常具有市政管理、城市交通、城市经济、城市医院、城市消防等等很多子系统。考虑到这些子系统在在空间上是分散的,实际应用中存在收集各子系统数据进行数据融合并做整体性的挖掘和分析,这些子系统由于地理位置、数据安全考虑、数据交换效率等方面考虑若选择直接点对点进行传输,容易传输失败且效率低。
考虑到相关技术中数据ETL组件只能从一个数据集群内抽取数据并同步到另一个数据集群内,而无法实现一个数据集群到多个数据集群或者多个数据集群到多个数据集群的数据交换的情况,本公开中数据集群100还设置有kafka组件,其中Kafka是一个分布式消息队列。数据集群100中的数据ETL组件可以与同一个数据集群100中的kafka组件通信,即数据ETL组件可以将获取的数据作为消息发送给kafka组件,供其他数据集群消费。也就是说,本公开实施例中将kafka组件作为一个数据交换的中间媒介来实现两个以上的数据集群之间的数据交换。
本实施例中,数据处理系统可以与各个数据集群中的数据ETL组件进行通信。参见图2,用户可以通过数据处理系统的显示装置显示可通信的数据集群列表;然后配置数据抽取规则,例如配置各个数据集群的转换规则、kafka组件的主题topic的数量、消费组数量等等,数据处理系统在获取到配置数据后可以对各个数据集群的数据ETL组件进行配置。在一示例中,源集群包括以下至少一种:Mysql数据集群、PostgresSql数据集群、Clickhouse数据集群、Mongodb数据集群、Hdfs数据集群、ElasticSearch数据集群和Kafka数据集群。目标集群包括以下至少一种:Mysql数据集群、PostgresSql数据集群、Clickhouse数据集群、Mongodb数据集群、Hdfs数据集群、ElasticSearch数据集群、Redis数据集群和Kafka数据集群。技术人员可以根据具体场景选择合适的数据集群,相应方案落入本公开的保护范围。
本实施例中,用户还可以在数据处理系统的显示装置中设置数据ETL任务,例如设置数据源集群、目标集群、数据源集群中数据的转换规则、目标集群中数据的转换规则、数据时间、数据所在地点和数据的业务类型等等,可以根据具体场景进行选择,在此不作限定。数据处理系统在接收到数据ETL任务后可以将数据ETL任务配置到对应数据集群的数据ETL组件,这样数据ETL组件可以执行数据ETL任务,并经由kafka组件实现至少一个源集群和至少一个目标集群之间的数据交换。
本实施例中,参见图3,数据交换过程可以分为三个阶段,包括:第一阶段,源集群的数据到源集群的kafka组件,即图3中所示的数据同步任务1;第二阶段,数据从源集群的kafka组件到目标集群的kafka组件,即图3中所示的数据同步任务2;第三阶段,数据从目标集群的kafka组件到目标集群的数据源,即图3中所示的数据同步任务3。基于上述三个阶段描述数据交换过程:
第一阶段,数据ETL任务对应的源集群内的数据ETL组件即第一数据ETL组件可以从源集群读取该数据ETL任务所需要的目标数据,并输出到源集群中的kafka组件,完成第一阶段内的数据同步任务。
第二阶段,数据ETL任务对应的数据处理系统内的数据ETL组件即第二数据ETL组件可以从源集群中的kafka组件读取上述目标数据,并输出到目标集群中的kafka组件,完成第二阶段内的数据同步任务。
第三阶段,数据ETL任务对应的目标集群内的数据ETL组件即第三数据ETL组件从目标集群中的kafka组件读取上述目标数据,并输出到目标集群的数据源中,完成第三阶段内的数据同步任务。
需要说明的是,第一数据ETL组件、第二数据ETL组件和第三数据ETL组件在输出数据时,可以按照数据传输时间对所传输的数据进行分组存储,或者按照数据中自带时间字段进行分组存储,从而提高存储效率以及后续查找和读取的效率。
需要说明的是,第一数据ETL组件、第二数据ETL组件和第三数据ETL组件为一段程序代码时,其区别在于程序代码的配置参数,其中,配置参数包括但不限于输入数据(源地址)、输出数据(目标地址)以及数据转换规则等。由于仅配置参数不同,那么上述三个数据ETL组件可以保证相同的数据传输效率。
需要说明的是,本实施例的方案中数据ETL组件和kafka组件相结合可以将数据ETL任务分为三段任务,在数据ETL任务出现异常时可以定位到出现异常的阶段即可;并且可以从该异常阶段恢复数据ETL任务即可,可以降低数据ETL任务失败的风险。与相关技术中数据ETL组件直接在两个集群中传输数据相比较,本实施例的方案无需重新传输数据,可以提高数据传输效率。
本实施例中,在上述三个阶段中,当kafka组件在接收到目标数据后可以对目标数据进行持久化处理,即可以按照预设留置时间(可设置,如7天)存储一段时间。当源集群或者目标集群或者数据ETL任务出现异常(错误或者失败等)时,可以在预设留置时间内对目标数据进行回溯,从而保证目标数据的安全。在一实施例中,kafka组件还可以根据配置信息对目标数据生成至少一个副本,即将目标数据同步保存到其他的kafka集群内的不同节点,实现数据备份,保证数据的安全可靠。另外,本实施例中通过将目标数据持久化,方便调整目标数据的消费时间,使得用户可根据需求灵活调整目标数据的起始时间和结束时间,满足不同数据ETL任务的需求。
在一实施例中,在数据ETL任务各个阶段进行数据交换时,kafka组件可以将源集群中不同的业务数据可选用不同的主题topic实现。以智能城市为例,上述业务数据可以包括但不限于市政管理、城市交通、城市经济、城市医院、城市消防等方面的业务。由于各个主题之间的数据是相互隔离且互不影响的,那么多个不同的主题topic传输数据相当于增加了多个数据传输通道。对于跨集群间的数据交换而言,可以等效为相关技术中多个数据ETL组件同步执行数据交换任务,本实施例的方案可以倍增所传输的数据量,从而满足数据ETL任务对于多个维度的数据的需求。
在一实施例中,考虑到kafka组件中的主题数量持续增多时,kafka组件对应的kafka集群的吞吐量也随之升高,导致数据交换性能出现瓶颈。因此,本实施例中可以横向扩展kafka集群的节点,这样新增节点可以分担一部分主题,从而降低各个节点的主题数量并提升kafka集群的吞吐量,有利于提高kafka集群的性能,进而缩短完成数据ETL任务的时长。
在一实施例中,考虑到kafka组件具有消费组的特点,本实施例中可以在kafka组件中设置有多个消费组,每个消费组对应至少一个数据ETL任务。可理解的是,由于数据ETL任务是分为三段的,并且kafka组件分别设置在源集群和目标集群,因此消费组可能面对数据ETL任务的不同阶段,因此本实施例中用每个消费组对应至少一个数据ETL任务来表述。本实施例中充分利用kafka组件的消费组特点,利用多个消费组消费一份目标数据,可以解决同时向多个目标集群输出数据的方案。与相关技术中一份数据仅能使用一次相比较,本实施例中仅需要写入一次业务数据即可并行输出多次业务数据,通过缩短输入时长和输出时长,可以极大提升数据交换效率。
在一实施例中,考虑到不同的数据集群中涉及到不同的业务数据,数据ETL任务涉及到多个集群的数据时可能引起数据泄漏的问题。为保证数据安全,本实施例中在生成数据ETL任务的过程中,数据处理系统在检测到跨集群的数据ETL任务时生成审核任务,并发送给具有审核权限的目标用户即审核任务对应的目标用户(例如运维人员审核、领导审核等)。在一示例中,审核任务可以描述需要访问的数据源地址、数据类型、数据用途等信息,在显示装置内可以显示上述审核任务,效果如图4所示,目标用户可以根据数据ETL任务的申请者及其权限确定是否通过该审核任务。如果申请者的权限允许其使用跨集群数据交换或者具有相应数个集群数据交换,则目标用户可以通过(即同意)上述审核任务,如果申请者的权限禁止其使用跨集群数据交换或者具有相应数个集群数据交换,则目标用户可以不通过(即驳回)上述审核任务。数据处理系统可以检测目标用户的操作,当检测到目标用户通过上述审核任务的操作时可以响应于该操作,数据处理系统可以生成数据ETL任务并将该数据ETL任务配置到数据ETL组件。这样,本实施例通过加入审核机制,可以避免造成数据泄露,保证跨集群数据交换的安全性。
在一实施例中,kafka组件还提供了多种安全认证机制,当数据ETL组件访问kafka组件时,可以提供身份信息来证明自身的合法性,从而保证读入和输出数据的安全。本实施例中可以结合kafka组件的安全权限是可插拔的,结合各个集群的数据特点来设置相应的权限授权服务,实现各个集群按照相应的权限来访问数据,提升数据交换的安全性。另外,本实施例中,kafka组件还可以与外部授权服务相集成,从而提升数据交换的安全性。
在一实施例中,在执行数据ETL任务的过程中,数据ETL组件可以生成各个数据ETL任务的任务日志,即第一阶段的任务日志、第二阶段的任务日志和第三阶段的任务日志。数据处理系统可以响应于用户的查询操作,获取并显示数据ETL任务的任务日志,以使用户查询各数据ETL任务在各阶段的状态信息(如运行中、异常、错误、已结束等),提升用户的使用效率。
在一示例中,数据处理系统还可以从第一数据ETL组件、第二数据ETL组件和第三数据ETL组件获取任务信息并在显示装置内显示上述任务信息,效果如图5所示,用户可以查询该任务信息、系统日志和/或定位异常任务,还可以点击启动、停止或者编辑等改变任务状态。当维护人员定位出异常任务并解决该异常任务的问题后可以恢复数据ETL任务。数据处理系统可以响应于处理异常任务的操作,恢复异常任务对应的数据ETL任务,即从异常位置对应的阶段开始继续执行数据ETL任务而无需重新执行数据ETL任务,例如,在第三阶段进行数据交换时出现异常,由于第二阶段的数据交换是正常的,此时可以重新执行第三阶段的数据交换任务即可,无需重新执行第一阶段和第二阶段的数据交换任务,从而缩短整个数据ETL任务的时间并提升数据交换任务的效率。
在一实施例中,考虑到相关技术中在关闭或者暂停数据ETL任务时会造成数据丢失的情况,尤其是数据接入速度较快的情况下,数据丢失的问题更严重。为此,本实施例中,数据处理系统在检测到表示关闭或暂停数据ETL任务的操作时,控制数据ETL任务对应的数据ETL组件暂停从kafka组件读入数据并继续输出数据。当数据输出完成后,数据处理系统可以控制数据ETL任务对应的数据ETL组件关闭或暂停数据ETL任务。其中,数据传输完成可以通过查询数据ETL任务的日志数据来确定,例如kafka输出者writer的输出速度为0,则确定数据传输完成。
以第二阶段的数据交换为例,在检测到数据处理系统发送的(表征暂停任务的)控制信号时,第二数据ETL组件可以停止从源集群的kafka组件中读入业务数据,并继续向目标集群的kafka组件输出业务数据;第三数据ETL组件先不读取目标集群的kafka组件内的业务数据,达到将目标数据存储到目标集群的kafka组件效果,即达到暂停数据ETL任务的效果。当恢复已暂停任务时,第三数据ETL组件可以从读取目标集群的kafka组件内的业务数据并存储到目标集群的数据源,从而完成从源集群到目标集群之间数据交换的效果。
实际应用中,kafka组件可以作为输出者writer和输入者reader,结合本公开中三个阶段,kafka组件角色如表1所示。
当kafka组件作为输入者reader时,例如第三阶段时目标集群的kafka即是一个输入者,其执行的是持续不断接收数据的实时ETL任务,与其他会结束的离线任务不同,Kafka会源源不断的供数。如果直接关闭任务则会有一部分数据被ETL组件读入但没有写入到输出者writer中的数据丢失。为了解决这个问题,本实施例中在ETL组件中加入http服务,该http服务用于接收外部请求,该外部请求可以是关闭(stop)请求或者暂停请求,此时ETL组件中的输入者可以暂停读取数据,而ETL组件中的输出者可以继续执行。当数据处理系统检测到恢复请求,则ETL组件中的输入者可以继续读取数据,恢复数据ETL任务。这样,本实施例中暂停读数的解决方式,在启动或者关闭任务时均不会丢失数据,从而保证数据的安全性。
表1kafka有不同阶段的角色
阶段 | 集群 | Reader | Writer |
第一阶段 | 源集群 | 数据源 | Kafka组件 |
第二阶段 | 跨集群 | Kafka组件 | Kafka组件 |
第三阶段 | 目标集群 | Kafka组件 | 数据源 |
参见图2和图6,下面结合一实施例描述集群A中Hdfs数据源向集群B中Hdfs数据源进行数据交换的过程。
Hdfs数据源是集群A和集群B中历史数据持久化的位置,为了数据安全Hdfs端口未直接对外开放,而且两个集群(A和B)的Hdfs间拷贝数据并不稳定、耗时久,故直接同步数据并不合适。本实施例中将集群A中Hdfs数据同步到Kafka,集群A和集群B两者Kafka组件同步Hdfs数据,集群B中数据ETL组件将Kafka数据传递到Hdfs数据源中。在集群A中,Kafka作为writer,收集Hdfs数据;在集群间同步时,集群A的Kafka作为reader,集群B的Kafka作为writer,将集群A的数据传递到集群B中;在集群B,Kafka作为reader将数据存储到Hdfs中,组成一条链路完成集群A到集群B的Hdfs数据同步。其中所有的数据ETL任务不是单一的,可以同时启动多个并行执行,提高数据同步效率。
参见图6,数据ETL任务启动,Kafka组件输入者reader初始化参数,将用于标识是否暂停读取数据的参数stopPoll置为假false,启动http服务,等待外部请求。主线程每向Kafka拉取数据前都会判断stopPoll是否为真true,如果为真,则停止读数;如果为假则将数据读入传递给writer。当有外部请求时,如果请求参数为停止,则将stopPoll置为真,主线程停止读数休眠10s(可设置)后继续循环判断stopPoll的值;如果请求参数为开始start,则将stopPoll置为假false,主线程可以继续拉取数据。
在本公开实施例提供的一种数据处理系统的基础上,本公开实施例还提供了一种数据处理方法,包括:
向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换。
需要说明的是,本实施例中示出的方法与系统实施例的内容相匹配,可以参考上述系统实施例的内容,在此不再赘述。
在示例性实施例中,还提供了一种数据处理系统,参见图7,包括至少一个处理装置和至少一个存储装置;
所述至少一个存储装置,用于存储所述至少一个处理装置可执行的计算机程序;
其中,所述至少一个处理器装置配置为执行所述至少一个存储器中的计算机程序,以实现如上述数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本公开实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
本公开的一些实施例提供了一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质中存储有计算机程序指令,计算机程序指令在处理器上运行时,使得计算机执行如上述实施例中任一实施例所述的数据处理方法,例如所述的数据处理方法中的一个或多个步骤。
示例性的,上述计算机可读存储介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,CD(Compact Disk,压缩盘)、DVD(Digital VersatileDisk,数字通用盘)等),智能卡和闪存器件(例如,EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、卡、棒或钥匙驱动器等)。本公开描述的各种计算机可读存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读存储介质。术语“机器可读存储介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
本公开实施例中所提到的处理器可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本公开所描述的各种示例性的逻辑方框和模块。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
此外,本公开实施例所提到的存储器可以是随机存取存储器(Random AccessMemory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (14)
1.一种数据处理系统,其特征在于,所述系统与设置有数据ETL组件和kafka组件的多个数据集群通信;所述系统用于向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换。
2.根据权利要求1所述的系统,其特征在于,所述源集群包括以下至少一种:Mysql数据集群、PostgresSql数据集群、Clickhouse数据集群、Mongodb数据集群、Hdfs数据集群、ElasticSearch数据集群和Kafka数据集群;
所述目标集群包括以下至少一种:Mysql数据集群、PostgresSql数据集群、Clickhouse数据集群、Mongodb数据集群、Hdfs数据集群、ElasticSearch数据集群、Redis数据集群和Kafka数据集群。
3.根据权利要求1所述的系统,其特征在于,所述系统用于向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换,包括:
所述数据ETL任务对应的第一数据ETL组件从源集群读取所述数据ETL任务所需要的目标数据,并输出到所述源集群中的kafka组件;
所述数据ETL任务对应的第二数据ETL组件从所述源集群中的kafka组件读取所述目标数据,并输出到所述目标集群中的kafka组件;
所述数据ETL任务对应的第三数据ETL组件从所述目标集群中的kafka组件读取所述目标数据,并输出到所述目标集群。
4.根据权利要求3所述的系统,其特征在于,所述系统还用于:
从所述第一数据ETL组件、所述第二数据ETL组件和所述第三数据ETL组件获取任务信息,并显示所述任务信息,所述任务信息用于使维护人员定位异常任务;
响应于处理所述异常任务的操作,恢复所述异常任务对应的数据ETL任务。
5.根据权利要求4所述的系统,其特征在于,所述kafka组件对所述目标数据进行持久化处理。
6.根据权利要求1所述的系统,其特征在于,所述源集群中不同的业务数据选用不同的主题topic实现。
7.根据权利要求6所述的系统,其特征在于,所述kafka组件的节点可随着主题topic数量的增加而横向扩展。
8.根据权利要求1所述的系统,其特征在于,kafka组件设置有多个消费组,每个消费组对应至少一个数据ETL任务。
9.根据权利要求1所述的系统,其特征在于,所述系统还用于:
当检测到跨集群的数据ETL任务时生成审核任务,并发送给所述审核任务对应的目标用户;
响应于检测到目标用户通过所述审核任务的操作,生成所述数据ETL任务并配置到所述数据ETL组件。
10.根据权利要求3所述的系统,其特征在于,所述系统还用于:
获取并显示所述数据ETL任务的任务日志,以使用户查询各所述数据ETL任务在各阶段的状态信息。
11.根据权利要求1所述的系统,其特征在于,所述系统还用于:
当检测到表示关闭或暂停数据ETL任务的操作,控制所述数据ETL任务对应的数据ETL组件暂停从kafka组件读入数据并且继续输出数据;
当数据输出完成后,控制所述数据ETL任务对应的数据ETL组件关闭或暂停数据ETL任务。
12.一种数据处理方法,其特征在于,包括:
向数据集群的数据ETL组件配置数据ETL任务,以使数据ETL组件执行所述数据ETL任务并经由kafka组件实现至少一个源集群到至少一个目标集群之间的数据交换。
13.一种数据处理系统,其特征在于,包括至少一个处理装置和至少一个存储装置;
所述至少一个存储装置,用于存储所述至少一个处理装置可执行的计算机程序;
其中,所述至少一个处理器装置配置为执行所述至少一个存储器中的计算机程序,以实现如权利要求12所述的方法。
14.一种计算机可读存储介质,其特征在于,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如权利要求12所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210108019.2A CN114428818A (zh) | 2022-01-28 | 2022-01-28 | 数据处理系统、数据处理方法、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210108019.2A CN114428818A (zh) | 2022-01-28 | 2022-01-28 | 数据处理系统、数据处理方法、可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114428818A true CN114428818A (zh) | 2022-05-03 |
Family
ID=81312418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210108019.2A Pending CN114428818A (zh) | 2022-01-28 | 2022-01-28 | 数据处理系统、数据处理方法、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114428818A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076508A (zh) * | 2023-10-18 | 2023-11-17 | 江苏数兑科技有限公司 | 一种流数据处理系统支持批数据处理的方法 |
-
2022
- 2022-01-28 CN CN202210108019.2A patent/CN114428818A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076508A (zh) * | 2023-10-18 | 2023-11-17 | 江苏数兑科技有限公司 | 一种流数据处理系统支持批数据处理的方法 |
CN117076508B (zh) * | 2023-10-18 | 2023-12-29 | 江苏数兑科技有限公司 | 一种流数据处理系统支持批数据处理的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11983193B2 (en) | Data processing method, platform, computer-readable storage medium and electronic device | |
WO2022126974A1 (zh) | 基于Kafka的增量数据同步方法、装置、设备及介质 | |
WO2022179008A1 (zh) | 基于区块链的供应链金融AI DaaS算法仓库平台 | |
CN113254466B (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
US20170060622A1 (en) | System and method for a data processing architecture | |
CN112559475B (zh) | 数据实时捕获和传输方法及系统 | |
CN113282611B (zh) | 一种流数据同步的方法、装置、计算机设备及存储介质 | |
CN115080275B (zh) | 一种基于实时数据模型的孪生服务组件及其方法 | |
US20240095256A1 (en) | Method and system for persisting data | |
CN112148578A (zh) | 基于机器学习的it故障缺陷预测方法 | |
CN114428818A (zh) | 数据处理系统、数据处理方法、可读存储介质 | |
US8521682B2 (en) | Transfer of data from transactional data sources to partitioned databases in restartable environments | |
CN110569308A (zh) | 一种数据文件组装方法、装置、设备及储存介质 | |
CN114077518A (zh) | 数据快照方法、装置、设备及存储介质 | |
CN109522349A (zh) | 跨类型数据计算及共享方法、系统、设备 | |
CN112506960B (zh) | 基于ArangoDB引擎的多模型数据存储方法及系统 | |
CN113992333A (zh) | 一种基于区块链的数据授权方法及系统 | |
Betts et al. | Fast Data: Smart and at Scale | |
CN111913973A (zh) | 一种数据同步方法、装置及存储介质 | |
CN105389368A (zh) | 一种mpp架构数据库集群元数据管理方法 | |
US20230325378A1 (en) | Online Migration From An Eventually Consistent System To A Strongly Consistent System | |
CN114510521B (zh) | 基于三维模型的数据展示方法、装置和计算机设备 | |
CN115098228B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN113378219B (zh) | 一种非结构化数据的处理方法和系统 | |
US9519754B2 (en) | Apparatuses and methods for parallel analytics |
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 |