CN117609315B - 一种数据处理方法、装置、设备及可读存储介质 - Google Patents
一种数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN117609315B CN117609315B CN202410087040.8A CN202410087040A CN117609315B CN 117609315 B CN117609315 B CN 117609315B CN 202410087040 A CN202410087040 A CN 202410087040A CN 117609315 B CN117609315 B CN 117609315B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- service
- source
- processing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 259
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000008569 process Effects 0.000 claims abstract description 23
- 230000002085 persistent effect Effects 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims description 32
- 238000012795 verification Methods 0.000 claims description 22
- 238000013524 data verification Methods 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 230000008447 perception Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 238000007405 data analysis Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 description 13
- 238000013480 data collection Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000002688 persistence Effects 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 239000000853 adhesive Substances 0.000 description 1
- 230000001070 adhesive effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- 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/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、设备及可读存储介质,基于目标数据源的类型和状态,从目标数据源获取目标数据和目标业务的信息,将目标数据以实时流数据形式存储至消息队列,采用流处理框架将目标数据持久化至数据湖。从目标源提取目标数据,并采用流处理框架对目标数据进行解析处理,得到标准化数据,目标源包括消息队列和数据湖中的一项。将标准化数据以实时流数据形式存储至消息队列,采用流处理框架将标准化数据持久化至数据湖。从目标源提取标准化数据,基于业务需求,采用流处理框架对标准化数据进行业务处理。本申请基于流式框架对数据进行处理,得到处理结果,实现数据流批一体化处理,提高数据处理的实时性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术
常见的数据采集和加工处理场景主要以ETL(Extract-Transform-Load,抽取-转换-加载)工具或依赖调度自定义程序实现。以批量数据ETL为例,按周期将数据从源系统中抽取出来,进行转换和加工后加载到目标系统中。这种方式通常以小时、天或更长的时间窗口进行处理,适用于较大规模的数据集和非实时的数据的采集和分析需求。然而,传统的数据采集和加工方法难以满足对实时数据的采集和处理。
发明内容
本申请提供了一种数据处理方法、装置、设备及可读存储介质,如下:
一种数据处理方法,包括:
基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,所述类型包括文件类数据源、数据流类数据源以及数据库类数据源;所述目标业务的信息包括所述目标数据的业务需求;
将所述目标数据以实时流数据形式存储至消息队列,采用流处理框架将所述目标数据持久化至数据湖;
从目标源提取所述目标数据,并采用流处理框架对所述目标数据进行解析处理,得到标准化数据,所述解析处理包括数据标准化转换,所述目标源包括消息队列和数据湖中的一项;
将所述标准化数据以实时流数据形式存储至消息队列,采用流处理框架将所述标准化数据持久化至数据湖;
从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果。
可选地,数据处理方法还包括:
采用流处理框架对所述目标源中的标准化数据进行预设的数据校验,所述数据校验包括行内校验、行间校验以及跨表校验中至少一项。
所述基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果,包括:
基于所述业务需求,采用流处理框架对数据校验后的所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果。
可选地,从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果,包括:
从所述目标源提取所述标准化数据,基于所述业务需求,从所述标准化数据中获取目标数据表集合,对所述目标数据表集合进行所述业务需求对应的业务处理操作,得到所述目标业务对应的数据处理结果,所述数据处理结果包括结果数据表,所述目标数据表集合包括至少一个目标数据表,所述目标数据表基于原始数据表和原始数据表的补偿表得到。
可选地,数据处理方法还包括:
从所述结果数据表中提取预设的补偿时间段内的数据,得到第一数据表;
从数据湖中的所述原始数据表中提取所述补偿时间段内的数据,得到各个所述原始数据表的待补偿表;
基于所述业务需求,对待补偿表集合进行所述业务需求对应的业务处理操作,得到数据补偿处理结果,所述数据补偿处理结果包括第二数据表,所述待补偿表集合包括各个所述原始数据表的待补偿表;
以所述第二数据表为左表且以所述第一数据表为右表,进行左外连接查询Leftjion操作,得到差异数据表;
分别对所述差异数据表和各个所述原始数据表的待补偿表进行等值连接Innerjoin操作,得到各个所述原始数据表的补偿数据;
将所述原始数据表的补偿数据加入至所述原始数据表的补偿表。
可选地,若所述目标数据源的类型为文件类数据源,所述基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,包括:
通过调用多个数据感知服务,并行监控各类文件接口对应的文件类数据源,实时感知文件类数据源的状态;
通过调用与感知服务连接的数据传输服务,基于所述文件类数据源的状态,从文件接口下载文件类数据,得到所述目标数据,获取所述目标数据对应的业务的信息,作为所述目标业务的信息;
所述将所述目标数据以实时流数据形式存储至消息队列,包括:
基于所述目标业务的信息为所述目标数据添加数据标签后,将所述目标数据以实时流数据形式存储至消息队列。
可选地,若所述目标数据源的类型为数据库类数据源,所述基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,包括:
通过调用预先自定义的变更事件处理FlinkCDC程序实现:
感知所述目标数据源的状态;
基于所述目标数据源的状态获取所述目标数据源的数据库数据,作为所述目标数据;
获取所述目标数据对应的业务的信息,作为所述目标业务的信息。
可选地,在所述从目标源提取所述目标数据之前,所述数据处理方法还包括:
基于所述业务需求,确定所述目标业务的时效性要求;
若所述目标业务的时效性要求为高,确定所述目标源为消息队列;
若所述目标业务的时效性要求为低,确定所述目标源为数据湖。
一种数据处理装置,包括:
数据采集单元,用于基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,所述类型包括文件类数据源、数据流类数据源以及数据库类数据源;所述目标业务的信息包括所述目标数据的业务需求;
第一数据传输单元,用于将所述目标数据以实时流数据形式存储至消息队列,采用流处理框架将所述目标数据持久化至数据湖;
数据解析单元,用于从目标源提取所述目标数据,并采用流处理框架对所述目标数据进行解析处理,得到标准化数据,所述解析处理包括数据标准化转换,所述目标源包括消息队列和数据湖中的一项;
第二数据传输单元,用于将所述标准化数据以实时流数据形式存储至消息队列,采用流处理框架将所述标准化数据持久化至数据湖;
业务处理单元,用于从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果。
一种数据处理设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如上所述的数据处理方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的数据处理方法的各个步骤。
由上述技术方案可以看出,本申请实施例提供的数据处理方法、装置、设备及可读存储介质,基于目标数据源的类型感知目标数据源的状态,类型包括文件类数据源、数据流类数据源以及数据库类数据源。基于目标数据源的类型和状态,从目标数据源获取目标数据和目标业务的信息,目标业务的信息包括目标数据的业务需求,将目标数据以实时流数据形式存储至消息队列,采用流处理框架将目标数据持久化至数据湖。从目标源提取目标数据,并采用流处理框架对目标数据进行解析处理,得到标准化数据,解析处理包括数据标准化转换,目标源包括消息队列和数据湖中的一项。将标准化数据以实时流数据形式存储至消息队列,采用流处理框架将标准化数据持久化至数据湖。从目标源提取标准化数据,基于业务需求,采用流处理框架对标准化数据进行业务处理,得到目标业务对应的数据处理结果。本申请基于消息队列对各种类型的数据源数据进行采集,且将数据持久化至数据湖,从数据湖或者从消息队列将数据读取出来后,基于流式框架对数据进行处理,得到处理结果,实现数据流批一体化处理,提高数据处理的实时性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本申请实施例提供的一种数据处理系统的架构示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3a为本申请实施例提供的一种流批一体数据加工的高时效性链路的示意图;
图3b为本申请实施例提供的一种流批一体数据加工的持久化链路的示意图;
图4为本申请实施例提供的一种数据处理方法的具体实施方式的流程示意图;
图5a为本申请实施例提供的一种数据补偿方法的流程示意图;
图5b为本申请实施例提供的一种数据补偿方法的具体实施方式的流程示意图;
图6为本申请实施例提供的一种数据处理装置的结构示意图;
图7为本申请实施例提供的一种数据处理设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。
应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
批量数据ETL为例将数据从源系统中抽取出来,进行转换和加工,最后加载到目标系统中。这种方式通常以小时、天或更长的时间窗口进行处理,适用于较大规模的数据集和非实时的数据的采集和分析需求。然而,随着业务对实时数据分析和应用的需求不断增加,传统的批量数据采集和ETL方法暴露出了一些局限性,如下:
1、非实时性:批量数据ETL的处理周期较长,数据需要等待一段时间才能被处理和加载到目标系统中,无法满足实时性要求。
2、不支持流式数据处理:在传统批处理中,数据是按照固定的时间窗口进行处理的,而对于实时数据流,数据的到达速度可能是不可预测的,传统批处理不能及时响应并进行数据转换和加载。
3、扩展性不足:在传统批处理中,需要选取支持不同的批处理技术框架来支持采集异构数据源,但实际上数据源往往千差万别,难以通过统一技术组件或统一代码进行统一管理,难以实现资源或并行度的弹性伸缩,且,当遇到短时高负载情况时,数据采集和处理往往产生异常。
由此,本申请提供了一种应用于大数据实时数据采集和处理场景下的数据处理方法,本方法采用基于数据驱动的数据处理方式,同时能对流数据和批量数据进行数据采集和处理,提供实时秒级供数,具备数据高时效、一致性强、高可扩展性等特征。
图1为本申请实施例提供的一种数据处理系统,如图1所示,本系统包括数据感知模块101、数据传输模块102、数据翻译模块103、数据校验模块104、数据处理模块105、数据补偿模块106以及数据共享模块107。如图1所示数据处理系统以预设的方式与数据源、消息队列Kafka以及Hudi数据湖连接。
数据感知模块101用于根据预先构建的数据感知服务,基于数据源的类型感知数据源的状态,并将数据源的状态发送至数据传输模块,数据源的状态包括但不限于:数据源存活、数据更新、和数据新增。
本实施例中,数据源的类型基于数据源数据的特征分类,例如,数据源的类型包括文件类数据源、数据流类数据源以及数据库类数据源。数据感知模块支持主动感知服务和被动感知服务。主动感知服务实时扫描数据源以确定数据源的状态;被动感知服务接收数据源实时发送的实时动态参数确定数据源的状态。例如,被动感知服务接收用于指示数据源新数据到达的实时动态参数,确定数据源的状态为数据新增。
数据传输模块102用于根据预先构建的数据传输服务,接收到感知服务模块发送的数据源的状态后,根据数据源特性以及数据源的状态,获取数据源的数据,记为目标数据,将目标数据发送至kafka。
本实施例中,数据传输模块支持文件类数据、接口报文类、流式实时数据等多种格式的处理。数据传输服务设置为配置化,提升采集的灵活性,包括数据源配置、采集方式配置、采集计划、负载均衡、采集存储配置、性能管理以及断点续传管理等。
数据翻译模块103用于根据预先构建的数据翻译服务,采用流处理框架Flink解析目标数据得到标准化数据,将标准化数据发送至数据校验模块,同时将标准化数据持久化到Hudi数据湖。具体地,数据翻译服务收到目标数据后,根据数据传输协议和数据映射关系等元数据信息对目标数据进行解析处理后发送至数据校验模块,解析处理至少包括标准化转换,同时将标准化数据持久化到Hudi数据湖,以便于保存历史数据和支持数据查询。可选地,数据翻译模块还用于发现异常数据并记录,根据异常数据的类型进入对应的异常处理流程,例如,保存异常数据并发送用于通知运维进行处理异常数据的异常通知或者反馈异常数据信息至数据端。
数据校验模块104用于根据预先构建的数据校验服务,采用Flink对数据翻译模块输出的标准化数据进行校验,将校验后的数据发送至数据处理模块。校验方法包括但不限于行内校验、行间校验以及跨表校验。其中,行内校验依据一条数据不同字段间存在的逻辑关系进行验证,行间校验依据不同数据间存在的逻辑关系进行验证,跨表校验依据跨表间关联关系进行校验。具体地,行间校验过程利用Flink的有状态计算特性实现,跨表校验过程根据实际可用资源情况以及数据量大小,采用调用外部校验接口、Flink状态加载以及Flink缓存外部数据等方式实现。
数据处理模块105用于根据预先构建的数据处理服务,采用Flink构建多条数据处理流水线,依据业务需求对检验后的标准化数据进行数据业务处理,将数据业务处理结果发送至数据共享服务,可选地,数据业务处理方法包括关联、聚合、ETL转换、和触发事件等。可选地,数据处理模块还用于在出现处理异常情况时,触发对应的异常处理逻辑,例如跳过并通知运维、阻塞等待等。
数据补偿模块106用于根据预先构建的数据补偿服务,采用流处理框架Flink和数据湖处理框架,将需要对数据进行补偿的作业进行数据一致性比对,按需对数据进行补偿。需要说明的是,数据补偿模块执行数据补偿方法的具体实现流程可以参见下述实施例。
数据共享模块107用于根据预先构建的数据共享服务,对外发布数据采集和处理结果或者触发其他事件,驱动下游的任务。
需要说明的是,数据感知服务、数据传输服务、数据翻译服务、数据校验服务、数据处理服务、数据补偿服务和数据共享服务中,任一类服务均可以根据实际需要配置多种类型的服务,例如数据感知服务,需要根据数据源不同,支持多种连接方式,不同感知服务产生的消息格式是统一标准化的,服务的部署可以1个或者多个,多个服务可以分散负载,提升并行度,一般来讲数据密集情况下,多服务可以显著按比例提升效率。
进一步需要说明的是,本申请实施例提供的一种数据处理系统还包括:消息服务中心、日志服务中心、监控服务中心以及配置服务中心。各个中心分别为上述各个模块实现各自功能提供必要的通用公共功能,具体如下:
消息服务中心用于各个服务之间的指令或者数据依赖数据中心进行传输,配置用于串联整体流程的控制类消息和日志消息。
日志服务中心用于收集各服务日志,对日志进行汇聚和处理。
监控服务中心用于收集服务信息,监控各类服务状态,包但不限于采集源监控、环境监控、任务监控、数据校验监控以及心跳监控等,监控服务中心配置的监控层用于运维配置化,提升运营效率。
配置服务中心用于管理各服务配置信息。服务配置信息包括但不限于数据源配置、任务计划配置、各类数据源管理、存储引擎参数配置以及处理引擎参数配置等。
进一步需要说明的是,本申请实施例提供的数据处理系统在处理数据采集和处理任务时,还具备以下特点:
组件层:本系统采用微服务框架SpringCloud、分布式系统基础架构Hadoop、流处理框架Flink、消息队列(也即消息中间件)kafka以及Hudi数据湖等组件,各个数据采集和处理过程均为分布式架构,对数据存储、计算任务无单点故障,达到高可用目的,通过采用主备或负荷分担配置,有效避免了单点故障场景对系统可靠性的影响。
应用层:各服务可集群部署,一般最少部署2个,采用Flink的服务,会采用HA机制,HA信息存储在分布式服务框架zookeeper,有异常终端时,从zookeeper重新实例化任务。
可视化机制:配置Flink可视化监控运维指标,用于提供作业级别的监控,能够快速识别异常的Flink任务。
异常处理机制:发现异常后,可以通过Flink可视化监控运维平台从快速跳转至原生界面查看异常信息,并通过内部事件checkpoint恢复数据采集和处理任务,或者重启数据采集和处理任务。
基于数据处理系统,本申请提供了一种数据处理方法,图2为本申请实施例提供的一种数据处理方法的流程示意图,如图2所示,本方法包括:
S201、基于目标数据源的类型感知目标数据源的状态。
本实施例中,目标业务的信息包括业务需求,数据源的类型基于数据源数据的特性分类,可选地,数据源的类型包括文件类数据源、数据流类数据源以及数据库类数据源。数据源的状态包括但不限于:数据源存活、数据更新、和数据新增。
S202、基于目标数据源的类型和状态,从目标数据源获取目标数据和目标业务的信息。
本实施例中,目标业务的信息包括目标数据的业务需求。
本实施例中,基于数据源的类型和状态,获取目标数据的方法具体包括:通过数据感知服务基于预设的与数据源的通信链路实时感知各个数据源的数据动态(数据新增、更新、删除等),基于数据动态得到数据源的状态,响应于感知到数据源的状态,基于数据源的状态以及预设的数据传输触发规则启动对应的数据传输服务,以预设的数据传输方法从数据源获取目标数据,其中,目标数据指的是待处理数据。
本实施例中,数据处理系统预先与不同类型的多个数据源建立连接,数据源包括文件类数据源(数据类型为文件)、数据流类数据源(数据类型为数据流)以及数据库类数据源(数据类型为数据库数据)。根据不同的数据源,本申请构建三种不同的数据采集和处理链路,包括对应于文件类数据源的文件类数据采集和处理链路,对应于数据流类数据源的数据流类采集和处理链路,对应于数据库类数据源的数据库类数据源采集和处理链路。
可选地,则通过调用多个数据感知服务,并行监控各类文件接口对应的文件类数据源,实时感知文件类数据源的状态,通过调用与感知服务连接的数据传输服务,基于文件类数据源的状态,从文件接口下载文件类数据,得到目标数据,获取目标数据对应的业务的信息,作为目标业务的信息。
可选地,若目标数据源的类型为数据库类数据源,则通过调用预先自定义的FlinkCDC(Change Data Capture,变更事件处理)程序实现:感知目标数据源的状态。基于目标数据源的状态获取目标数据源的数据库数据,作为目标数据。获取目标数据对应的业务的信息,作为目标业务的信息。
S203、将目标数据以实时流数据形式存储至消息队列,采用流处理框架将目标数据持久化至数据湖。
本实施例中,流处理框架为Flink,采用流处理框架将数据持久化至数据湖的具体方法可以参见现有技术。
S204、从目标源提取目标数据,并采用流处理框架对目标数据进行解析处理,得到标准化数据。
本实施例中,解析处理包括数据标准化转换。本实施例中,目标源包括消息队列和数据湖中的一项。
可选地,首选基于业务需求,确定目标业务的时效性要求,若目标业务的时效性要求为高,则从消息队列提取目标数据,并采用流处理框架对目标数据进行解析处理,得到标准化数据。若目标业务的时效性要求为低,则从数据湖提取目标数据,并采用流处理框架对目标数据进行解析处理,得到标准化数据。
S205、将标准化数据以实时流数据形式存储至消息队列,采用流处理框架将标准化数据持久化至数据湖。
S206、从目标源提取标准化数据,基于业务需求,采用流处理框架对标准化数据进行业务处理,得到目标业务对应的数据处理结果。
本实施例中,数据处理结果包括结果数据表,具体地,从目标源提取标准化数据,基于业务需求,从标准化数据中获取目标数据表集合,对目标数据表集合进行业务需求对应的业务处理操作,得到目标业务对应的数据处理结果,数据处理结果包括结果数据表,目标数据表集合包括至少一个目标数据表,目标数据表基于原始数据表和原始数据表的补偿表得到。
本实施例中,业务需求包括目标业务的业务规则,也即,各个业务的业务规则基于目标业务的业务需求预先配置。例如,业务规则包括业务处理操作以及原始数据表的标识等,其中,业务处理包括关联、聚合、ETL转换、和触发事件。
可选地,首选基于业务需求,确定目标业务的时效性要求,若目标业务的时效性要求为高,则从消息队列提取标准化数据,基于业务需求,采用流处理框架对标准化数据进行业务处理,得到目标业务对应的数据处理结果。若目标业务的时效性要求为低,则从数据湖提取标准化数据,基于业务需求,采用流处理框架对标准化数据进行业务处理,得到目标业务对应的数据处理结果。
由上述技术方案可以看出,本申请实施例提供的一种数据处理方法,基于目标数据源的类型感知目标数据源的状态,类型包括文件类数据源、数据流类数据源以及数据库类数据源。基于目标数据源的类型和状态,从目标数据源获取目标数据和目标业务的信息,目标业务的信息包括目标数据的业务需求,将目标数据以实时流数据形式存储至消息队列,采用流处理框架将目标数据持久化至数据湖。从目标源提取目标数据,并采用流处理框架对目标数据进行解析处理,得到标准化数据,解析处理包括数据标准化转换,目标源包括消息队列和数据湖中的一项。将标准化数据以实时流数据形式存储至消息队列,采用流处理框架将标准化数据持久化至数据湖。从目标源提取标准化数据,基于业务需求,采用流处理框架对标准化数据进行业务处理,得到目标业务对应的数据处理结果。本申请基于消息队列对各种类型的数据源数据进行采集,且将数据持久化至数据湖,从数据湖或者从消息队列将数据读取出来后,基于流式框架对数据进行处理,得到处理结果,实现数据流批一体化处理,提高数据处理的实时性。
进一步,基于目标数据源的类型感知数据源的状态,通过对于不同类型的数据源构建不同感知服务或传输服务,将各类数据源的数据均实现数据流采集和转换。
进一步,本申请基于时效性要求选择从消息队列获取数据或者从数据湖获取数据进行下一步的处理。
图3a示例了一种流批一体数据加工的高时效性链路的示意图,对于时效性要求很高的实时业务场景,在数据加工阶段尽量减少不必要的数据模型分层,数据入湖后,可通过Flink流式处理直接将ODS层数据进行业务逻辑加工,流入到数据集市为上层应用提供数据服务。这种方式缩短了数据链路,在数据湖中只存有贴源层数据,适用于时效性非常高,加工逻辑简单的场景。
如图3a所示,将数据源数据(待处理数据)集成并以数据流形式存入Kafka,并进行Flink持久化加工后存入Hudi数据湖的基础层的Hudi数据湖表中,基于高时效性选择从kafka中提取目标数据进行Flink流式加工,将加工后的数据(标准化数据)以数据流形式存入Kafka且进行按需Flink持久化加工后存入Hudi数据湖的共性加工层的Hudi数据湖表中,进一步,基于高时效性选择从kafka中提取标准化数据进行Flink流式加工,将加工后的数据(数据处理结果)以数据流形式存入Kafka,并进行数据共享,同时,将加工后的数据进行按需Flink持久化加工后存入Hudi数据湖的数据集市层的Hudi数据湖表中。
需要说明的是,维表包括HBase和Redis,维表参与Flink流式加工的具体方法可以参见现有技术。
图3b示例了一种流批一体数据加工的持久化链路的示意图,图3a所示的链路适用于少量对数据时效性要求极高,且对数据准确性要求不高的场景。如果不是追求极致的时效性,且对数据质量有较高的要求,将加工处理好的数据在湖内应用层留存一份,同时可通过Flink将数据实时同步到湖外的数据集市,并进行数据共享。
如图3b所示,将数据源数据(待处理数据)集成并以数据流形式存入Kafka,并进行Flink持久化加工后存入Hudi数据湖的基础层的Hudi数据湖表中,基于低时效性选择从Hudi数据湖中提取目标数据进行Flink流式加工和/或Spark批量加工,将加工后的数据(标准化数据)存入Hudi数据湖的共性加工层的Hudi数据湖表中,进一步,基于低时效性选择从Hudi数据湖中提取标准化数据进行Flink流式加工和/或Spark批量加工,将加工后的数据(数据处理结果)存入Hudi数据湖的数据集市层的Hudi数据湖表中。
需要说明的是,数据从外部源进入数据湖内后,为了让数据更加规范有条理、数据血缘更加清晰、数据表和指标统一、减少重复开发,通常会在湖内建仓,对数据进行分层。一般会将数据分为三层贴源层(ODS)、明细层(DWD)、应用层(ADS),也可能根据业务需求,设有维度层(DIM)、汇总层(DWS)等。传统数仓各层之间的数据加工为离线批处理方式,时效性差,而实时数据湖内,数据加工可以通过实施流式处理的方式,数据端到端延迟可以达到分钟级、秒级。通常,数据端到端延迟为秒级称为实时,1到15分钟则为准实时。实时流式加工优先使用Flink SQL(结构化查询语言,Structured Query Language)SQL对于大部分开发者而言,易于理解且使用便捷。
Flink SQL常见的使用场景有:(1)数据关联。(2)窗口分析。(3)字符串处理。(4)时间处理。(5)Flink SQL中的撤回:撤回Retraction是流式处理中需要撤回过早下放的数据,是Flink SQL中很重要的一种使用场景,基于撤回机制,就能保证流式处理的结果和批处理的结果保持一致。对于Flink SQL不支持的场景,选择采用Flink自定义程序实现。比如复杂的场景,适合用Flink CEP(Complex Event Processing,复杂事件处理),结合FlinkStreaming API(流数据传送技术接口)处理。Flink CEP基于动态环境中事件流的分析技术,通过分析事件间的关系,利用过滤、关联、聚合等技术,根据事件间的时序关系和聚合关系进行模式匹配,从而持续地从事件流中查询出符合规则的事件序列。
需要说明的是,本申请提供了一种数据处理方法的具体实现方式包括多种,例如,在一种可选的实施例中,本申请还包括数据校验流程,可选地,在上述S204之后,采用流处理框架对目标源中的标准化数据进行预设的数据校验,数据校验包括行内校验、行间校验以及跨表校验中至少一项。则,S205具体实现方法包括基于业务需求,采用流处理框架对数据校验后的标准化数据进行业务处理,得到目标业务对应的数据处理结果。
在另一种可选的实施例中,本方法还包括通过数据共享服务共享数据处理结果,例如,将数据处理结果发送至目标业务的信息指示的业务系统。
图4示例了文件类数据采集和处理链路的数据采集和处理方法的流程示意图,如图4所示,数据采集和处理方法包括:
S401、通过数据感知服务感知文件类数据源的状态,并将文件类数据源的状态发送至数据传输服务。
本实施例中,文件类数据源可以有多种接口形式,例如FTP服务接口、本地文件、远端文件系统NAS以及对象存储类文件接口等,不同的接口分别对应不同的感知服务,各类感知服务用于一类数据接口的数据源的状态感知。需要说明的是,具体感知数据源的状态的方法可以参见现有技术。
S402、通过数据传输服务基于数据源的状态,获取文件类数据源的数据,作为目标数据。
本实施例中,由传输服务完成文件接口的连接和接口数据的下载,下载得到的数据结果也即目标数据。
S403、通过数据传输服务为目标数据添加数据标签,将目标数据转换为数据流传输至消息队列。
本实施例中,数据标签包括文件信息元数据以及目标任务等信息。文件信息元数据包括数据源标识、文件名等信息。
本实施例中,消息队列包括基于Kafka和MQ等消息中间件实现的队列,本实施例以Kafka为例。
S404、通过数据翻译服务从Kafka提取目标数据,基于目标数据的数据标签中的文件元数据信息,实现目标数据的解析处理,得到标准化数据。
本实施例中,解析处理包括过滤、预处理、编码、和标准化等处理。
本实施例中,常见的数据格式包括csv、excel、json、xml等文件或消息类格式,Binary、Fix、IMIX 、基于WEBSOCKT传输的自定义数据流、Debezium支持的数据库变动日志流等数据流格式,由数据翻译服务根据数据标签中附加的文件元数据信息,完成数据的翻译或解析。
S405、将标准化数据持久化到Hudi数据湖且发送到kafka。
本步骤通过将标准化数据发送至消息队列且持久化至Hudi数据湖,实现数据不同形式的存储,其中,数据湖中的数据的可观测性高,存储时间长,有利于数据追溯,Kafka的数据用于高速数据处理场景。
S406、通过数据校验服务,对标准化数据进行校验。
本实施例中,文件类数据的校验包括条数校验、关联关系校验、和数据约束校验等,具体的校验方法参见现有技术。
S407、通过数据处理服务采用Flink构建多条数据处理流水线,依据业务需求对校验后的标准化数据进行业务处理,得到数据处理结果。
本实施例中,目标业务对应的业务处理基于目标业务的业务需求预先配置,目标业务从数据标签中获取,具体的业务处理流程可以参见现有技术。
本实施例中,按目标业务的业务需求对数据进行加工处理时,较复杂的处理逻辑可以增加服务数量或调高单个服务的配置,如Flink的并发数、slot数、各级内存等。利用Flink的状态计算能力和checkpoint机制确保数据处理的连续性。对准确性要求较高的场景,可以采用exactly once机制确保数据不重不漏。中间或结果数据按需进行持久化。
需要说明的是,数据流类数据采集和处理链路的数据采集和处理方法与上述实施例相比,区别在于,通过数据感知服务和数据流类数据源建立长连接,实时感知数据源的状态并实时触发数据传输任务。例如,FIX、IMIX、KAFKA、BINARY、基于WEBSOCKT的自定义数据流、其他自定义数据流等数据流类数据源仅提供数据,不再单独有可感知的数据状态类信息(例如发货单类),因此,可以将感知和传输服务合并部署为采集服务,仅逻辑上进行区分。感知服务和传输服务采用SpringBoot+SpringCloud微服务和Flink+kafka流处理两种框架实现,采集服务先将数据流类数据实时缓存到Kafka。再把Kafka中缓存的数据流类数据通过Flink程序按需持久化到Hudi数据湖,处理服务从kafka或者Hudi数据湖读取数据并处理。
需要说明的是,数据库类数据采集和处理链路的数据采集和处理方法与上述实施例相比,区别在于,通过预先自定义的FlinkCDC程序方式实现感知数据库类数据源的状态以及获取数据库类数据源的数据,其中,FlinkCDC功能丰富支持数据全量初始化、数据断点续传等场景,能满足大部分场景。
本实施例中,数据库类数据源指的是关系数据库类数据源,例如,关系数据库类包括Oracle、MySQL等数据库。
本实施例中,通过FlinkCDC程序连接数据库时,为避免影响主库业务,优先连接备库采集数据。当处于要求时效性高的场景(例如时效性要求在延迟1分钟到5分钟),可连接主库采集数据。当处于时效性要求不高的大批量加工、复杂事务场景,可以使用批量数据同步工具构建服务,完成采集。传统批量同步工具仅支持批量到批量的同步,本实施例中批量数据同步工具支持发送到kafka。
需要说明的是,本申请中的流处理框架为流处理系统,某条数据投递到某个流处理系统后,该系统对这条数据只处理一次,提供Exactly-Once的保障是一种理想的情况。然而生产环境中,系统经常受到各类意外因素的影响而发生故障,比如流量激增、网络抖动、云服务资源分配出现问题等。如果发生了故障,流处理框架Flink重启作业,读取Checkpoint中的数据,恢复状态,重新执行计算。Flink的Checkpoint过程保证了一个作业内部的数据一致性,主要因为Flink将两类数据做了备份:
1)作业中每个算子的状态,
2)输入数据的偏移量Offset。
Flink自身的数据一致性保障机制依赖于状态后端的存储,然而实际生产环境中,状态后端需要设置TTL(Time To Live,最大网段数量),否则流式数据会让状态后端无限膨胀,最终使资源消耗殆尽,流式任务延时也会越来越大。因此,当状态后端中的数据过期后,就需要通过工程手段来解决数据一致性问题。所以有流式关联场景一致性方案解决该问题。
流处理场景中,不可避免会出现源端数据延迟到达或发生更新等情况,且Flink状态后端存储TTL已超时,就可能会出现加工后的数据不准确的场景。此时,需要通过旁路链路对数据进行比对、补齐,可以选择批处理的方式进行数据比对。在流链路中,通过状态后端解决数据不齐的问题,超过TTL的数据通过补数链路补齐数据。具体的,在流批一体方案中,source表和target表都采用Hudi数据湖表格式存储,同一张表既支持Flink流读也支持spark批读,补数旁路链路可以采用批量方式进行补齐。通过表source1与表source2关联得到准确的关联结果数据,然后再通过与target表关联得到需要补齐的结果数据。
基于此,在另一种可选的实施例中,本申请还包括数据补偿步骤,图5a为本申请实施例提供的一种数据补偿的具体实现流程,如图5a所示,本方法具体包括:
S501、从结果数据表中提取预设的补偿时间段内的数据,得到第一数据表。
本实施例中,从结果数据表中提取时间戳字段的值在补偿时间段内的数据,得到第一数据表。
S502、从数据湖中的原始数据表中提取补偿时间段内的数据,得到各个原始数据表的待补偿表。
S503、基于业务需求,对待补偿表集合进行业务需求对应的业务处理操作,得到数据补偿处理结果。
本实施例中,数据补偿处理结果包括第二数据表,待补偿表集合包括各个原始数据表的待补偿表。也即,本步骤对各个原始数据表的待补偿表执行与对各个原始数据表执行的相同业务处理操作。
S504、以第二数据表为左表且以第一数据表为右表,进行左外连接查询Leftjion操作,得到差异数据表。
本实施例中,以左表也即第一数据表为主表,进行左外连接查询,得到的差异数据表中包括差异数据,差异数据的情形包括主键为空或主键不为空但是时间戳字段的值不同。需要说明的是,具体的Leftjion操作的方法可以参见现有技术。
S505、分别对差异数据表和各个原始数据表的待补偿表进行等值连接Innerjoin操作,得到各个原始数据表的补偿数据。
本实施例总,Innerjoin操作的具体方法参见现有技术。
S506、将原始数据表的补偿数据加入至原始数据表的补偿表。
图5b示例了一种数据补偿操作的具体实现流程。如图5b所示,原始数据表集合包括从消息队列中流读的原始数据表表a0和原始数据表表b0,且,存在表a0和表b0的补偿表分别为表a1和表b1。
如图5b所示,对表a0和表a1进行union去重操作得到目标数据表表A,对表b0和表b1进行union去重操作得到目标数据表表B,基于业务需求,对表A(左表)和表B(右表)进行Leftjion操作,得到数据处理结果,数据处理结果包括结果数据表也即目标宽表,从目标宽表中提取补偿时间段(近一个月)的数据,得到第一数据表。提取补偿时间段(近一个月)的数据的具体方法为:只取主键和时间戳字段。
从表a0中提取补偿时间段(近一个月)的数据,得到表a0的待补偿表表a2,从表b0中提取补偿时间段(近一个月)的数据,得到表b0的待补偿表表b2,基于业务需求,对表a2和表b2进行Innerjoin操作,得到数据补偿处理结果,数据补偿处理结果包括第二数据表。
对第二数据表(左表)和第一数据表(右表)进行Leftjion操作得到差异数据表,得到差异数据表中的差异数据包括两种情形:主键空或者主键时间戳不同。
对表a2和差异数据表进行Innerjoin操作,得到表a0补偿数据。对表b2和差异数据表进行Innerjoin操作,得到表b0补偿数据
将表a0补偿数据添加至表a0的补偿表,且将表b0补偿数据添加至表b0的补偿表,实现补偿表更新。
由上述技术方案可以看出,通过数据补偿操作能实现数据的一致性。
Flink流式关联加工任务需指定Join的窗口期来减少状态后端的负荷,窗口期设置取决于实际业务背景。但是,实际场景下总会出现数据延迟,在窗口期外到达或者错误数据下放的场景,此时,如果状态后端中存储的相关数据已过期,批补偿方案则用来处理这种场景,将流计算遗漏的数据通过批处理定时补偿回来,从而确保数据最终一致。
基于此本实施例通过构建流计算支路链路和补数旁路链路实现流计算和补数计算,其中,流计算支路链路目的是完成业务计算逻辑,为了实时性要求采用left join方式进行关联。实际场景中两条流数据到达的时间不一致,流表数据会保存在Flink的状态后端中,left join使左表中未关联上的数据不必等待,而是继续流入下游,当右表相关联数据到达时,Flink会形成回撤流,回撤之前流入下游未关联的左表数据,重新计算关联后的数据并流入下游(数据共享)。
图6示出了本申请实施例提供的一种数据处理装置的结构示意图,如图6所示,该装置可以包括:
数据采集单元601,用于基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,所述类型包括文件类数据源、数据流类数据源以及数据库类数据源;所述目标业务的信息包括所述目标数据的业务需求;
第一数据传输单元602,用于将所述目标数据以实时流数据形式存储至消息队列,采用流处理框架将所述目标数据持久化至数据湖;
数据解析单元603,用于从目标源提取所述目标数据,并采用流处理框架对所述目标数据进行解析处理,得到标准化数据,所述解析处理包括数据标准化转换,所述目标源包括消息队列和数据湖中的一项;
第二数据传输单元604,用于将所述标准化数据以实时流数据形式存储至消息队列,采用流处理框架将所述标准化数据持久化至数据湖;
业务处理单元605,用于从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果。
需要说明的是,上述各个单元的具体功能可以参见上述实施例。
需要说明的是,描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,“数据补偿单元”还可以被描述为“用于执行数据补偿流程的单元”。
图7示出了该数据处理设备的结构示意图,该设备可以包括:至少一个处理器701,至少一个通信接口702,至少一个存储器703和至少一个通信总线704;
在本申请实施例中,处理器701、通信接口702、存储器703、通信总线704的数量为至少一个,且处理器701、通信接口702、存储器703通过通信总线704完成相互间的通信;
处理器701可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器703可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可执行存储器存储的程序,实现本申请实施例提供的一种数据处理方法的各个步骤,如下:
基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,所述类型包括文件类数据源、数据流类数据源以及数据库类数据源;所述目标业务的信息包括所述目标数据的业务需求;
将所述目标数据以实时流数据形式存储至消息队列,采用流处理框架将所述目标数据持久化至数据湖;
从目标源提取所述目标数据,并采用流处理框架对所述目标数据进行解析处理,得到标准化数据,所述解析处理包括数据标准化转换,所述目标源包括消息队列和数据湖中的一项;
将所述标准化数据以实时流数据形式存储至消息队列,采用流处理框架将所述标准化数据持久化至数据湖;
从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果。
需要说明的是,数据处理方法的各个步骤的具体实现方法可以参见上述实施例。
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的计算机程序,计算机程序被处理器执行时,实现本申请实施例提供的一种数据处理方法的各个步骤,如下:
基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,所述类型包括文件类数据源、数据流类数据源以及数据库类数据源;所述目标业务的信息包括所述目标数据的业务需求;
将所述目标数据以实时流数据形式存储至消息队列,采用流处理框架将所述目标数据持久化至数据湖;
从目标源提取所述目标数据,并采用流处理框架对所述目标数据进行解析处理,得到标准化数据,所述解析处理包括数据标准化转换,所述目标源包括消息队列和数据湖中的一项;
将所述标准化数据以实时流数据形式存储至消息队列,采用流处理框架将所述标准化数据持久化至数据湖;
从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果。
需要说明的是,数据处理方法的各个步骤的具体实现方法可以参见上述实施例。
需要说明的是,在本公开的上下文中,可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。可读存储介质可以是机器可读信号介质或机器可读储存介质。可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
最后,还需要说明的是,在本公开的上下文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (7)
1.一种数据处理方法,其特征在于,包括:
基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,所述类型包括文件类数据源、数据流类数据源以及数据库类数据源;所述目标业务的信息包括所述目标数据的业务需求;
将所述目标数据以实时流数据形式存储至消息队列,采用流处理框架将所述目标数据持久化至数据湖;
基于所述业务需求,确定所述目标业务的时效性要求;若所述目标业务的时效性要求为高,确定目标源为消息队列;若所述目标业务的时效性要求为低,确定目标源为数据湖;从所述目标源提取所述目标数据,并采用流处理框架对所述目标数据进行解析处理,得到标准化数据,所述解析处理包括数据标准化转换,所述目标源包括消息队列和数据湖中的一项;
将所述标准化数据以实时流数据形式存储至消息队列,采用流处理框架将所述标准化数据持久化至数据湖;
从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果;其中,所述从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果,包括:从所述目标源提取所述标准化数据,基于所述业务需求,从所述标准化数据中获取目标数据表集合,对所述目标数据表集合进行所述业务需求对应的业务处理操作,得到所述目标业务对应的数据处理结果,所述数据处理结果包括结果数据表,所述目标数据表集合包括至少一个目标数据表,所述目标数据表基于原始数据表和原始数据表的补偿表得到;
从所述结果数据表中提取预设的补偿时间段内的数据,得到第一数据表;
从数据湖中的所述原始数据表中提取所述补偿时间段内的数据,得到各个所述原始数据表的待补偿表;
基于所述业务需求,对待补偿表集合进行所述业务需求对应的业务处理操作,得到数据补偿处理结果,所述数据补偿处理结果包括第二数据表,所述待补偿表集合包括各个所述原始数据表的待补偿表;
以所述第二数据表为左表且以所述第一数据表为右表,进行左外连接查询Leftjion操作,得到差异数据表;
分别对所述差异数据表和各个所述原始数据表的待补偿表进行等值连接Innerjoin操作,得到各个所述原始数据表的补偿数据;
将所述原始数据表的补偿数据加入至所述原始数据表的补偿表。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:
采用流处理框架对所述目标源中的标准化数据进行预设的数据校验,所述数据校验包括行内校验、行间校验以及跨表校验中至少一项;
所述基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果,包括:
基于所述业务需求,采用流处理框架对数据校验后的所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果。
3.根据权利要求2所述的数据处理方法,其特征在于,若所述目标数据源的类型为文件类数据源,所述基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,包括:
通过调用多个数据感知服务,并行监控各类文件接口对应的文件类数据源,实时感知文件类数据源的状态;
通过调用与感知服务连接的数据传输服务,基于所述文件类数据源的状态,从文件接口下载文件类数据,得到所述目标数据,获取所述目标数据对应的业务的信息,作为所述目标业务的信息;
所述将所述目标数据以实时流数据形式存储至消息队列,包括:
基于所述目标业务的信息为所述目标数据添加数据标签后,将所述目标数据以实时流数据形式存储至消息队列。
4.根据权利要求3所述的数据处理方法,其特征在于,若所述目标数据源的类型为数据库类数据源,所述基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,包括:
通过调用预先自定义的变更事件处理FlinkCDC程序实现:
感知所述目标数据源的状态;
基于所述目标数据源的状态获取所述目标数据源的数据库数据,作为所述目标数据;
获取所述目标数据对应的业务的信息,作为所述目标业务的信息。
5.一种数据处理装置,其特征在于,包括:
数据采集单元,用于基于目标数据源的类型感知所述目标数据源的状态,基于所述目标数据源的类型和状态,从所述目标数据源获取目标数据和目标业务的信息,所述类型包括文件类数据源、数据流类数据源以及数据库类数据源;所述目标业务的信息包括所述目标数据的业务需求;
第一数据传输单元,用于将所述目标数据以实时流数据形式存储至消息队列,采用流处理框架将所述目标数据持久化至数据湖;
数据解析单元,用于基于所述业务需求,确定所述目标业务的时效性要求;若所述目标业务的时效性要求为高,确定目标源为消息队列;若所述目标业务的时效性要求为低,确定目标源为数据湖;从所述目标源提取所述目标数据,并采用流处理框架对所述目标数据进行解析处理,得到标准化数据,所述解析处理包括数据标准化转换,所述目标源包括消息队列和数据湖中的一项;
第二数据传输单元,用于将所述标准化数据以实时流数据形式存储至消息队列,采用流处理框架将所述标准化数据持久化至数据湖;
业务处理单元,用于从所述目标源提取所述标准化数据,基于所述业务需求,采用流处理框架对所述标准化数据进行业务处理,得到所述目标业务对应的数据处理结果;其中,所述业务处理单元具体用于:从所述目标源提取所述标准化数据,基于所述业务需求,从所述标准化数据中获取目标数据表集合,对所述目标数据表集合进行所述业务需求对应的业务处理操作,得到所述目标业务对应的数据处理结果,所述数据处理结果包括结果数据表,所述目标数据表集合包括至少一个目标数据表,所述目标数据表基于原始数据表和原始数据表的补偿表得到;
数据补偿单元,用于从所述结果数据表中提取预设的补偿时间段内的数据,得到第一数据表;从数据湖中的所述原始数据表中提取所述补偿时间段内的数据,得到各个所述原始数据表的待补偿表;基于所述业务需求,对待补偿表集合进行所述业务需求对应的业务处理操作,得到数据补偿处理结果,所述数据补偿处理结果包括第二数据表,所述待补偿表集合包括各个所述原始数据表的待补偿表;以所述第二数据表为左表且以所述第一数据表为右表,进行左外连接查询Leftjion操作,得到差异数据表;分别对所述差异数据表和各个所述原始数据表的待补偿表进行等值连接Innerjoin操作,得到各个所述原始数据表的补偿数据;将所述原始数据表的补偿数据加入至所述原始数据表的补偿表。
6.一种数据处理设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1~4中任一项所述的数据处理方法的各个步骤。
7.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1~4中任一项所述的数据处理方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410087040.8A CN117609315B (zh) | 2024-01-22 | 2024-01-22 | 一种数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410087040.8A CN117609315B (zh) | 2024-01-22 | 2024-01-22 | 一种数据处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117609315A CN117609315A (zh) | 2024-02-27 |
CN117609315B true CN117609315B (zh) | 2024-04-16 |
Family
ID=89958250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410087040.8A Active CN117609315B (zh) | 2024-01-22 | 2024-01-22 | 一种数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609315B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647544A (zh) * | 2019-09-10 | 2020-01-03 | 四川新网银行股份有限公司 | 基于流数据的账务检核方法 |
CN112347133A (zh) * | 2019-08-09 | 2021-02-09 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和装置 |
CN113722337A (zh) * | 2021-11-03 | 2021-11-30 | 深圳市信润富联数字科技有限公司 | 业务数据确定方法、装置、设备及存储介质 |
US11263206B1 (en) * | 2021-03-02 | 2022-03-01 | Coupang Corp. | Systems and methods for multi-nodal stream processing framework for partitioned database |
CN114490610A (zh) * | 2022-01-25 | 2022-05-13 | 浙江惠瀜网络科技有限公司 | 用于数据仓的数据处理方法以及装置、存储介质、电子装置 |
WO2022126960A1 (zh) * | 2020-12-18 | 2022-06-23 | 平安科技(深圳)有限公司 | 业务条款数据的处理方法、装置、设备及存储介质 |
CN115757460A (zh) * | 2022-11-02 | 2023-03-07 | 浙江大华技术股份有限公司 | 基于数据湖系统的业务处理方法及计算机可读存储介质 |
CN116401324A (zh) * | 2023-04-25 | 2023-07-07 | 合肥国轩高科动力能源有限公司 | 面向锂电池制造业的实时数仓方法及系统 |
CN116842055A (zh) * | 2023-06-29 | 2023-10-03 | 中科云谷科技有限公司 | 用于物联网数据批流一体处理的系统及方法 |
CN117251414A (zh) * | 2023-11-17 | 2023-12-19 | 太极计算机股份有限公司 | 一种基于异构技术的数据存储及处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321337B2 (en) * | 2018-06-04 | 2022-05-03 | Cisco Technology, Inc. | Crowdsourcing data into a data lake |
US11308079B2 (en) * | 2019-11-29 | 2022-04-19 | Amazon Technologies, Inc. | Maintaining data stream history for generating materialized views |
-
2024
- 2024-01-22 CN CN202410087040.8A patent/CN117609315B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347133A (zh) * | 2019-08-09 | 2021-02-09 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和装置 |
CN110647544A (zh) * | 2019-09-10 | 2020-01-03 | 四川新网银行股份有限公司 | 基于流数据的账务检核方法 |
WO2022126960A1 (zh) * | 2020-12-18 | 2022-06-23 | 平安科技(深圳)有限公司 | 业务条款数据的处理方法、装置、设备及存储介质 |
US11263206B1 (en) * | 2021-03-02 | 2022-03-01 | Coupang Corp. | Systems and methods for multi-nodal stream processing framework for partitioned database |
CN113722337A (zh) * | 2021-11-03 | 2021-11-30 | 深圳市信润富联数字科技有限公司 | 业务数据确定方法、装置、设备及存储介质 |
CN114490610A (zh) * | 2022-01-25 | 2022-05-13 | 浙江惠瀜网络科技有限公司 | 用于数据仓的数据处理方法以及装置、存储介质、电子装置 |
CN115757460A (zh) * | 2022-11-02 | 2023-03-07 | 浙江大华技术股份有限公司 | 基于数据湖系统的业务处理方法及计算机可读存储介质 |
CN116401324A (zh) * | 2023-04-25 | 2023-07-07 | 合肥国轩高科动力能源有限公司 | 面向锂电池制造业的实时数仓方法及系统 |
CN116842055A (zh) * | 2023-06-29 | 2023-10-03 | 中科云谷科技有限公司 | 用于物联网数据批流一体处理的系统及方法 |
CN117251414A (zh) * | 2023-11-17 | 2023-12-19 | 太极计算机股份有限公司 | 一种基于异构技术的数据存储及处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117609315A (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109829009B (zh) | 可配置的异构数据实时同步并可视化的系统及方法 | |
CN107038162B (zh) | 基于数据库日志的实时数据查询方法和系统 | |
CN113360554B (zh) | 一种数据抽取、转换和加载etl的方法和设备 | |
CN110542920B (zh) | 地震数据处理方法及其系统 | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN112035415B (zh) | 针对用户访问数据的处理系统、方法、设备及存储介质 | |
CN112559475B (zh) | 数据实时捕获和传输方法及系统 | |
CN112463543A (zh) | 业务数据的监控方法、规则数据生成方法、装置及系统 | |
CN113779094B (zh) | 基于批流一体的数据处理方法、装置、计算机设备和介质 | |
CN112395333B (zh) | 用于排查数据异常的方法、装置、电子设备及存储介质 | |
CN111221831A (zh) | 一种对广告效果数据实时处理的计算系统 | |
CN110262951A (zh) | 一种业务秒级监控方法及系统、存储介质及客户端 | |
CN115757626A (zh) | 一种数据质量检测方法、装置、电子设备及存储介质 | |
US10331484B2 (en) | Distributed data platform resource allocator | |
CN103034650A (zh) | 一种数据处理系统和方法 | |
CN114398520A (zh) | 数据检索方法、系统、装置、电子设备及存储介质 | |
CN107193749B (zh) | 测试方法、装置及设备 | |
CN117609315B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN113760640A (zh) | 监控日志处理方法、装置、设备及存储介质 | |
CN117131138A (zh) | 基于数据湖的数据处理方法、装置、设备和介质 | |
CN105446707B (zh) | 一种数据转换方法 | |
CN104317820B (zh) | 报表的统计方法和装置 | |
CN108959041B (zh) | 信息发送的方法、服务器及计算机可读存储介质 | |
CN113722141B (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
CN116011972A (zh) | 一种数据处理系统、方法、电子设备及计算机存储介质 |
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 |