[发明专利]一种基于映射归约的分布式数据处理方法有效
申请号: | 202010915505.6 | 申请日: | 2020-09-03 |
公开(公告)号: | CN112037874B | 公开(公告)日: | 2022-09-13 |
发明(设计)人: | 李磊;张人杰;卜晨阳;吴信东 | 申请(专利权)人: | 合肥工业大学 |
主分类号: | G16H10/60 | 分类号: | G16H10/60;G06F3/06 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 陆丽莉;何梅生 |
地址: | 230009 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 映射 分布式 数据处理 方法 | ||
1.一种基于映射归约的分布式数据处理方法,是应用于由M个医院数据库和x个保存数据的磁盘N={N1,N2,...,Ni,...,Nx}所组成的数据处理环境中,其中,Ni表示保存数据的第i个磁盘,1≤i≤x,其特征是,所述分布式数据处理方法是按如下步骤执行:
步骤一、对磁盘中的数据进行分片处理;
步骤1.1、定义对第i个磁盘Ni所保存的数据分片的标准大小为S;定义第p个病人身份证号为kp,定义第p个病人病历信息为vp;由第p个病人身份证号kp及其所对应的第p个病历信息vp组合成第p个键值对(kp,vp)并存入第i个磁盘Ni中;
步骤1.2、将第m个医院数据库数据按照所定义标准分片大小S对第i个磁盘进行分片读取,从而得到第i个磁盘Ni的分片集合表示第i个磁盘Ni的第j个分片,1≤j≤n;1≤m≤M;
步骤1.3、定义缓冲区并对缓冲区进行均等分区,得到分区后的缓冲区B={B1,B2,...,Bq,...,Bu},Bq表示缓冲区B的第q个分区,1≤q≤u;
步骤1.4、将第p个病人所对应的归约 任务Kp=kp%u添加到对应的第p个病人病历信息vp中;
步骤1.5、将键值对(kp,vp)写入缓冲区B中;
步骤二、缓冲区内数据处理;
步骤2.1、判断缓冲区B是否达到溢写条件β,若缓冲区B中数据大小达到溢写条件β,则说明达到溢写条件,并执行步骤2.2;若缓冲区中数据大小未达到溢写条件β时,则说明未达到溢写条件,并返回骤2.1;
步骤2.2、对缓冲区B中的所有键值对进行排序,若键值对中的病人身份证号不同,则将病人身份证号较大的排列在前;若键值对中的病人身份证号相同,则读取相同病人身份证号的键值对中病人病历信息所包含的就医时间,并对就医时间进行比较,将就医时间较早的排列在前;从而得到排序后的键值对并写入缓冲区B中;
步骤2.3、对缓冲区B中排序后的键值对进行合并,将相同病人身份证号的键值对中的病人病历信息合并,从而生成临时文件F后写入第i个磁盘Ni;
步骤2.4、定义时间周期为t;
步骤2.5、使用标识来判断第j个分片Sj数据是否处理完毕,每经过时间周期t,用标识 对第j个分片Sj内剩余数据进行判断,若则说明第j个分片Sj内的数据已经处理完毕,并对第i个磁盘Ni中的所有临时文件按照相同的病人身份证号进行合并,从而生成新的临时文件F′保存在第i个磁盘Ni中;若则说明第j个分片Sj内的数据还未处理完毕,并返回执行步骤2.5;
步骤三、对来自不同磁盘的数据进行归约 ;
步骤3.1、构建归约 任务集合R={R1,R2,...,Ru},Ru表示第u个归约 任务;定义内存缓冲区为E,且E>B;u>x;
步骤3.2、初始化i=1;
步骤3.3、每经过时间周期t,用判断是否第i个磁盘Ni中所有分片均已完成映射,若则说明在第i个磁盘Ni中所有分片数据均已处理完毕,并执行步骤3.3;若则说明在第i个磁盘Ni中存在未处理完数据的分片,并返回步骤3.2;
步骤3.4、读取第i个磁盘Ni中任意第p个键值对(kp,vp),并将第p个键值对(kp,vp)写入内存缓冲区E,读取第p个病历信息vp中的归约 任务Kp,从而启动对应的第Kp个归约 任务
步骤3.5、判断内存缓冲区E是否达到溢写比η,若内存缓冲区E数据大小达到溢写比η,则执行步骤3.6,若内存缓冲区E数据大小未达到溢写比η,则执行步骤3.8;
步骤3.6、对内存缓冲区E中的所有键值对进行排序,若键值对中的病人身份证号不同,则将病人身份证号较大的排列在前;若键值对中的病人身份证号相同,则读取相同病人身份证号键值对中的病人病历信息所包含的就医时间,并对就医时间进行比较,将就医时间较早的排列在前;从而得到排序后的键值对并写入内存缓冲区E中;
对内存缓冲区E中病人身份证号相同的键值对启动相同的归约 任务进行合并;从而生成内存临时文件FE后写入第i个磁盘Ni;
步骤3.7、第i个磁盘Ni启动第i个归约 任务Ri,利用第i个归约 任务Ri对第i个磁盘Ni中所有键值对按照相同病人身份证号进行合并,从而生成最终文件F*,使用最终文件F*覆盖第i个磁盘Ni中的所有键值对;
步骤3.8、将i+1赋值给i后,返回步骤3.3,直到i=x为止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010915505.6/1.html,转载请声明来源钻瓜专利网。