公开/公告号CN101714099A
专利类型发明专利
公开/公告日2010-05-26
原文格式PDF
申请/专利权人 金蝶软件(中国)有限公司;
申请/专利号CN200910189019.4
发明设计人 郑学明;
申请日2009-12-16
分类号G06F9/46;
代理机构深圳中一专利商标事务所;
代理人张全文
地址 518000 广东省深圳市南山区深南大道市高新技术工业村W1-B4
入库时间 2023-12-17 23:57:08
法律状态公告日
法律状态信息
法律状态
2012-12-05
授权
授权
2010-08-04
实质审查的生效 IPC(主分类):G06F9/46 申请日:20091216
实质审查的生效
2010-05-26
公开
公开
技术领域
本发明属于数据处理技术领域,尤其涉及一种行集数据的处理方法、装置及数据处理系统。
背景技术
在现有技术中,为了实现复杂的多步骤的数据处理,一般会有多个任务节点,每个任务节点都有不同的处理逻辑和算法,数据处理时由第一个任务节点开始,处理完数据后,将数据输出到第二个任务节点,以此类推,一直到最后一个任务节点,如果有异常,会直接输出到异常任务节点,并结束任务。
上述的数据处理方式中,有且只有一个起始任务节点和一个终止任务节点,非起点的处理任务有且只有一个前继任务,非结束点的任务有且只有一个后继任务,这样的处理方法在定义上比较简单,流程比较清楚,但响应速度较慢,必须等到所有节点任务执行完毕后才会有数据输出。另外,为了提高执行速度,需要分配大块的连续内存,来装载每个任务节点处理数据的输入/输出。
发明内容
本发明实施例的目的在于提供一种行集数据的处理方法,旨在解决现有技术中存在的数据处理的响应速度慢、且需占用大块的连续内存的问题。
本发明是这样实现的,一种行集数据的处理方法,所述方法包括以下步骤:
将待处理的行集数据传入起始任务节点的输入缓冲区;
从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;
当存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;
当不存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;
将终止任务节点输出缓冲区的数据输出。
本发明实施例的另一目的在于提供一种行集数据的处理装置,所述装置包括:
输入缓冲区,作为起始任务节点的输入缓冲区;
多个中转缓冲区,作为每个中继任务节点的中转缓冲区;
输出缓冲区,作为终止任务节点的输出缓冲区;
数据传输模块,用于将待处理的行集数据传入起始任务节点的输入缓冲区;
多个处理线程,用于从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;当存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;当不存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;
数据输出模块,用于将终止任务节点输出缓冲区的数据输出。
本发明实施例的另一目的在于提供一种包括上面所述的行集数据的处理装置的数据处理系统。
在本发明实施例中,采用流水线式处理行集数据,以单数据行作为处理单位,每一行数据处理完毕,立即输出到中继任务节点,不必等待所有数据行处理完毕,提高了数据处理的响应速度,只需要申请更小的内存块,对系统内存的要求更低、使用率更高;提高了数据的处理量,使得处理系统具有更好的伸缩性,从而通过扩充CPU和其它硬件来加快处理的速度,具有很好的扩展性。
附图说明
图1是本发明第一实施例提供的行集数据的处理方法的实现流程示意图。
图2是本发明第二实施例提供的行集数据的处理方法的实现流程示意图。
图3是本发明第三实施例提供的行集数据的处理方法的实现流程示意图。
图4是本发明第四实施例提供的行集数据的处理方法的实现流程示意图。
图5是本发明第五实施例提供的行集数据的处理方法的实现流程示意图。
图6是本发明第六实施例提供的行集数据的处理装置的结构示意图。
图7是本发明第七实施例提供的行集数据的处理装置的结构示意图。
图8是本发明第八实施例提供的行集数据的处理装置的结构示意图。
图9是本发明第九实施例提供的行集数据的处理装置的结构示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明中,采用流水线式处理行集数据,以单数据行作为处理单位,每一行数据处理完毕,立即输出到中继任务节点,不必等待所有数据行处理完毕,提高了数据处理的响应速度,只需要申请更小的内存块。
本发明提供了一种行集数据的处理方法、装置及数据处理系统:
所述方法包括:将待处理的行集数据传入起始任务节点的输入缓冲区;从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;当存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;当不存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;将终止任务节点输出缓冲区的数据输出。
所述装置包括:数据传输模块,用于将待处理的行集数据传入起始任务节点的输入缓冲区;多个处理线程,用于从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;当存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;当不存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;数据输出模块,用于将终止任务节点输出缓冲区的数据输出。
所述数据处理系统包括上面所述的行集数据的处理装置。
在本发明实施例中,其中,行集数据是指具有相同数据结构对称的多行记录,例如关系数据库的表记录。
其中,数据处理是对输入数据,按特定的逻辑和算法进行运算处理,输出符合要求的数据。
其中,一个任务节点可以定义一个或多个供用户执行的任务。
实施例一:
请参阅图1,为本发明第一实施例提供的行集数据的处理方法,其包括以下步骤:
在步骤S101中,将待处理的行集数据传入起始任务节点的输入缓冲区;
在步骤S102中,从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;
在步骤S103中,当存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;
在步骤S104中,当不存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;
在步骤S105中,将终止任务节点输出缓冲区的数据输出。
实施例二:
请参阅图2,为本发明第二实施例提供的行集数据的处理方法,其包括以下步骤:
在步骤S201中,为数据处理任务流中的所有任务节点均开启一个处理线程;
在步骤S202中,将待处理的行集数据传入起始任务节点的输入缓冲区;
在步骤S203中,所述处理线程从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;
在步骤S204中,当存在下一个中继任务节点时,所述处理线程从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;
在步骤S205中,当不存在下一个中继任务节点时,所述处理线程从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;
在步骤S206中,将终止任务节点输出缓冲区的数据输出。
实施例三:
请参阅图3,为本发明第三实施例提供的行集数据的处理方法,其包括以下步骤:
在步骤S301中,设置起始任务节点的输入缓冲区;设置每个中继任务节点的中转缓冲区;设置终止任务节点的输出缓冲区;为数据处理任务流中的所有任务节点均开启一个处理线程;
在步骤S302中,将待处理的行集数据传入起始任务节点的输入缓冲区;
在步骤S303中,所述处理线程从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;
在步骤S304中,当存在下一个中继任务节点时,所述处理线程从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;
在步骤S305中,当不存在下一个中继任务节点时,所述处理线程从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;
在步骤S306中,将终止任务节点输出缓冲区的数据输出。
实施例四:
请参阅图4,为本发明第四实施例提供的行集数据的处理方法,其包括以下步骤:
在步骤S401中,将待处理的行集数据传入起始任务节点的输入缓冲区;
在步骤S402中,从所述输入缓冲区中逐行取出数据进行处理,当处理完一行数据后,将其从起始任务节点的输入缓冲区中清除,并将处理完的数据传输至中转缓冲区;
在步骤S403中,当存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;
在步骤S404中,当不存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;
在步骤S405中,将终止任务节点输出缓冲区的数据输出。
实施例五:
请参阅图5,为本发明第五实施例提供的行集数据的处理方法,其包括以下步骤:
在步骤S501中,将待处理的行集数据传入起始任务节点的输入缓冲区;
在步骤S502中,从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;
在步骤S503中,当存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;
在步骤S504中,当不存在下一个中继任务节点时,从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;
在步骤S505中,将终止任务节点输出缓冲区的数据输出;
在步骤S506中,当终止任务节点标识为完成时,关闭所有任务节点的处理线程,释放内存。
在本发明实施例中,当起始任务节点的输入缓冲区为空时,会自动置完成标识,而当中继任务节点的中转缓冲区为空时,会将其中转缓冲区置完成标识,并结束该任务节点的任务,这样,以此类推,当行集数据不断被推送时,所有处理线程会被结束掉。
实施例六:
请参阅图6,为本发明第六实施例提供的行集数据的处理装置,为了便于说明,仅示出了与本发明实施例相关的部分。所述行集数据的处理装置包括:数据传输模块100、多个处理线程101、以及数据输出模块103。所述行集数据的处理装置可以是内置于数据处理系统中的软件单元、硬件单元或者是软硬件结合的单元。
其中,输入缓冲区,作为起始任务节点的输入缓冲区;多个中转缓冲区,作为每个中继任务节点的中转缓冲区;输出缓冲区,作为终止任务节点的输出缓冲区。
数据传输模块100将待处理的行集数据传入起始任务节点的输入缓冲区;多个处理线程101从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;当存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;当不存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;数据输出模块103将终止任务节点输出缓冲区的数据输出。
实施例七:
请参阅图7,为本发明第七实施例提供的行集数据的处理装置,与第六实施例相比,第七实施例多了处理线程开启模块1001。
处理线程开启模块1001,用于为数据处理任务流中的所有任务节点均开启一个处理线程101。数据传输模块100将待处理的行集数据传入起始任务节点的输入缓冲区;多个处理线程101从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;当存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;当不存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;数据输出模块103将终止任务节点输出缓冲区的数据输出。
实施例八:
请参阅图8,为本发明第八实施例提供的行集数据的处理装置,与第六实施例相比,第八实施例多了数据清除模块1002。
数据传输模块100将待处理的行集数据传入起始任务节点的输入缓冲区;多个处理线程101从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;当处理完一行数据后,数据清除模块1002将其从起始任务节点的输入缓冲区中清除;当存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;当不存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;数据输出模块103将终止任务节点输出缓冲区的数据输出。
实施例九:
请参阅图9,为本发明第九实施例提供的行集数据的处理装置,与第六实施例相比,第八实施例多了内存释放模块1003。
数据传输模块100将待处理的行集数据传入起始任务节点的输入缓冲区;多个处理线程101从所述输入缓冲区中逐行取出数据进行处理,将处理完的数据传输至中转缓冲区;当存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至下一个中转缓冲区,以此类推;当不存在下一个中继任务节点时,多个处理线程101从当前中转缓冲区中逐行取出数据进行处理,将处理完的数据传输至终止任务节点的输出缓冲区;数据输出模块103将终止任务节点输出缓冲区的数据输出;当终止任务节点标识为完成时,内存释放模块1003关闭所有任务节点的处理线程,释放内存。
由上可知,本发明实施例采用流水线式处理行集数据,以单数据行作为处理单位,每一行数据处理完毕,立即输出到中继任务节点,不必等待所有数据行处理完毕,其带来的有益效果如下:
1:在终止任务节点很快则会得到部分输出的行数据,提高了数据处理的响应速度。
2:由于数据处理过程中只涉及行数据,只需要申请更小的内存块,对系统内存的要求更低、使用率更高。
3:在处理处理时,分配的内存不需要是大块内存,处理完成的数据行在往后输出后,立即释放内存,也不会占用更多的内存。
4:由于数据是行式的,可以将任务节点拆分成多个任务,每个任务的输出后继可以是多个拆分形成的任务节点,每个任务也可以有多个前继拆分形成的任务节点,这样,就可以将处理的压力分散到多个任务节点,提高了数据的处理量,使得处理系统具有更好的伸缩性,从而通过扩充CPU和其它硬件来加快处理的速度,具有很好的扩展性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
机译: 数据处理设备,程序,数据结构,数据处理系统,分组数据,记录介质,存储设备,数据处理方法,数据通信方法和指令集
机译: 从图像对象的多个二维图像数据集计算图像对象的三维图像数据集的方法,涉及一次从表中读取一组行的权重因子,并使用所有行的因子
机译: 数据处理系统具有在其上存储数据集的存储器,并且提供计算单元以生成另一数据集,并且提供一个单元用于搜索两个数据集之间的相似性