数据处理系统以及方法

文档序号:10489091阅读:210来源:国知局
数据处理系统以及方法
【专利摘要】本申请公开了一种数据处理系统,包括:通信交互模块,所述通信交互模块配置成与源接入端和目标接入端耦合,并从所述源接入端接收具有第一格式的第一数据;接收处理模块,所述接收处理模块配置成从所述通信交互模块接收具有所述第一格式的所述第一数据,对所述第一数据进行校验和解压还原从而得到源数据,并将校验通过并解压还原后的所述源数据根据其类型分数据段存储在数据缓存中;发送处理模块,所述发送处理模块将待发送数据转换为具有第二格式的第二数据,并经由所述通信交互模块发送给所述目标接入端;以及任务调度模块,所述任务调度模块设置在所述接收处理模块与所述发送处理模块之间,其配置成把待发送的数据按数据段调度给所述发送处理模块。本申请还公开了一种数据发布与抽取的方法。
【专利说明】
数据处理系统以及方法
技术领域
[0001 ]本申请涉及数据处理系统,以及在源接入端与目标接入端之间进行数据发布与抽 取的方法。
【背景技术】
[0002] 当前在源数据库与目标数据库之间进行数据抽取方法基本上是基于关系数据库 的功能,大致有以下几种:(1)直接查询源库上的数据并将查询的结果插入或更新到目标数 据库;(2)通过数据库日志、镜像、归档等方法将源数据库上的变化同步到目标数据库;(3) 通过ETL等专用工具实现。
[0003] 上述现有技术的方法不能满足当前的需要,特别是存在频繁数据抽取的情形下。 现有技术的方法容易导致一份数据被多次从源数据库向目标数据库传输,需要多次访问源 数据库。这尽管保证了数据的相对准确性,但需要以处理性能大打折扣为代价。另外,现有 技术中还存在对数据库依赖大、抽取方法对源数据库影响大、部署分散和安全例外等问题。
[0004] 因此,需要一种改进的数据发布与抽取的方法。

【发明内容】

[0005] 为了解决上述问题,本申请提出了一种数据发布与抽取的方法,将源接入端与目 标接入端分离。具体来说,可将源接入端与目标接入端采用相同的通信协议接入数据处理 系统,源接入端按照与数据处理系统约定的数据格式(例如,第一格式)与发布方式进行数 据发布。目标接入端按照与数据处理系统约定的数据格式(例如,第二格式)与订阅方式进 行数据抽取。源接入端与目标接入端由于不是直接耦合在一起,因而不会相互影响。另外, 本申请的方法还支持多个源、多个目标同时接入,支持一份数据多次抽取,支持数据格式转 换,能够在高交易量的情况下,实现数据的平稳发布与抽取。
[0006] 根据本申请的一个方面,提供了一种数据处理系统。该数据处理系统可包括:通信 交互模块,配置成与源接入端和目标接入端耦合,并从所述源接入端接收具有第一格式的 第一数据;接收处理模块,配置成从所述通信交互模块接收具有所述第一格式的所述第一 数据,对所述第一数据进行校验和解压还原从而得到源数据,并将校验通过并解压还原后 的所述源数据根据其类型分数据段存储在数据缓存中;发送处理模块,所述发送处理模块 将待发送数据转换为具有第二格式的第二数据,并经由所述通信交互模块发送给所述目标 接入端;以及任务调度模块,所述任务调度模块设置在所述接收处理模块与所述发送处理 模块之间,其配置成把待发送的数据按数据段调度给所述发送处理模块。
[0007] 在上述数据处理系统中,在所述接收处理模块发现存储在数据缓存中的第一数据 段已经写满时,所述接收处理模块配置成通知所述任务调度模块。
[0008] 在上述数据处理系统中,在接收到所述接收处理模块的通知后,所述任务调度模 块配置成基于来自所述目标接入端的订阅任务信息将所述第一数据段调度给所述发送处 理模块。
[0009] 在上述数据处理系统中,所述任务调度模块配置成定期轮询存储在所述数据缓存 中的各数据段。
[0010] 在上述数据处理系统中,在确定第一数据段在超过规定时间仍未写满的情况下, 所述任务调度模块配置成将该第一数据段调度给所述发送处理模块。
[0011]在上述数据处理系统中,所述第一数据在头部存有校验值,以供所述接收处理模 块校验所述第一数据的完整性与正确性。
[0012] 在上述数据处理系统中,所述第二数据在头部也存有校验值,以供所述目标接入 端校验所述第二数据的完整性与正确性。
[0013] 根据本申请的另一个方面,提供了一种在源接入端与目标接入端之间进行数据发 布与抽取的方法。该方法包括:从所述源接入端接收具有第一格式的第一数据(步骤A);对 所述第一数据进行校验和解压还原从而得到源数据(步骤B);将校验通过并解压还原后的 所述源数据根据其类型分数据段存储在数据缓存中(步骤C);把待发送的数据按数据段进 行调度(步骤D);以及将所述待发送数据转换为具有第二格式的第二数据,并发送给所述目 标接入端(步骤E)。
[0014] 在上述方法中,步骤D可包括:在确定存储在数据缓存中的第一数据段已经写满 时,基于来自所述目标接入端的订阅任务信息对所述第一数据段进行调度。
[0015] 在上述方法中,步骤D还可包括:定期轮询存储在所述数据缓存中的各数据段。在 确定第一数据段在超过规定时间仍未写满的情况下,对该第一数据段进行调度。
[0016] 在上述方法中,所述第一数据在头部存有校验值,以供所述接收处理模块校验所 述第一数据的完整性与正确性。
[0017] 在上述方法中,所述第二数据在头部也存有校验值,以供所述目标接入端校验所 述第二数据的完整性与正确性。
[0018] 相对于现有技术,本申请实现了源接入端与目标接入端解耦,使得两个接入端之 间没有直接依赖关系。同时,源接入端、目标接入端可以是异构系统,所处理数据也可以是 非关系数据库产生的数据,数据的类型更为多样。通过配置一对多的数据发布与抽取方法, 可以减轻对源接入端的压力,节省大量的数据传输。
【附图说明】
[0019] 在参照附图阅读了本申请的【具体实施方式】以后,本领域技术人员将会更清楚地了 解本申请的各个方面。本领域技术人员应当理解的是:这些附图仅仅用于配合具体实施方 式说明本申请的技术方案,而并非意在对本申请的保护范围构成限制。
[0020] 图1是根据本申请的实施例的数据发布与抽取的方法的流程示意图; 图2是根据本申请的实施例的数据处理系统的结构示意图;以及 图3是根据本申请的实施例的数据缓存示意图。
【具体实施方式】
[0021] 下面介绍的是本申请的多个可能实施例中的一些,旨在提供对本申请的基本了 解,并不旨在确认本申请的关键或决定性的要素或限定所要保护的范围。容易理解,根据本 申请的技术方案,在不变更本申请的实质精神下,本领域的一般技术人员可以提出可相互 替换的其它实现方式。因此,以下【具体实施方式】以及附图仅是对本申请的技术方案的示例 性说明,而不应当视为本申请的全部或者视为对本申请技术方案的限定或限制。
[0022] 根据本申请的一个实施例,如图1所示,示出了一种数据发布与数据抽取方法。如 图1所示,在步骤①,源接入端(简称源端)进行数据发布,按照与数据处理系统约定的数据 格式与发布方式发送报文给数据处理系统。在步骤②,数据处理系统将处理的情况反馈给 源端,源端则根据反馈的情况决定后续的数据处理。在步骤③,数据处理系统按照与目标接 入端约定的数据格式与抽取方式,将目标接入端订阅的数据发送给目标接入端。在步骤④, 目标接入端(简称目标端)将处理的情况反馈给数据处理系统,数据处理系统根据反馈的情 况决定后续的数据处理。
[0023] 图2进一步示出了根据本申请的一个实施例的数据处理系统的结构示意图。如图2 所示,数据处理系统包括通信交互模块、数据缓存模块、接收处理模块、任务调度模块以及 发送处理模块。在下文中,将就各个模块分别进行介绍。
[0024] 1.通信交互模块 在图2中,通信交互模块是数据源端与目标端的中介。源接入端会将待发布数据发送给 通信交互模块,而目标接入端也会从通信交互模块进行数据抽取。在一个实施例中,通信交 互模块对外负责连接源端和目标端,对内负责调用后续模块,并将处理的情况发送给源端、 目标端。
[0025] 在一个实施例中,所有的数据源端(系统)、数据目标端(系统)在与数据处理系统 连接时,需要采用统一的接入标准。例如,数据处理系统支持采用TCP/IP、文件、IPC等方式 与源数据端或目标数据端进行通信,但通信的内容必须遵循统一标准与格式。
[0026] 在一个实施例中,报文/文件的内容可包含两个组成部分,依次是:头部、数据域。 其结构如下表所示: 衷1:报件的内容结构图
头部是报文/文件的第一个数据元素,主要记录了数据类型、数据长度、数据条数、数据 源端标识、数据目标端标识、校验码等基本信息。数据域里可以携带一条或多条数据记录。
[0027] 例如,源端(标识为PUB)与数据处理系统约定将其内部每条100个字节的数据(类 型定义为A001),通过压缩打包的方式发布到数据处理系统(标识为GDDS),则源端可以通过 TCP/IP方式传输如下报f:

而目标端(标识为SUB)与数据处理系统约定需要抽取源数据类型为Al中的部分内容 (假定转换后的长度为30字节),则数据处理系统就会向目标端通过TCP/IP方式传输如下报
2、数据缓存模块 当源端与数据处理系统约定好数据类型等基本信息后,数据处理系统会为源端数据生 成一系列数据缓存。数据缓存的主要目的是为了协调上下游系统的处理效率,提高数据处 理的性能。
[0028] 在一个实施例中,缓存采用分段滚动的处理方式。如图3所示,上游源端发送的数 据是接收以后按顺序存放在数据缓存中的,下游目标端接收的数据是从数据缓存中按顺序 发送出去的。当上游源端和下游目标端的数据收/发处理能力差不多时,数据缓存处在一个 平衡状态并起到缓冲的作用。当下游目标端的数据处理能力赶不上上游源端的数据发送能 力时,数据缓存在一段时间后可能会被堵满,这时数据处理系统会指示上游源端系统暂缓 发送(例如要求暂停一定时间再发送或者是降低速度发送等指令)。
[0029] 下游目标端所定制的数据,来源于源端与数据处理系统约定的第一格式的数据有 时在格式、顺序上可能未必相同,因此需要对数据缓存中存储的数据进行一定的加工裁剪, 生成符合下游目标端要求的第二格式的数据。数据处理系统实现了常用的基于位置的数据 加工裁剪规则,例如复制、新增、修改、删除等,通过配置参数就能得到下游目标端订制的数 据内容。
[0030] 按照对数据完整理性的要求,被区分成有一致性要求的和非一致性要求的两种: 对于有一致性要求的数据,只有当目标端顺序处理完这些数据并返回了成功应答以后,数 据缓存段中的这些数据才可以被释放;对于非一致性要求的数据,数据处理系统调用通信 交互模块成功发出以后,数据缓存段中的这些数据就可以被释放,从而实现整个数据缓存 区的分段滚动循环使用。
[0031] 3、接收处理模块 接收处理模块用于接收通信交互模块上送的报文。由于通信交互模块仅负责数据的传 递,故接收处理模块需要对外部上送的数据进行解析处理。在一个实施例中,接收处理模块 对于源端上送的数据,需要进行源数据校验、源数据解压还原、数据缓存处理等操作。
[0032] 源数据校验针对源端上送的数据内容(待处理的数据)进行校验,保证上送数据的 完整性与正确性。在一个具体的实施例中,为每个接入端(包括源与目标)生成一个KEY值, 接入端根据这个KEY值,采用与数据处理系统约定的算法,例如可以采用MD5/DES等算法,对 上送报文中的数据域(压缩过后)进行计算,并将计算的结果填入报文头部中的校验值域 中。数据处理系统对于校验失败的源端数据予以拒绝(回送一个应答报文,其中的数据域指 示拒绝原因)。
[0033] 源数据解压还原针对源端上送的源数据包进行解压,解压采用与接入端约定好的 压缩/解压算法,例如可以采用zlib/lzma等算法。压缩能显著降低数据传输体量,大幅提升 数据处理系统的整体性能。
[0034]源数据缓存处理将校验通过并解压还原过后的源数据存放在数据缓存中,数据处 理系统根据上送的数据类型在数据缓存当前写入位置顺序写入。当发现所在段已经写满 了,会立即调用后续的任务调度模块处理该段中的这些数据;当发现没有可用段时,则会向 源端返回暂缓发送的指令,源端收到此应答后,将暂停工作到指定时间之后重新发送这次 的数据。
[0035] 4、任务调度模块 任务调度模块负责处理接收处理模块写入缓存后的数据,其主要功能是根据目标端与 数据处理系统的约定,将目标端的订阅任务信息进行路由,把待处理的数据段(不是每一条 数据)调度给后续的发送处理模块进行数据的分发。
[0036] 在一个实施例中,数据缓存段在两种情况下会被调度出去,一种是接收处理模块 发现该段已经写满了会通知任务调度模块进行调度,另一种是任务调度模块轮询发现该段 中存在数据但超过了规定时间仍未写满的情况,这样设计是为了使数据及时被调度分发出 去。
[0037] 由于存在一个源端的数据可能被抽取分发到多个目标端,为了更好地实现任务的 并发,设计了此任务调度模块,用于处理这种一对多、多对多的数据任务路由和转换。任务 调度模块根据订阅任务信息表决定待处理的数据段要发送给哪些目标接收端,通过调用发 送处理模块进行目标端数据的发送。
Luuje」 此外,仕一T头施例Ψ,仕务调反悮吠迚宕;性佰疋数做扠及达菹所有对该数做 有完整性要求的关联目标端的处理情况,当发现某段上的数据长时间没有反馈应答时,重 新调用发送处理模块继续该段缓存的数据分发,防止有发送处理进程异常退出的情况。 [0039] 5、发送处理模块 在一个实施例中,发送处理模块可具有两个功能,一是负责处理任务调度模块指示的 处理请求,将指定数据缓存段中的数据根据规则进行转换处理并发送给目标端;二是负责 处理目标端返回的应答,对于上次发送的数据若收到失败应答或者超时无应答时将再次发 送。
[0040]在一个实施例中,发送处理模块对于目标端上送的反馈应答,需要进行目标数据 校验、缓存处理等操作。
[0041 ]目标数据校验针对目标端上送的反馈应答内容进行校验,确保应答与请求一致, 保证数据的完整性与正确性,校验方法与源数据校验一致,校验不通过的应答做丢弃处理。 [0042]在一个实施例中,目标数据缓存处理针对目标端上送的反馈应答内容进行处理, 若目标端上送的反馈应答是成功处理,则表示数据处理系统可以继续处理该段中其余待处 理数据,直至该段中所有数据都被处理完毕就可以将该目标端置为"已完成"状态。当所有 订阅了该数据的目标端状态都变成了"已完成"状态时,就可以从数据缓存中释放掉该段。 若目标端上送的反馈应答是异常应答,则根据与目标端约定的异常处理方法进行后续处理 (比如跳过、重新发送若干次或者隔离指定目标端等策略)。
[0043]在一个实施例中,发送处理模块仅处理指定的缓存数据段,对于段中的数据,发送 处理模块根据转换规则,逐一转换为指定的目标数据类型,等该段中待处理的数据结束或 者达到与目标端约定的每个数据包的最大数据条数时,就调用通信交互模块发送出去。其 中的形变转换规则,目前数据处理系统支持简单的基于位置的拷贝、替换、新增、内容过滤 笺功能.并日可以方桂诵付开发动杰疰_活他扩展报亦鮮拖棚SlL
[0044]综上,提供了一种数据处理系统。该数据处理系统可包括:通信交互模块,配置成 与源接入端和目标接入端耦合,并从所述源接入端接收具有第一格式的第一数据;接收处 理模块,配置成从所述通信交互模块接收具有所述第一格式的所述第一数据,对所述第一 数据进行校验和解压还原从而得到源数据,并将校验通过并解压还原后的所述源数据根据 其类型分数据段存储在数据缓存中;发送处理模块,所述发送处理模块将待发送数据转换 为具有第二格式的第二数据,并经由所述通信交互模块发送给所述目标接入端;以及任务 调度模块,所述任务调度模块设置在所述接收处理模块与所述发送处理模块之间,其配置 成把待发送的数据按数据段调度给所述发送处理模块。
[0045] 根据本申请的另一方面,还提供了一种在源接入端与目标接入端之间(具体来说, 在数据处理系统中)进行数据发布与抽取的方法。该方法可包括:从所述源接入端接收具有 第一格式的第一数据;对所述第一数据进行校验和解压还原从而得到源数据;将校验通过 并解压还原后的所述源数据根据其类型分数据段存储在数据缓存中;把待发送的数据按数 据段进行调度;将所述待发送数据转换为具有第二格式的第二数据,并发送给所述目标接 入端。
[0046] 上文中,参照附图描述了本申请的【具体实施方式】。但是,本领域中的普通技术人员 能够理解,在不偏离本申请的精神和范围的情况下,还可以对本申请的【具体实施方式】作各 种变更和替换。这些变更和替换都落在本申请权利要求书所限定的范围内。
【主权项】
1. 一种数据处理系统,包括: 通信交互模块,所述通信交互模块配置成与源接入端和目标接入端耦合,并从所述源 接入端接收具有第一格式的第一数据; 接收处理模块,所述接收处理模块配置成从所述通信交互模块接收具有所述第一格式 的所述第一数据,对所述第一数据进行校验和解压还原从而得到源数据,并将校验通过并 解压还原后的所述源数据根据其类型分数据段存储在数据缓存中; 发送处理模块,所述发送处理模块将待发送数据转换为具有第二格式的第二数据,并 经由所述通信交互模块发送给所述目标接入端;以及 任务调度模块,所述任务调度模块设置在所述接收处理模块与所述发送处理模块之 间,其配置成把待发送的数据按数据段调度给所述发送处理模块。2. 如权利要求1所述的数据处理系统,其中,在所述接收处理模块发现存储在数据缓存 中的第一数据段已经写满时,所述接收处理模块配置成通知所述任务调度模块。3. 如权利要求2所述的数据处理系统,其中,在接收到所述接收处理模块的通知后,所 述任务调度模块配置成基于来自所述目标接入端的订阅任务信息将所述第一数据段调度 给所述发送处理模块。4. 如权利要求1所述的数据处理系统,其中,所述任务调度模块配置成定期轮询存储在 所述数据缓存中的各数据段。5. 如权利要求4所述的数据处理系统,其中,在确定第一数据段在超过规定时间仍未写 满的情况下,所述任务调度模块配置成将该第一数据段调度给所述发送处理模块。6. 如权利要求1所述的数据处理系统,其中,所述第一数据在头部存有校验值,以供所 述接收处理模块校验所述第一数据的完整性与正确性。7. -种在源接入端与目标接入端之间进行数据发布与抽取的方法,所述方法包括: 步骤A:从所述源接入端接收具有第一格式的第一数据; 步骤B:对所述第一数据进行校验和解压还原从而得到源数据, 步骤C:将校验通过并解压还原后的所述源数据根据其类型分数据段存储在数据缓存 中; 步骤D:把待发送的数据按数据段进行调度;以及 步骤E:将所述待发送数据转换为具有第二格式的第二数据,并发送给所述目标接入 端。8. 如权利要求7所述的方法,其中,步骤D包括:在确定存储在数据缓存中的第一数据段 已经写满时,基于来自所述目标接入端的订阅任务信息对所述第一数据段进行调度。9. 如权利要求7所述的方法,其中,步骤D包括:定期轮询存储在所述数据缓存中的各数 据段。10. 如权利要求9所述的方法,其中,步骤D还包括:在确定第一数据段在超过规定时间 仍未写满的情况下,对该第一数据段进行调度。11. 如权利要求7所述的方法,其中,所述第一数据在头部存有校验值,以供所述接收处 理模块校验所述第一数据的完整性与正确性。
【文档编号】G06F17/30GK105843966SQ201610252966
【公开日】2016年8月10日
【申请日】2016年4月22日
【发明人】杨燕明, 赵根苗, 茅毓铭, 徐湧, 占卫平
【申请人】中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1