CN116662325A - 一种数据处理方法及*** - Google Patents
一种数据处理方法及*** Download PDFInfo
- Publication number
- CN116662325A CN116662325A CN202310909725.1A CN202310909725A CN116662325A CN 116662325 A CN116662325 A CN 116662325A CN 202310909725 A CN202310909725 A CN 202310909725A CN 116662325 A CN116662325 A CN 116662325A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- layer
- state
- logic
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 178
- 238000013499 data model Methods 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000002688 persistence Effects 0.000 claims abstract description 28
- 238000011084 recovery Methods 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 20
- 238000007726 management method Methods 0.000 claims description 13
- 238000004140 cleaning Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 238000003860 storage Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 20
- 238000011144 upstream manufacturing Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000008280 blood Substances 0.000 description 2
- 210000004369 blood Anatomy 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000026676 system process Effects 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
-
- 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)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Communication Control (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法及***;所述方法包括:基于业务逻辑文件对所述数据模型中的每个数据层进行数据处理,确定所述数据模型中每个数据层对应的数据;每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,所述检查点用于表征对所述数据层中的增量数据进行所述持久化处理的信号;响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理。本申请提供的数据处理方法提高了行情数据的处理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及***。
背景技术
金融数据行情处理在金融行业中具有重要作用,其主要用于实时监控、分析和预测金融市场的动态。然而,传统的行情处理***在处理大量实时数据时,存在效率不高、扩展性差等问题。此外,如何在程序异常重启后恢复数据并保持数据处理的一致性,以及如何提高开发人员的开发效率,也是当前金融数据行情处理***面临的挑战。
发明内容
本申请实施例提供一种数据处理方法及***,可以提高行情***中数据处理的效率和扩展性,提高开发人员的开发效率,同时在异常重启后恢复数据并保持数据处理的一致性。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种数据处理方法,包括:
基于业务逻辑文件对所述数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据;
每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,所述检查点用于表征对所述数据层中的增量数据进行所述持久化处理的信号;
响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理。
在上述方案中,所述每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,包括:
每隔预设的时间,生成所述检查点;
将所述检查点发送至所述数据模型中的输入算子,每个检查点随着数据处理链路在各个数据层中进行流动;
所述数据层接收所述检查点之后,将所述输入算子以及所述输入算子的每类下游算子依次对应的增量数据的处理结果进行预提交;
若所有算子预提交成功,则将所述输入算子以及所述输入算子的所有下游算子对应的增量数据的处理进行正式提交,对所述数据层对应的所有的增量数据进行持久化处理。
在上述方案中,所述业务逻辑文件包括以下至少一项:
标准处理逻辑、数据清洗逻辑和数据扩展逻辑。
在上述方案中,所述基于业务逻辑文件对所述数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据,包括:
将源数据确定为所述数据模型中第一数据层的数据;
基于所述业务逻辑文件中的数据清洗逻辑对所述第一数据层的数据进行处理,得到所述数据模型中第二数据层的数据;所述第一数据层的数据和所述第二数据层的数据一一对应;
基于所述业务逻辑文件中的数据扩展逻辑对所述第二数据层的数据进行处理,得到所述数据模型中第三数据层的数据。
在上述方案中,所述每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,包括:
确定所述数据层中的数据所对应的计算状态,所述计算状态包括第一计算状态和第二计算状态;
将所述第一计算状态的数据中,在所述预设的时间中数值发生变化的数据确定为所述增量数据;
其中,所述第一计算状态表征所述数据的计算结果依赖于所述数据在第一时刻的计算结果;所述第二计算状态表征所述数据的计算结果不依赖于所述数据在任一时刻的计算结果。
在上述方案中,所述标准处理逻辑包括:
根据每条源数据对应的字段和类型,确定与所述源数据对应的类文件中的实体的属性和类型;
根据每个字段之间的依赖关系,确定每个实体的逻辑关系。
在上述方案中,所述响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理,包括:
获取所述数据中间状态的状态描述符;
根据所述状态描述符获取所述数据在所述数据处理满足第一条件时的数据偏移量和中间结果;
根据所述数据偏移量和中间结果对所述数据进行数据恢复处理。
第二方面,本申请实施例提供一种数据处理***,所述数据处理***包括:
管道搭建组件,用于基于业务逻辑文件对数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据;
元数据管理组件,用于每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态;
状态管理组件,用于响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理。
在上述方案中,所述***还包括:
领域模型组件,用于确定标准处理逻辑、数据清洗逻辑和数据扩展逻辑中的至少一项业务逻辑文件。
本申请实施例提供的数据处理方法,基于业务逻辑文件对数据数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据;每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,所述检查点用于表征对所述数据层中的增量数据进行所述持久化处理的信号;响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理。本申请的数据处理方法通过业务逻辑文件对数据进行处理,提高了数据处理的效率和数据处理的扩展性,提高了开发效率,同时能够在数据处理满足一定条件时,通过增量数据进行持久化后得到的数据中间状态进行数据恢复处理,保证了数据处理过程中的处理结果的一致性。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的数据处理方法的一种可选处理流程示意图;
图2是本申请实施例提供的数据处理***的一种可选结构示意图;
图3是本申请实施例提供的管道搭建组件的一种可选结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
下面将介绍本申请实施例提供的一种数据处理方法,参见图1,图1是本申请实施例提供的数据处理方法的一种可选处理流程示意图,下面将结合图1示出的步骤S101-S103进行说明。
步骤S101、基于业务逻辑文件对数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据。
在一些实施例中,目前对金融行情数据的数据处理有以下几点问题:1、金融行情数据的数据来源较多,提取方式各异;2、数据链路处理相对复杂,一个数据处理可能对应多种转换和加载,也有可能多个数据来源需要合并成一个数据来源;3、转换功能大多设计有状态计算,需要额外关注其容灾能力;4、数据时效性要求高;5、数据加载类型较多。因此,为了解决以上问题,可以设计“算子”这一抽象概念,提取过程对应输入(Source)算子,转换过程对应转换(Transformer)算子,加载对应输出(Sink)算子等。每个算子都具备以下特性:1、拥有0-n个上游;2、拥有0-n个下游;3、 拥有自己的数据接入缓冲区;4、拥有自己数据发送缓冲区;5、持有全局的状态管理器。同时,算子之间上下游是多对多的关系,可以实现复杂的数据处理链路。
在一些实施例中,可以对接入源进行抽象处理,定义统一的输入算子,可以通过输入算子灵活地处理来自不同数据源的金融行情数据,得到源数据。其中,金融行情数据可以包括实时行情数据和离线行情数据,实时行情数据表示当前交易时间段即时更新的所有行情数据,一般通过网络套接字传输;离线行情数据表示盘前或者盘后的一定批量的行情数据,一般从数据库或者文件***中读入。可以基于输入算子实现监控“当日数据接收条数”的关键指标,统计每天接入的源数据的总条数。
在一些实施例中,在获取到源数据之后,可以基于源数据中包含的数据字段,对源数据进行数据建模,得到源数据对应的数据模型。数据模型中的每个数据层都可以对应不同的算子实现数据模型中对每层数据的抽象处理。如数据模型中的第一数据层可以基于输入算子实现接收源数据,并将源数据确定为数据模型中第一数据层的数据。
在一些实施例中,数据模型中每个数据层都可以对应不同的业务逻辑文件,业务逻辑文件可以包括标准处理逻辑、数据清洗逻辑和数据扩展逻辑中的至少一项。开发人员可以基于业务处理(Channel)算子实现不同业务处理逻辑文件对应的通用接口。其中,不同业务的业务处理逻辑对应不同的业务处理算子,可以通过根据实际需求将对应的业务处理算子进行解耦和复用,提高开发效率,同时提高数据处理的扩展性。
其中,标准处理逻辑可以根据数据层中每条数据对应的字段和类型,确定与数据对应的类文件中的实体的属性和类型。根据每个字段之间的依赖关系,确定实体的逻辑关系,如数据在产生、融合、流转、消亡过程中形成的血缘关系。通过对数据的血缘关系的分析,可以确定数据的归属和来源,可以使数据具备可追溯性和一定的层次性。在开发过程中,标准处理逻辑可以针对开发需求生成特定编程语言的类文件,如Java类文件。
数据清洗逻辑可以包括删除重复的冗余数据、对数据的格式或者数值进行标准化处理、补充缺失的数据,或者对数据中的文本进行文本预处理,如删除特殊符号、删除英文字符或者大小写处理等。
数据扩展逻辑可以根据数据层中的数据的逻辑关系,对数据进行分类、组合、筛选、汇总、分析、归纳、推理、对比、演绎等处理。开发人员可以根据实际需求实现对数据扩展逻辑的开发。
在一些实施例中,源数据在数据建模后得到的数据模型可以包括三个数据层,每个数据层中的数据都可以使用二维表的形式进行存储。其中,第一数据层可以为贴源数据层(ODS),第二数据层可以为标准化后的详情数据层(DWD),第三数据层可以为业务汇总数据层(DWS)。
其中,可以将源数据确定为第一数据层的数据,这些数据未经处理,是最原始的数据。
可以将第一数据层的数据即源数据基于数据清洗逻辑进行处理后得到的数据确定为第二数据层的数据。其中,数据清洗逻辑可以包括对源数据进行标准化处理或者格式修改等,并没有改变源数据对应的字段,因此,第一数据层的数据与第二数据层的数据一一对应。
可以将第二数据层的数据基于数据扩展逻辑处理后得到第三数据层对应的数据。如将第二数据层中的数据字段基于报量或者收益率进行聚合汇总,得到总报量或者总收益率等新的字段。
在一些实施例中,可以根据收集器算子基于无锁缓存队列进行数据缓存,提高每个数据层的数据处理效率。可以将数据模型中输入算子接入的数据存入收集器算子对应的缓冲区当中,同时通知与该输入算子有关的下游所有算子从缓冲区中获取数据。假设一个输入算子由多个上游,那么对应每个上游都有一个数据接入缓冲区。该算子会循环从接入缓冲区中获取数据进行处理,并在处理结束后继续发送到下游算子。当最后的算子是输出算子时,数据处理将会结束,不再向下游传递。其中,缓冲区可以使程序拥有反压能力。假设下游某个算子的消费速度远小于上游算子的发送速度,那么缓冲区很快就会被占满,从而使得上游无法继续发送数据,这种压力会按照数据链路影响到最上游的输入算子,使得输入算子可以减缓数据的获取速度,从而使得数据处理的程序更加稳定。可以将一些关键指标进行缓存,如统计当日所有数据中的数据处理时间的最大值、最小值和平均值,以及统计当前未被处理的数据的个数等。收集器算子主要有以下三个优势,1)当数据量过大时,降低网络反压导致的数据延迟问题;2)通过缓存填充的思想解决了计算机内存中伪共享的问题,加速了数据的处理速度;3)支持最高性能的无锁多线程并发处理。
步骤S102、每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,所述检查点用于表征对所述数据层中的增量数据进行所述持久化处理的信号。
在一些实施例中,数据模型中的每个数据层可以基于检查点进行两阶段提交,对数据层中的数据中间状态进行持久化。其中,检查点(Checkpoint)是一种特殊的数据结构,其本身不包含任何数据,可以用来表征对所述数据层中的增量数据进行持久化处理的信号,当算子接收到检查点类型的数据即检查点后,会获取预设的时间内当前的数据模型中对应的所有算子持有的增量数据,将所有增量数据在处理后的数据中间状态进行提交。其中,检查点可以用户根据实际情况自行定义。两阶段提交可包括预提交和正式提交。由于一个程序中由多个转换算子,每个算子都持有自己的一些状态,两阶段提交可以避免当其中一个算子执行失败时,导致在提交后的全局状态不一致的问题。
作为示例,可以首先定义一个检查点协调器,该协调器可以读取所有的算子信息,并以定时或者用户自定义的方式,将检查点发送给所有的输入算子。输入算子会将检查点***到发送缓冲区当中,同时开启一个状态的事务,将自身状态写入事务中对增量数据的处理结果进行预提交,写入成功后向协调器通知预提交成功。下游算子再收到检查点后重复一样的步骤。当所有的算子均返回预提交的增量数据的处理结果成功之后,协调器会通知所有的算子正式提交自身的事务,此时表示一个数据双胎信息在数据模型中持久化处理完成,数据模型中每层数据均可以每隔预设的时间根据检查点对数据层中对应的数据增量进行数据的持久化处理。
在一些实施例中,由于一个算子存在多个上游。其必须收到所有的检查点才可以对自身的状态进行预提交,因此,可以将单体程序中的发送缓冲区和接收缓冲区设计在一起,即共享同一块缓冲区的内存空间,上游往缓冲区中存数据,下游从缓冲区中拿数据。当算子有多个上游其当前收到第一个该时间的检查点时,会停止从缓冲区内继续拿数据。直到所有的检查点都收到且执行完预提交过程后,才会继续获取数据。
在一些实施例中,在根据所述数据层中的检查点,对所述数据层对应的增量数据进行数据持久化处理时,可以确定数据模型中每个数据层中数据对应的计算状态、存储结构、状态描述符、状态后端等信息,将增量数据在处理之后得到的数据中间状态进行持久化处理。
其中,计算状态可以包括第一计算状态和第二计算状态。其中,第一计算状态可以表示为有状态计算逻辑。在有状态计算逻辑中,当前数据的计算结果依赖该数据在当前时刻之前的第一时刻的计算结果。第一时刻的值可以根据需求灵活确定。第二计算状态可以表示为无状态计算逻辑,在无状态计算逻辑中,当前数据的计算结果不依赖当前时刻之前的任一时刻的计算结果。可以将第一计算状态的数据中,在每隔预设的时间中的数值发生变化的数据确定为增量数据,并通过检查点机制进行持久化。当程序出现异常后重启时,可以基于数据中间状态将数据模型中的每个数据层的数据进行数据恢复处理。
存储结构可以包括散列(Map)存储结构、列表(List)存储结构、单值(Value)存储结构和偏移量(Offset)存储结构。其中,散列存储结构用于存储具有键值对信息的数据,如以股票为例,股票的名称为键(key),股票当日最高价值为值(Value);列表存储结构用于存储多个有时间先后顺序的数据,如当天每个股票的成交价;单值存储结构用于存储单个值的数据,如存储所有股票的总量;偏移量存储结构用于存储输入算子目前的消费位点,即目前数据的处理进度。散列存储结构、列表存储结构和单值存储结构都可以用于存储第一计算状态的数据的中间结果。
状态描述符可以包括数据存储结构的类型、数据标识(id)、数据存储的有效时间、数据存储的后端名称、是否支持将数据的增量更新到后端等信息。若数据为增量数据,则每隔预设的时间将数据的增量更新到后端。在进行更新时,可以将数据的最新处理结果进行更新。
数据存储的后端名称即状态后端,可以包括分布式数据库如Redis,和本地数据库如RocksDB,用于提供数据在处理过程中的中间状态的存储路径。当程序处理某条数据时,可能会导致部分状态进行变化,这些状态首先会在内存中改变,之后会基于改变后的增量数据统一持久化到状态后端,得到更新后的数据中间状态,用于保证程序在异常重启后仍能从上一次失败的位置进行重新运行。其中,数据中间状态包括数据处理过程中的数据偏移量信息和中间结果,数据偏移量信息用于表示当前数据处理的位置的标识,数据偏移量信息和中间结果通过数据标识与状态描述符中的数据进行一一对应。其中,数据中间状态的存储路径可以表征中间状态在状态后端中的存储地址。
在每次对数据层进行持久化处理时,可以根据数据模型中每个数据层中的增量数据所对应的计算状态、存储结构、状态描述符和状态后端,对当前的数据模型中每个数据层中的数据中间状态进行更新,得到当前的数据中间状态。当进行大批量数据处理时,通过每次只对增量数据进行数据中间状态进行更新,提高了数据处理的效率。
步骤S103、响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理。
在一些实施例中,第一条件可以为数据处理过程中出现宕机、断电、闪退或者其他异常情况需要进行重新启动的条件。在数据处理过程中,可以在每条数据完成之后或者每隔指定的时间间隔,通过检查点机制将当前所有的数据中间状态提交到指定的状态后端。当数据处理在进行异常重启之后,可以获取异常启动前数据的数据中间状态,从数据中间状态中获取数据的状态描述符,根据状态描述符中得到数据的存储结构的类型、数据标识和数据有效时间等信息,若重新启动时的时间在数据有效时间之内,则获取数据中间状态中的状态后端中与数据标识对应的中间状态的存储路径,在该存储路径中获取数据偏移量信息和中间结果。其中,数据偏移量信息表示重新启动前数据处理过程中的处理进度,如处理到第N个数据,数据偏移量信息为N。可以根据数据偏移量信息和中间结果对数据处理进行数据恢复处理,即在中间结果的基础上,基于数据偏移量信息进行数据处理的操作,从而实现了异常重启后的容错机制,以及达到了断点续传的目的。
下面将介绍本申请实施例提供的一种数据处理***,参见图2,下面将结合图2进行说明。
在图2中,数据处理***200包括元数据组件201、管道搭建组件202、状态管理组件203和领域模型组件204。
其中,元数据组件201,用于存储和管理源数据对应的数据模型,包括数据模型中每个数据层中的数据字段、业务含义和字段历史版本编号等信息;每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的数据进行持久化处理,得到数据中间状态,所述检查点用于表征对所述数据层中的增量数据进行所述持久化处理的信号;
管道搭建组件202,用于基于业务逻辑文件对数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据;
状态管理组件203,用于响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理;
领域模型组件204,用于确定标准处理逻辑、数据清洗逻辑和数据扩展逻辑中的至少一项业务逻辑文件。
在一些实施例中,元数据组件201还用于每隔预设时间,生成所述检查点;将所述检查点发送至所述数据模型中的输入算子,每个检查点随着数据处理链路在各个数据层中进行流动;所述数据层接收到所述检查点之后,将所述输入算子以及所述输入算子的每类下游算子依次对应的增量数据的处理结果进行预提交。
在一些实施例中,管道搭建组件202可以包括四个接口,分别为接入接口、收集器接口、业务处理接口和输出接口,如图3所示,管道搭建组件分为四层,数据从接入接口流入收集器接口,再从收集器接口流入业务处理接口,最终流向输出接口,形成有向无环图。其中,每个层次中的接口可以根据业务实际需求将同类型的接口进行组装,从而形成各种各样的有向无环图。
其中,接入接口可以实现对不同数据源提供的实时行情数据和离线行情数据的数据支持,可以灵活地处理来自不同数据源的金融数据,同时,还可以实现对“当日数据接收条数”的关键指标的监控。
收集器接口可以基于无锁缓冲队列缓存接入接口接收的数据,包括:将输入算子接入的数据存入收集器算子对应的缓冲区当中,同时通知与其有关的下游所有算子拉取数据。其中,每个上游算子都有一个数据接入缓冲区,从接入缓冲区获取数据进行处理,在处理结束后通过缓冲区发送到下游算子。可以降低数据处理***中的数据延迟问题,缓解数据量过大时,网络反压导致的数据延迟问题,同时可以解决计算机内存中的伪共享,加速数据的处理速度,还可以支持最高性能的无锁多线程并发处理。如可以基于收集器接口实现统计当日所有数据处理时间的最大值、最小值和平均值,以及统计当前未处理的数据的数量。
业务处理接口可以实现对具体业务的处理。不同业务的处理流程可以对应不同的收集器接口,开发人员可以根据实际需求实现不同的业务处理接口调用领域模型组件204中对应的业务逻辑文件,并根据实际需求对不同的业务处理接口进行解耦和复用。业务处理接口之间可以相互组装,可以达到解耦和任务流模式的技术效果,同时也可以针对关键组件进行指标监控,如监控数据的输入输出条数,数据处理时间等,进一步简化开发人员效率,使其专注在业务开发过程中的业务逻辑上。
输出接口可以将业务处理接口对业务的处理结果进行输出到下游的目标***或者目标存储设备,如数据库、消息队列或文件***等。在实际开发中,可以将每个输出接口对应的算子设置一个回调函数,开发人员可以根据实际需求决定数据在发送成功或者失败之后的下一步工作。如,输出接口在发送成功后,可以返回“数据发送条数”的关键指标。
在一些实施例中,状态管理组件203可以为数据处理***200提供统一管理内部的计算状态和数据消费位点。
其中,计算状态包括第一计算状态和第二计算状态。第一计算状态表征当前数据的计算结果依赖该数据在当前时刻之前的第一时刻的计算结果,第二计算状态表征当前数据的计算结果不依赖当前时刻之前的任一时刻的计算结果; 将所述第一计算状态的数据中,在所述预设的时间中的数值发生变化的数据确定为所述增量数据。数据消费位点表征当前已经完成数据处理的数据的位置。开发人员只需配置存储状态的方式,就可以实现对计算状态的统一管理。状态管理组件203可以和管道搭建组件202中的接入接口相结合,以便保持数据的状态和数据处理过程中的数据消费位点的一致性。
若当前的数据处理为第一计算状态中的增量数据时,则状态管理组件203可以将数据对应的状态、存储结构、状态描述符、状态后端和存储路径进行保存。在数据处理过程中,若数据处理完成或者每隔指定的时间间隔,可以通过检查点机制将当前所有增量数据在数据处理后的数据中间状态提交到指定的状态后端。若数据处理在发生异常时进行重新启动后,状态管理组件203可以根据数据的状态描述符的信息,将上一次保存成功的数据中间状态从状态后端中自动重新恢复到状态存储结构中。同时,将上一次的数据消费位点的信息传递给对应的输入算子,从而实现了容错机制以及达到了断点续传的目的。
在一些实施例中,领域模型组件用于构建业务模型,基于业务逻辑生成特定语言的业务模型文件,如Java语言的类文件。可以基于充血模型,将数据和业务逻辑被封装在同一个类文件中,提高了代码的复用性和易维护性。
领域模型组件204中的标准处理逻辑可以用于根据数据层中每条数据对应的字段和类型,确定与数据对应的类文件中的实体的属性和类型,以及根据每个字段之间的依赖关系,确定实体的逻辑关系,如实体之间的血缘关系,实现对数据的归属和来源的追溯。
领域模型组件204中的数据清洗逻辑可以用于删除重复的冗余数据、对数据的格式或者数值进行标准化处理、补充缺失的数据,或者对数据中的文本进行文本预处理,如删除特殊符号、删除英文字符或者大小写处理等。
领域模型组件204中的数据扩展逻辑可以根据业务的实际需求进行开发,如对数据进行分类、组合、筛选、汇总、分析、归纳、推理、对比、演绎等处理。开发人员只需编写业务处理接口实现类进行数据扩展逻辑的编写。
数据处理***200既提高了数据处理的效率,也有较高的开发效率,同时便于业务扩展和***维护。如,在数据处理过程中,只需根据数据流开发库定义需要的处理逻辑,通过管道搭建组件202可以对业务处理接口进行组装,并将数据的状态放入状态管理组件203中,自动保持状态持久的一致性以及故障后的数据恢复。若需要水平扩展,只需要运行多个行情处理实例,并将状态持久后的后端设置为外部集中存储的数据库即可。
需要说明的是,本申请实施例的数据处理***与上述数据处理方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本申请实施例提供的数据处理***中未尽的技术细节,可以根据图1的说明而理解。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
应理解,在本申请的各种实施例中,各实施过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (9)
1.一种数据处理方法,其特征在于,所述方法包括:
基于业务逻辑文件对数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据;
每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,所述检查点用于表征对所述数据层中的增量数据进行所述持久化处理的信号;
响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理。
2.根据权利要求1所述的方法,其特征在于,所述每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,包括:
每隔预设的时间,生成所述检查点;
将所述检查点发送至所述数据模型中的输入算子,每个检查点随着数据处理链路在各个数据层中进行流动;
所述数据层接收到所述检查点之后,将所述输入算子以及所述输入算子的每类下游算子依次对应的增量数据的处理结果进行预提交;
若所有算子预提交成功,则将所述输入算子以及所述输入算子的所有下游算子对应的增量数据的处理结果进行正式提交,对所述数据层对应的所有的增量数据进行持久化处理。
3.根据权利要求1所述的方法,其特征在于,所述业务逻辑文件包括以下至少一项:
标准处理逻辑、数据清洗逻辑和数据扩展逻辑。
4.根据权利要求1所述的方法,其特征在于,所述基于业务逻辑文件对数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据,包括:
将源数据确定为所述数据模型中第一数据层的数据;
基于所述业务逻辑文件中的数据清洗逻辑对所述第一数据层的数据进行处理,得到所述数据模型中第二数据层的数据;所述第一数据层的数据和所述第二数据层的数据一一对应;
基于所述业务逻辑文件中的数据扩展逻辑对所述第二数据层的数据进行处理,得到所述数据模型中第三数据层的数据。
5.根据权利要求1所述的方法,其特征在于,所述每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,包括:
确定所述数据层中的数据所对应的计算状态,所述计算状态包括第一计算状态和第二计算状态;
将所述第一计算状态的数据中,在所述预设的时间中数值发生变化的数据确定为所述增量数据;
其中,所述第一计算状态表征所述数据的计算结果依赖于所述数据在第一时刻的计算结果;所述第二计算状态表征所述数据的计算结果不依赖于所述数据在任一时刻的计算结果。
6.根据权利要求3所述的方法,其特征在于,所述标准处理逻辑包括:
根据每条源数据对应的字段和类型,确定与所述源数据对应的类文件中的实体的属性和类型;
根据每个字段之间的依赖关系,确定所述实体的逻辑关系。
7.根据权利要求1所述的方法,其特征在于,所述响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理,包括:
获取所述数据中间状态中的状态描述符;
根据所述状态描述符获取所述数据在所述数据处理满足第一条件时的数据偏移量和中间结果;
根据所述数据偏移量和中间结果对所述数据进行数据恢复处理。
8.一种数据处理***,其特征在于,所述***包括:
管道搭建组件,用于基于业务逻辑文件对数据模型中的每个数据层进行数据处理,确定所述每个数据层对应的数据;
元数据管理组件,用于每隔预设的时间,根据所述数据层中的检查点对所述数据层对应的增量数据进行持久化处理,得到数据中间状态,所述检查点用于表征对所述数据层中的增量数据进行所述持久化处理的信号;
状态管理组件,用于响应于所述数据处理满足第一条件,根据所述数据中间状态对所述数据进行数据恢复处理。
9.根据权利要求8所述的***,其特征在于,所述***还包括:
领域模型组件,用于确定标准处理逻辑、数据清洗逻辑和数据扩展逻辑中的至少一项业务逻辑文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310909725.1A CN116662325B (zh) | 2023-07-24 | 2023-07-24 | 一种数据处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310909725.1A CN116662325B (zh) | 2023-07-24 | 2023-07-24 | 一种数据处理方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116662325A true CN116662325A (zh) | 2023-08-29 |
CN116662325B CN116662325B (zh) | 2023-11-10 |
Family
ID=87712114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310909725.1A Active CN116662325B (zh) | 2023-07-24 | 2023-07-24 | 一种数据处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662325B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112302A (zh) * | 2023-08-30 | 2023-11-24 | 广州经传多赢投资咨询有限公司 | 一种金融数据的异常容灾方法、***、设备及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150010A1 (en) * | 2005-01-03 | 2006-07-06 | Stiffler Jack J | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
US20090063515A1 (en) * | 2007-09-05 | 2009-03-05 | International Business Machines Corporation | Optimization model for processing hierarchical data in stream systems |
CN102147755A (zh) * | 2011-04-14 | 2011-08-10 | 中国人民解放军国防科学技术大学 | 一种基于内存缓存技术的多核***容错方法 |
US20120109895A1 (en) * | 2010-10-28 | 2012-05-03 | Microsoft Corporation | Versatile in-memory database recovery |
CN106294357A (zh) * | 2015-05-14 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算*** |
CN109145023A (zh) * | 2018-08-30 | 2019-01-04 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN111125163A (zh) * | 2018-10-30 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 用于处理数据的方法和装置 |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
CN112486639A (zh) * | 2019-09-12 | 2021-03-12 | 中兴通讯股份有限公司 | 任务的数据保存及恢复方法、装置、服务器及存储介质 |
CN114692585A (zh) * | 2022-03-30 | 2022-07-01 | 上海幻电信息科技有限公司 | 表服务处理方法及*** |
CN114896200A (zh) * | 2022-05-26 | 2022-08-12 | 浙江邦盛科技股份有限公司 | 一种基于队列的银行流计算业务***中检查点快速持久化方法 |
-
2023
- 2023-07-24 CN CN202310909725.1A patent/CN116662325B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150010A1 (en) * | 2005-01-03 | 2006-07-06 | Stiffler Jack J | Memory-controller-embedded apparatus and procedure for achieving system-directed checkpointing without operating-system kernel support |
US20090063515A1 (en) * | 2007-09-05 | 2009-03-05 | International Business Machines Corporation | Optimization model for processing hierarchical data in stream systems |
US20120109895A1 (en) * | 2010-10-28 | 2012-05-03 | Microsoft Corporation | Versatile in-memory database recovery |
CN102147755A (zh) * | 2011-04-14 | 2011-08-10 | 中国人民解放军国防科学技术大学 | 一种基于内存缓存技术的多核***容错方法 |
CN106294357A (zh) * | 2015-05-14 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算*** |
CN109145023A (zh) * | 2018-08-30 | 2019-01-04 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN111125163A (zh) * | 2018-10-30 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 用于处理数据的方法和装置 |
CN112486639A (zh) * | 2019-09-12 | 2021-03-12 | 中兴通讯股份有限公司 | 任务的数据保存及恢复方法、装置、服务器及存储介质 |
CN112199334A (zh) * | 2020-10-23 | 2021-01-08 | 东北大学 | 基于消息队列的数据流处理检查点文件存储的方法及装置 |
CN114692585A (zh) * | 2022-03-30 | 2022-07-01 | 上海幻电信息科技有限公司 | 表服务处理方法及*** |
CN114896200A (zh) * | 2022-05-26 | 2022-08-12 | 浙江邦盛科技股份有限公司 | 一种基于队列的银行流计算业务***中检查点快速持久化方法 |
Non-Patent Citations (4)
Title |
---|
JANKI MEHTA ETC.: "Checkpointing and Recovery Mechanism in Grid", 《2008 16TH INTERNATIONAL CONFERENCE ON ADVANCED COMPUTING AND COMMUNICATIONS》, pages 131 - 139 * |
PARASYRIS, K ETC.: "Co-Designing Multi-Level Checkpoint Restart for MPI Applications", 《 21ST IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND INTERNET COMPUTING》, pages 103 - 112 * |
卢鹏飞: "增量检查点设置与卷回恢复技术研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, pages 137 - 8 * |
张晓倩: "流处理网络离群数据检测与故障恢复的研究与应用", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, pages 138 - 527 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112302A (zh) * | 2023-08-30 | 2023-11-24 | 广州经传多赢投资咨询有限公司 | 一种金融数据的异常容灾方法、***、设备及介质 |
CN117112302B (zh) * | 2023-08-30 | 2024-03-12 | 广州经传多赢投资咨询有限公司 | 一种金融数据的异常容灾方法、***、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116662325B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Realtime data processing at facebook | |
US8938421B2 (en) | Method and a system for synchronizing data | |
US7010538B1 (en) | Method for distributed RDSMS | |
EP2831767B1 (en) | Method and system for processing data queries | |
Machado et al. | DOD-ETL: distributed on-demand ETL for near real-time business intelligence | |
CN103514223A (zh) | 一种数据仓库数据同步方法和*** | |
CN116662325B (zh) | 一种数据处理方法及*** | |
CN111400011B (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
WO2019109854A1 (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
CN111966692A (zh) | 针对数据仓库的数据处理方法、介质、装置和计算设备 | |
Gupta et al. | High-availability at massive scale: Building ***’s data infrastructure for ads | |
CN116150263B (zh) | 一种分布式图计算引擎 | |
CN115617480A (zh) | 一种任务调度方法、装置、***及存储介质 | |
US11775864B2 (en) | Feature management platform | |
CN114791900A (zh) | 基于Operator的Redis运维方法、装置、***及存储介质 | |
CN113568892A (zh) | 一种基于内存计算对数据源进行数据查询的方法和设备 | |
Ji et al. | A fault-tolerant optimization mechanism for spatiotemporal data analysis in flink | |
Höger | Fault tolerance in parallel data processing systems | |
WO2018042022A1 (en) | System and apparatus for providing different versions of a type of data journey | |
Sakr et al. | Large-scale stream processing systems | |
Fortino | Reengineering of a Big Data architecture for real-time ingestion and data analysis | |
CN116302546A (zh) | 流处理***、状态恢复方法、设备及存储介质 | |
CN117033333A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
Dräxler | Risikobewertung durch Realtime Datenanalyse mittels Big Data Streaming in AWS Risk assessment through real-time data analysis using Big Data Streaming in AWS | |
Petrescu | Check for updates Replication in Raft vs Apache Zookeeper |
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 |