多业务场景大规模移动信令处理方法、装置、介质和设备与流程

文档序号:33639964发布日期:2023-03-29 01:47阅读:34来源:国知局
多业务场景大规模移动信令处理方法、装置、介质和设备与流程

1.本发明涉及大数据处理领域,特别是指一种多业务场景大规模移动信令处理方法、装置、介质和设备。


背景技术:

2.随着移动设备的增多,大规模的移动信令数据也随之产生,越来越多的业务利用移动信令数据,挖掘其内在信息价值,满足业务需求。利用数字技术提高社会安全治理能力是国家重要战略,对大规模移动信令的高效处理是提高社会安全治理能力的重要手段。现有利用移动信令同时支持包括人口统计和动态管控、打击犯罪、碰撞分析、漫入漫出预警等多种设备安全业务的方法,这些业务能够支撑实现设备的安全治理,提高社会安全治理能力,对国家具有重要的意义。
3.但多业务场景下,针对每种业务都要对接入的原始信令数据进行计算处理,其中存在着属于不同业务的相同计算逻辑,这会造成大规模移动信令的重复计算,当移动信令数据的规模不断变大时,会导致大量计算资源严重浪费,计算效率低,同时也直接影响了业务的处理响应效率,导致设备安全业务的分析处理响应速度总是非常慢,无法满足业务需求。


技术实现要素:

4.为解决现有技术的缺陷,本发明提供一种多业务场景大规模移动信令处理方法、装置、介质和设备,有效减少了多业务场景下大规模移动信令数据时的重复计算,既极大地减少了计算资源的浪费,又显著地提高了业务的处理响应效率。
5.本发明提供技术方案如下:
6.第一方面,本发明提供一种多业务场景大规模移动信令处理方法,所述方法包括:
7.s101:将每个业务分解为各自的数据准备过程和业务逻辑处理过程,所述数据准备过程包括若干计算单元,所述业务逻辑处理过程只使用所述数据准备过程提供的数据,不再产生新的数据形态;
8.其中,所述计算单元根据计算逻辑划分,每个计算单元对其输入只做一步形态转化;每个计算单元的信息均包括所属业务、计算单元id、共性标识、前置计算单元id和后续计算单元id,每个计算单元的信息作为一条记录保存在内存中的计算单元信息表t0中;
9.所述所属业务表示所述计算单元属于的业务的编号,所述计算单元id 为所述计算单元所使用的函数的函数名,所述共性标识的初始值为0,所述前置计算单元id标识了所述计算单元依赖的计算单元的id,所述后续计算单元id标识了所述计算单元之后执行的计算单元的id;
10.所述计算单元的输入为原始移动信令数据或前置计算单元的输出,当所述计算单元的输入为原始移动信令数据时,所述前置计算单元id设置为0;所述计算单元的输出为计算处理得到的数据的存储地址,当所述计算单元的输出与所述业务逻辑处理过程相连时,
所述后续计算单元id为业务逻辑处理过程;
11.s102:遍历所述计算单元信息表t0的每条记录,找出计算单元id、前置计算单元id和后续计算单元id均相同且所属业务不相同的记录;将找出的记录的相同的计算单元id、前置计算单元id和后续计算单元id 作为一条记录保存到内存中的共性计算逻辑信息表t1中;同时将找出的记录的计算单元信息表t0中的共性标识设置为1;
12.其中,所述共性计算逻辑信息表t1中的每条记录还包括是否已处理标识,所述是否已处理标识的初始值为0;
13.s103:将保存到共性计算逻辑信息表t1中的记录的计算单元id和为该计算单元id分配的快照数据存储地址作为一条记录保存到内存中的快照存储地址信息表t2中。
14.进一步的,所述方法还包括:
15.s201:判断所述共性计算逻辑信息表t1是否为空,若是,则结束,否则执行s202;
16.s202:查询所述共性计算逻辑信息表t1中前置计算单元id为0的记录,返回所有匹配记录r,从所述匹配记录r的第一条记录开始,执行 s203;
17.s203:根据所述共性计算逻辑信息表t1获取匹配记录r的计算单元 id为f,调用函数名为f的函数对接入的原始移动信令数据计算得到快照数据d,从所述快照存储地址信息表t2中获取计算单元id为f对应的快照数据存储地址a,将所述快照数据d存储到快照数据存储地址a中,成功存储后将所述共性计算逻辑信息表t1中计算单元id为f的记录的是否已处理标识设置为1;执行s204;
18.s204:根据所述共性计算逻辑信息表t1获取计算单元id为f的后续计算单元id为f1,查询所述共性计算逻辑信息表t1中计算单元id为 f1的记录,返回所有匹配记录r1;执行s205;
19.s205:判断匹配记录r1的数量,若匹配记录r1的数量为0,则执行 s208,否则执行s206;
20.s206:若匹配记录r1的数量为1,则调用函数名为f1的函数对从快照数据存储地址a读取的快照数据d计算得到快照数据d1,从所述快照存储地址信息表t2中获取计算单元id为f1对应的快照数据存储地址a1,将所述快照数据d1存储到快照数据存储地址a1中,成功存储后将所述共性计算逻辑信息表t1中计算单元id为f1的记录的是否已处理标识设置为1;执行s207;
21.若匹配记录r1的数量大于1,则根据所述共性计算逻辑信息表t1溯源获取计算单元id为f1且是否已处理标识为0的所有记录的前置计算单元id结果;对每个前置计算单元id结果,调用其函数对接入的原始移动信令数据计算得到快照数据o并存储到对应的快照数据存储地址中,并将相应的是否已处理标识设置为1;调用函数名为f1的函数对读取的快照数据d和快照数据o计算得到快照数据d1,从所述快照存储地址信息表t2中获取计算单元id为f1对应的快照数据存储地址a1,将所述快照数据d1存储到快照数据存储地址a1中,成功存储后将所述共性计算逻辑信息表t1中计算单元id为f1的记录的是否已处理标识设置为1;执行 s207;
22.s207:返回s204,根据所述共性计算逻辑信息表t1获取计算单元id 为f1的后续计算单元id为f2,查询所述共性计算逻辑信息表t1中计算单元id为f2的记录,返回所有匹配记录r2;并按照s205~s206的方法以此类推,直至返回的匹配记录的数量为0;执行s208;
23.s208:对于所述匹配记录r中的是否已处理标识为0的下一条记录,返回s203,按照s203~s207的方法以此类推,直至所述匹配记录r的所有记录的是否已处理标识均为1,结束。
24.进一步的,所述方法还包括:
25.s301:开始当前业务,接入原始移动信令数据;
26.s302:查询计算单元信息表t0中所属业务为当前操作的业务、前置计算单元id为0的记录,返回所有匹配记录r3,从所述匹配记录r3的第一条记录开始,执行s303;
27.s303:判断匹配记录r3的共性标识是否为1,若是则执行s304,否则执行s305;
28.s304:根据匹配记录r3的计算单元id从所述快照存储地址信息表 t2中获取对应的快照数据存储地址,并将获取的快照数据存储地址返回,然后执行s306;
29.s305:根据匹配记录r3的计算单元id调用对应的函数对输入的数据进行处理,得到计算结果并存储到新分配的快照数据存储地址中,将新分配的快照数据存储地址返回;执行s306;
30.s306:判断业务计算是否执行完毕,若是则结束,否则执行s307;
31.s307:根据计算单元信息表t0获取计算单元id对应的后置计算单元 id,返回s303,根据后置计算单元id判断下一计算单元对应的共性标识是否为1,并按照s304~s306的方法继续执行下一计算单元,直至业务计算执行完毕;
32.其中,若执行的下一计算单元有其它前置计算单元,则递归计算出其它所有前置计算单元,对每一个其它前置计算单,判断其对应的共性标识是否为1,按照s303~s305的方法,返回每个其它前置计算单元的快照数据存储地址;
33.当执行的下一计算单元需要对其前置计算单元的快照数据做计算时,根据其所有前置计算单元返回的快照数据存储地址读取存储的快照数据,并调用执行的下一计算单元的函数对读取的快照数据进行处理。
34.进一步的,当新业务接入、已有业务退出或已有业务计算逻辑调整时,所述方法还包括:
35.s401:按照s101~s103的方法,修改已有的计算单元信息表t0,并向原有的共性计算逻辑信息表t1和快照存储地址信息表t2新增记录;
36.s402:判断共性计算逻辑信息表t1中原有的记录在新修改的计算单元信息表t0中是否存在不少于两个业务的对应的记录,若否,将共性计算逻辑信息表t1中该原有的记录删除,将新修改的计算单元信息表t0 中与删除的记录对应的记录的共性标识设置为0,根据快照存储地址信息表t2将获取需要删除的快照数据存储地址,将快照数据存储地址下的快照数据移动到回收目录,将快照存储地址信息表t2中与删除的记录对应的记录删除。
37.第二方面,本发明提供一种多业务场景大规模移动信令处理装置,所述装置包括:
38.业务分解模块,用于将每个业务分解为各自的数据准备过程和业务逻辑处理过程,所述数据准备过程包括若干计算单元,所述业务逻辑处理过程只使用所述数据准备过程提供的数据,不再产生新的数据形态;
39.其中,所述计算单元根据计算逻辑划分,每个计算单元对其输入只做一步形态转化;每个计算单元的信息均包括所属业务、计算单元id、共性标识、前置计算单元id和后续计算单元id,每个计算单元的信息作为一条记录保存在内存中的计算单元信息表t0中;
40.所述所属业务表示所述计算单元属于的业务的编号,所述计算单元id 为所述计算单元所使用的函数的函数名,所述共性标识的初始值为0,所述前置计算单元id标识了所述计算单元依赖的计算单元的id,所述后续计算单元id标识了所述计算单元之后执行的计算单元的id;
41.所述计算单元的输入为原始移动信令数据或前置计算单元的输出,当所述计算单元的输入为原始移动信令数据时,所述前置计算单元id设置为0;所述计算单元的输出为计算处理得到的数据的存储地址,当所述计算单元的输出与所述业务逻辑处理过程相连时,所述后续计算单元id为业务逻辑处理过程;
42.共性计算逻辑模块,用于遍历所述计算单元信息表t0的每条记录,找出计算单元id、前置计算单元id和后续计算单元id均相同且所属业务不相同的记录;将找出的记录的相同的计算单元id、前置计算单元id 和后续计算单元id作为一条记录保存到内存中的共性计算逻辑信息表t1 中;同时将找出的记录的计算单元信息表t0中的共性标识设置为1;
43.其中,所述共性计算逻辑信息表t1中的每条记录还包括是否已处理标识,所述是否已处理标识的初始值为0;
44.存储对应模块,用于将保存到共性计算逻辑信息表t1中的记录的计算单元id和为该计算单元id分配的快照数据存储地址作为一条记录保存到内存中的快照存储地址信息表t2中。
45.进一步的,所述装置还包括:
46.第一判断模块,用于判断所述共性计算逻辑信息表t1是否为空,若是,则结束,否则执行第一查询模块;
47.第一查询模块,用于查询所述共性计算逻辑信息表t1中前置计算单元id为0的记录,返回所有匹配记录r,从所述匹配记录r的第一条记录开始,执行第一处理模块;
48.第一处理模块,用于根据所述共性计算逻辑信息表t1获取匹配记录 r的计算单元id为f,调用函数名为f的函数对接入的原始移动信令数据计算得到快照数据d,从所述快照存储地址信息表t2中获取计算单元id为f对应的快照数据存储地址a,将所述快照数据d存储到快照数据存储地址a中,成功存储后将所述共性计算逻辑信息表t1中计算单元id 为f的记录的是否已处理标识设置为1;执行第二查询模块;
49.第二查询模块,用于根据所述共性计算逻辑信息表t1获取计算单元 id为f的后续计算单元id为f1,查询所述共性计算逻辑信息表t1中计算单元id为f1的记录,返回所有匹配记录r1;执行第二判断模块;
50.第二判断模块,用于判断匹配记录r1的数量,若匹配记录r1的数量为0,则执行第二循环模块,否则执行第二处理模块;
51.第二处理模块,用于若匹配记录r1的数量为1,则调用函数名为f1 的函数对从快照数据存储地址a读取的快照数据d计算得到快照数据d1,从所述快照存储地址信息表t2中获取计算单元id为f1对应的快照数据存储地址a1,将所述快照数据d1存储到快照数据存储地址a1中,成功存储后将所述共性计算逻辑信息表t1中计算单元id为f1的记录的是否已处理标识设置为1;执行第一循环模块;
52.若匹配记录r1的数量大于1,则根据所述共性计算逻辑信息表t1溯源获取计算单元id为f1且是否已处理标识为0的所有记录的前置计算单元id结果;对每个前置计算单元
id结果,调用其函数对接入的原始移动信令数据计算得到快照数据o并存储到对应的快照数据存储地址中,并将相应的是否已处理标识设置为1;调用函数名为f1的函数对读取的快照数据d和快照数据o计算得到快照数据d1,从所述快照存储地址信息表 t2中获取计算单元id为f1对应的快照数据存储地址a1,将所述快照数据d1存储到快照数据存储地址a1中,成功存储后将所述共性计算逻辑信息表t1中计算单元id为f1的记录的是否已处理标识设置为1;执行第一循环模块;
53.第一循环模块,用于返回第二查询模块,根据所述共性计算逻辑信息表t1获取计算单元id为f1的后续计算单元id为f2,查询所述共性计算逻辑信息表t1中计算单元id为f2的记录,返回所有匹配记录r2;并按照第二判断模块~第二处理模块的方法以此类推,直至返回的匹配记录的数量为0;执行第二循环模块;
54.第二循环模块,用于对于所述匹配记录r中的是否已处理标识为0 的下一条记录,返回第一处理模块,按照第一处理模块~第一循环模块的方法以此类推,直至所述匹配记录r的所有记录的是否已处理标识均为1,结束。
55.进一步的,所述装置还包括:
56.数据接入模块,用于开始当前业务,接入原始移动信令数据;
57.第三查询模块,用于查询计算单元信息表t0中所属业务为当前操作的业务、前置计算单元id为0的记录,返回所有匹配记录r3,从所述匹配记录r3的第一条记录开始,执行第三判断模块;
58.第三判断模块,用于判断匹配记录r3的共性标识是否为1,若是则执行第三处理模块,否则执行第四处理模块;
59.第三处理模块,用于根据匹配记录r3的计算单元id从所述快照存储地址信息表t2中获取对应的快照数据存储地址,并将获取的快照数据存储地址返回,然后执行第四判断模块;
60.第四处理模块,用于根据匹配记录r3的计算单元id调用对应的函数对输入的数据进行处理,得到计算结果并存储到新分配的快照数据存储地址中,将新分配的快照数据存储地址返回;执行第四判断模块;
61.第四判断模块,用于判断业务计算是否执行完毕,若是则结束,否则执行第三循环模块;
62.第三循环模块,用于根据计算单元信息表t0获取计算单元id对应的后置计算单元id,返回第三判断模块,根据后置计算单元id判断下一计算单元对应的共性标识是否为1,并按照第三处理模块~第四判断模块的方法继续执行下一计算单元,直至业务计算执行完毕;
63.其中,若执行的下一计算单元有其它前置计算单元,则递归计算出其它所有前置计算单元,对每一个其它前置计算单,判断其对应的共性标识是否为1,按照第三判断模块~第四处理模块的方法,返回每个其它前置计算单元的快照数据存储地址;
64.当执行的下一计算单元需要对其前置计算单元的快照数据做计算时,根据其所有前置计算单元返回的快照数据存储地址读取存储的快照数据,并调用执行的下一计算单元的函数对读取的快照数据进行处理。
65.进一步的,当新业务接入、已有业务退出或已有业务计算逻辑调整时,所述装置还
包括:
66.共性计算逻辑新增模块,用于按照业务分解模块~存储对应模块的方法,修改已有的计算单元信息表t0,并向原有的共性计算逻辑信息表t1 和快照存储地址信息表t2新增记录;
67.共性计算逻辑删除模块,用于判断共性计算逻辑信息表t1中原有的记录在新修改的计算单元信息表t0中是否存在不少于两个业务的对应的记录,若否,将共性计算逻辑信息表t1中该原有的记录删除,将新修改的计算单元信息表t0中与删除的记录对应的记录的共性标识设置为0,根据快照存储地址信息表t2将获取需要删除的快照数据存储地址,将快照数据存储地址下的快照数据移动到回收目录,将快照存储地址信息表 t2中与删除的记录对应的记录删除。
68.第三方面,本发明提供一种用于多业务场景大规模移动信令处理的计算机可读存储介质,包括用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括第一方面所述的多业务场景大规模移动信令处理方法的步骤。
69.第四方面,本发明提供一种用于多业务场景大规模移动信令处理的设备,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现第一方面所述的多业务场景大规模移动信令处理方法的步骤。
70.本发明具有以下有益效果:
71.本发明中,在多业务场景下,对多个业务的数据准备模块中的计算单元进行共性计算逻辑提取操作,得到共性计算逻辑单元。共性计算逻辑单元是多个业务都拥有的计算单元,这些计算单元有着相同的计算单元id、前置计算单元id和后续计算单元id。针对多个社会安全业务的共性计算逻辑,在多业务计算时,只需通过共性计算逻辑单元对大规模原始信令数据统一计算一次即可,计算得到的小规模快照数据可以供多业务重复使用,有效减少了多业务场景下大规模移动信令数据时的重复计算,既极大地减少了计算资源的浪费,又显著地提高了业务的处理响应效率。
附图说明
72.图1为本发明的多业务场景大规模移动信令处理方法的流程图;
73.图2为业务计算分解及共性计算逻辑提取示意图;
74.图3为本发明的多业务场景大规模移动信令处理装置的示意图。
具体实施方式
75.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
76.实施例1:
77.本发明实施例提供一种多业务场景大规模移动信令处理方法,如图1 所示,该方法包括:
78.s101:将每个业务分解为各自的数据准备过程和业务逻辑处理过程,数据准备过程包括若干计算单元,业务逻辑处理过程只使用数据准备过程提供的数据,不再产生新的数据形态。
79.本发明给出了业务计算的分解模型,分解模型是先整体上将业务计算分为数据准备和业务逻辑处理两大过程,数据准备过程然后再具体划分计算单元。若干个计算单元根据计算逻辑划分,计算单元之间存在依赖关系,每个计算单元的信息均包括所属业务、计算单元id、共性标识、前置计算单元id和后续计算单元id,每个计算单元的信息作为一条记录保存在内存中的计算单元信息表t0中,t0为二维表,通过二维表t0维护数据准备过程每个计算单元的信息。
80.所属业务表示计算单元属于的业务的编号;计算单元id为计算单元所使用的函数的函数名,标识计算单元的身份;共性标识表示计算单元是否属于共性计算逻辑,用0和1来标识,0表示计算单元不是共性计算逻辑,1表示计算单元是共性计算逻辑,共性标识的初始值为0;前置计算单元id标识了计算单元依赖的计算单元的id;后续计算单元id标识了计算单元之后执行的计算单元的id。
81.计算单元的输入为原始大规模移动信令数据或前置计算单元的输出,每个计算单元对其输入只做一步形态转化,计算单元的输出为计算处理得到的数据的存储地址。
82.当计算单元的输入为原始大规模移动信令数据时,其前置计算单元id 设置为0,即当计算单元没有前置计算单元时,其前置计算单元id为0。当计算单元的输出与业务逻辑处理过程相连时,后续计算单元id为业务逻辑处理过程(businesshandle),即当计算单元没有后续计算单元时,其后续计算单元id为businesshandle。
83.由于业务逻辑处理过程只使用数据准备过程提供的数据,不再产生新的数据形态,因此可不划分计算单元。
84.在本步骤的一个实现示例中,如图2所示,业务1的计算单元1基于原始大规模移动信令数据构建包括基站、手机号、时间、停留时长的位置快照,其计算单元id记为locationsnapshot;计算单元2基于计算单元1 输出的位置快照构建时间区照聚合快照,其计算单元id记为 rangesnapshot;计算单元3基于原始大规模移动信令数据构建包括手机号、年龄、性别、姓名的身份快照,其计算单元id记为statussnapshot。业务 n的计算单元1、计算单元2与业务1的计算单元1、计算单元2相同。因此,构建的计算单元信息表t0如下表1所示(共性标识均为初值0)。
85.表1:计算单元信息表t0初始值
86.所属业务共性标识计算单元id前置计算单元id后续计算单元id10locationsnapshot0rangesnapshot10rangesnapshotlocationsnapshotbusinesshandle10rangesnapshotstatussnapshotbusinesshandle10statussnapshot0rangesnapshot20locationsnapshot0rangesnapshot20rangesnapshotlocationsnapshotbusinesshandle
87.s102:遍历计算单元信息表t0的每条记录,找出计算单元id、前置计算单元id和后续计算单元id均相同且所属业务不相同的记录;将找出的记录的相同的计算单元id、前置计算单元id和后续计算单元id作为一条记录保存到内存中的共性计算逻辑信息表t1中;同时将找出的记录的计算单元信息表t0中的共性标识设置为1。
88.其中,共性计算逻辑信息表t1中的每条记录还包括是否已处理标识,是否已处理标识的初始值为0。
89.本步骤用于提取共性计算逻辑,提取时,遍历t0,找出计算单元id、前置计算单元id、后续计算id都相同的不同业务逻辑的记录,并压缩为一条记录存入共性计算逻辑信息表t1。同时,t0中,经共性计算逻辑提取操作后,确认为共性计算逻辑的记录,其共性标识字段值将被置为1。 t1为二维表,通过二维表t1来维护共性计算逻辑信息,其字段包括计算单元id、前置计算单元id、后续计算单元id、是否已处理标识;是否已处理标识字段值为0或1,0为未处理,1为已处理,初始值为0。
90.在表1所示的计算单元信息表t0中,经共性计算逻辑提取操作后,共性计算逻辑为计算单元1和计算单元2,计算单元信息表t0如表2所示,共性计算逻辑信息表t1如表3所示。
91.表2:经共性计算逻辑提取操作后的计算单元信息表t0
[0092][0093][0094]
表3:共性计算逻辑信息表t1
[0095]
计算单元id前置计算单元id后续计算单元id是否已处理标识locationsnapshot0rangesnapshot0rangesnapshotlocationsnapshotbusinesshandle0
[0096]
s103:将保存到共性计算逻辑信息表t1中的记录的计算单元id和为该计算单元id分配的快照数据存储地址作为一条记录保存到内存中的快照存储地址信息表t2中。
[0097]
本步骤需要分配一个存储快照数据的地址给共性计算逻辑,具体是在 hbase中新建一个数据桶,并将数据桶地址返回。然后将快照数据存储地址和计算单元id保存到快照存储地址信息表t2中。快照存储地址信息表 t2为二维表,使用二维表t2维护计算单元和其快照数据存储地址的信息,字段包括计算单元id、快照数据存储地址。
[0098]
基于表3表示的共性计算逻辑信息表t1,快照存储地址信息表t2如表4所示,快照存储地址信息表t2维护着计算单元1和计算单元2计算得到的快照数据的存储地址。
[0099]
表4:快照存储地址信息表t2
[0100]
计算单元id快照数据存储地址locationsnapshotnode89/bucket_001rangesnapshotnode89/bucket_002
[0101]
本发明中,在多业务场景下,对多个业务的数据准备模块中的计算单元进行共性计算逻辑提取操作,得到共性计算逻辑单元。共性计算逻辑单元是多个业务都拥有的计算单元,这些计算单元有着相同的计算单元id、前置计算单元id和后续计算单元id。针对多个社会安全业务的共性计算逻辑,在后续多业务计算时,只需通过共性计算逻辑单元对大规模原始信令数据统一计算一次即可,计算得到的小规模快照数据可以供多业务重复使用,可以有效减少多业务场景下大规模移动信令数据时的重复计算,既可以极大地减少计算资源的浪费,又可以显著地提高业务的处理响应效率。
[0102]
前述得到的共性计算逻辑单元可以支持完成如下操作:1)构建大规模移动信令的小规模快照数据;2)基于小规模快照数据进行多业务计算; 3)共性计算逻辑和移动信令数据快照的全生命周期管理。
[0103]
对于构建大规模移动信令的小规模快照数据,其实现方法包括:
[0104]
s201:接收大规模原始信令数据,判断共性计算逻辑信息表t1是否为空,若是,则结束,否则执行s202。
[0105]
本步骤用于根据共性计算逻辑信息表t1来判断是否含有共性逻辑,判断的依据是表t1是否为空,如果为空则结束,否则继续执行步骤202。
[0106]
s202:查询共性计算逻辑信息表t1中前置计算单元id为0的记录,返回所有匹配记录r,从匹配记录r的第一条记录开始,执行s203。
[0107]
本步骤用于查询共性计算逻辑信息表t1中前置计算单元为原始移动信令数据的记录,即字段前置计算单元id值为0的记录。
[0108]
s203:根据共性计算逻辑信息表t1获取匹配记录r的计算单元id 为f,调用函数名为f的函数对接入的原始移动信令数据计算得到快照数据d。共性计算逻辑单元运行时,系统内存中维护一张二维表t2,用来管理计算单元和快照数据存储地址之间的对应关系。从快照存储地址信息表t2中获取计算单元id为f对应的快照数据存储地址a,将快照数据d 存储到快照数据存储地址a中,使用hbase数据桶存储快照数据,成功存储后将共性计算逻辑信息表t1中计算单元id为f的记录的是否已处理标识设置为1;执行s204。
[0109]
s204:根据共性计算逻辑信息表t1获取计算单元id为f的后续计算单元id为f1,查询共性计算逻辑信息表t1中计算单元id为f1的记录,返回所有匹配记录r1;执行s205。
[0110]
s205:判断匹配记录r1的数量,若匹配记录r1的数量为0,则执行s208,否则执行s206。
[0111]
共性计算逻辑之间存在依赖关系,依据计算单元的前置计算标识来确定计算单元的先后执行顺序。若匹配记录r1的数量为0,则表示该计算单元的后续计算单元无法再向后继续执行,即该计算单元的先后执行的各个共性计算逻辑已经执行完毕。
[0112]
s206:若匹配记录r1的数量为1,则表示计算单元id为f1的前置计算单元只有计算单元id为f一个。此时,调用函数名为f1的函数对从计算单元id为f的快照数据存储地址a读取的快照数据d计算得到快照数据d1,从快照存储地址信息表t2中获取计算单元id为f1对应的快照数据存储地址a1,将快照数据d1存储到快照数据存储地址a1中,成功存储后将共
性计算逻辑信息表t1中计算单元id为f1的记录的是否已处理标识设置为1;执行s207。
[0113]
若匹配记录r1的数量大于1,则表示计算单元id为f1的前置计算单元不只有计算单元id为f一个,还存在其它,即id为f1计算单元还依赖于其它前置计算单元的输出。此时需要根据共性计算逻辑信息表t1 溯源获取计算单元id为f1且是否已处理标识为0的所有记录的前置计算单元id结果(即所述的其它前置计算单元),直到前置计算单元id为0 或标记为已处理的计算单元。
[0114]
然后对每个前置计算单元id结果,递归计算得到其输出:即调用每个前置计算单元id的函数对接入的原始移动信令数据计算得到快照数据 o并存储到对应的快照数据存储地址中,并将相应的是否已处理标识设置为1(具体处理方式参见s203,此处不再赘述)。
[0115]
调用函数名为f1的函数对从对应的快照数据存储地址中读取的快照数据d和快照数据o(即计算单元id为f和其它前置计算单元的快照数据)计算得到快照数据d1,从快照存储地址信息表t2中获取计算单元id 为f1对应的快照数据存储地址a1,将快照数据d1存储到快照数据存储地址a1中,成功存储后将共性计算逻辑信息表t1中计算单元id为f1 的记录的是否已处理标识设置为1;执行s207。
[0116]
s207:返回s204,根据共性计算逻辑信息表t1获取计算单元id为 f1的后续计算单元id为f2,查询共性计算逻辑信息表t1中计算单元id 为f2的记录,返回所有匹配记录r2;并按照s205~s206的方法以此类推,直至返回的匹配记录的数量为0;执行s208。
[0117]
截止到s206,已经计算了共性计算逻辑信息表t1中的id为f和id 为f1的计算单元,其中f1为f的后续计算单元,本步骤中,返回s204 获取f1的后续计算单元f2,通过上述s205~s206的方法继续后续计算单元f2的计算,以此类推,直至不存在后续计算单元。
[0118]
s208:对于匹配记录r中的是否已处理标识为0的下一条记录,返回 s203,按照s203~s207的方法以此类推,直至匹配记录r的所有记录的是否已处理标识均为1,结束。
[0119]
截止到s207,是对匹配记录r中的第一条记录进行的计算,对于匹配记录r中的下一条记录,若其是否已处理标识为0,则返回s203继续计算,直至匹配记录r中的所有记录均已处理。
[0120]
在多业务场景下,本发明通过共性计算逻辑单元对接入的大规模原始移动信令数据进行计算,共性计算逻辑单元只需计算一次,得到同时支持多个业务的小规模快照数据,多个社会安全业务都基于快照数据进行重复分析处理使用,从而提高了业务处理响应的效率,在大数据处理领域具有很强的实用性和应用范围,具有很广泛的应用前景。
[0121]
每接入新的移动信令数据,共性计算逻辑单元都需要重新执行一次,并依据快照数据存储地址将计算得到的快照数据持久化进磁盘中。快照数据是不断更新的,系统只保存周期内数据,定期清理旧数据。在共性计算逻辑单元计算时,将已计算的共性计算逻辑单元的是否已处理标识字段值更新为1,所有共性计算逻辑单元计算结束后,即共性计算逻辑单元构建大规模移动信令的小规模快照数据完成后,将是否已处理标识字段值统一重新设置为0。
[0122]
对于基于小规模快照数据进行多业务计算,其实现方法包括如下 s301~s307步骤。该如下步骤为一个业务基于小规模快照数据的计算过程,多个业务的计算可以通过重复执行该过程来实现。
[0123]
s301:开始当前业务,接入原始移动信令数据。
[0124]
s302:查询计算单元信息表t0中所属业务为当前操作的业务、前置计算单元id为0(即前置计算单元为原始信令数据)的记录,返回所有匹配记录r3,从匹配记录r3的第一条记录开始,执行s303。
[0125]
s303:判断匹配记录r3的共性标识是否为1,若是则执行s304,否则执行s305。
[0126]
本步骤用于判断匹配记录r3的计算单元是否属于共性计算逻辑,依据是共性标识字段值,0代表不是共性计算逻辑,1代表是共性计算逻辑。
[0127]
s304:根据匹配记录r3的计算单元id从快照存储地址信息表t2中获取对应的快照数据存储地址,并将获取的快照数据存储地址返回,然后执行s306。
[0128]
如前述,共性计算逻辑已经计算并将快照数据存储到了快照存储地址信息表t2中的快照数据存储地址内,因此不再计算,直接根据计算单元 id获取对应的快照数据存储地址即可。
[0129]
s305:根据匹配记录r3的计算单元id调用对应的函数对输入的数据进行处理,得到计算结果并存储到新分配的快照数据存储地址中,将新分配的快照数据存储地址返回;执行s306。
[0130]
本步骤用于不是共性计算逻辑时的计算,根据计算单元id函数对输入的原始大规模移动心灵数据进行处理,得到计算结果并存储到新分配的快照数据存储地址q下,返回快照数据存储地址q。
[0131]
s306:判断业务计算是否执行完毕,若是则结束,否则执行s307。
[0132]
判断业务计算是否执行完毕,依据是业务逻辑过程是否已经处理,是否已经得到业务计算预期的结果。
[0133]
s307:根据计算单元信息表t0获取计算单元id对应的后置计算单元 id,返回s303,根据后置计算单元id判断下一计算单元对应的共性标识是否为1,并按照s304~s306的方法继续执行下一计算单元,直至业务计算执行完毕。
[0134]
截止到s306,匹配记录r3的第一条记录已经执行完毕,也就是第一个前置计算单元id为0的计算单元已经执行完毕,后续需要根据计算单元信息表t0的后置计算单元id执行其下一计算单元。该下一计算单元的处理方法与s303~s306类似,以此类推,直至业务计算执行完毕。
[0135]
其中,若执行的下一计算单元不只有一个前置计算单元(即第一个前置计算单元id为0的计算单元),而是还有其它前置计算单元时,需要递归计算出其它所有前置计算单元,对每一个其它前置计算单,判断其对应的共性标识是否为1,按照s303~s305的方法,返回每个其它前置计算单元的快照数据存储地址。所有前置计算单元的输出作为执行的下一计算单元的输入。
[0136]
当执行的下一计算单元需要对其前置计算单元的快照数据做计算时 (即执行的下一计算单元不是共性计算逻辑时),需要根据其所有前置计算单元返回的快照数据存储地址读取存储的快照数据,并调用执行的下一计算单元的函数对读取的快照数据进行处理。
[0137]
最后,返回s303,对匹配记录r3的下一条记录进行处理,直至业务处理完毕,得到计算结果。
[0138]
本发明中,大规模移动信令的小规模快照数据能够支持多业务计算对于效率的需
求。多业务场景下,不同业务都要接入并处理大规模原始信令数据,其中存在着大量重复计算。各业务运行时依次执行计算单元,在执行计算单元前先根据共性标识判断其是否属于共性计算逻辑,如果属于,则跳过计算,并从内存维护的二维表t2中获取快照数据存储地址作为执行结果,继续执行下一计算单元。待真正需要使用数据时,再根据快照数据存储地址访问快照数据做计算。通过该方法可以减少多业务场景下移动信令数据的重复计算,既避免了资源的严重浪费,又提高了业务处理效率。默认访问存储地址下最新版本快照数据,也可以访问清理周期内指定版本的快照数据。
[0139]
对于共性计算逻辑和移动信令数据快照的全生命周期管理,其实现方法包括如下s401~s402步骤。触发该步骤执行的情况为业务变动,包括:新业务接入、已有业务退出、已有业务计算逻辑调整等,具体步骤如下:
[0140]
s401:按照s101~s103的方法,修改已有的计算单元信息表t0,并向原有的共性计算逻辑信息表t1和快照存储地址信息表t2新增记录。
[0141]
当业务变动时,判断是否新增加了共性计算逻辑,依据是共性计算逻辑提取操作是否产生新的计算单元,若新增了共性计算逻辑,则按照 s101~s103的方法,更新t0、t1和t2。
[0142]
其中,需要系统为新增的共性计算逻辑其提供一个快照数据存储地址,具体是在hbase中新建一个数据桶,并将数据桶地址返回,向表t2中新增一条记录,快照存储地址字段值为新分配的数据桶地址;并在二维表 t1中新增一条该共性计算逻辑的记录,是否已处理字段值为0;同时在 t0中更新对应计算单元的共性标识,标识其为共性计算逻辑。
[0143]
s402:判断共性计算逻辑信息表t1中原有的记录在新修改的计算单元信息表t0中是否存在不少于两个业务的对应的记录,若否,将共性计算逻辑信息表t1中该原有的记录删除,将新修改的计算单元信息表t0 中与删除的记录对应的记录的共性标识设置为0,根据快照存储地址信息表t2将获取需要删除的快照数据存储地址,将快照数据存储地址下的快照数据移动到回收目录,将快照存储地址信息表t2中与删除的记录对应的记录删除。
[0144]
当业务变动时,判断是否有需要删除的共性计算逻辑,依据是经过共性计算逻辑提取操作查看是否有存在于少于两个业务的计算单元。当计算单元存在于超过一个业务中即可提取或保留为共性计算逻辑,反之则需从共性计算逻辑信息表t1中删除。
[0145]
删除时,需要先根据快照存储地址移除快照数据至回收区,再从二维表t1、t2中删除该计算单元的记录,同时在t0中更新对应计算单元的共性标识为非共性计算逻辑。数据管理模块定时扫描各个快照数据块的元数据,判断是否超过清理周期,需要删除的快照数据块移动到回收区。本发明实现了对共性计算逻辑和快照数据全生命周期的自动管理,符合目前的大数据分析应用需求,具有广阔的应用前景。
[0146]
实施例2:
[0147]
本发明实施例提供一种多业务场景大规模移动信令处理装置,如图3 所示,该装置包括:
[0148]
业务分解模块1,用于将每个业务分解为各自的数据准备过程和业务逻辑处理过程,数据准备过程包括若干计算单元,业务逻辑处理过程只使用数据准备过程提供的数据,不再产生新的数据形态。
[0149]
其中,计算单元根据计算逻辑划分,每个计算单元对其输入只做一步形态转化;每
个计算单元的信息均包括所属业务、计算单元id、共性标识、前置计算单元id和后续计算单元id,每个计算单元的信息作为一条记录保存在内存中的计算单元信息表t0中。
[0150]
所属业务表示计算单元属于的业务的编号,计算单元id为计算单元所使用的函数的函数名,共性标识的初始值为0,前置计算单元id标识了计算单元依赖的计算单元的id,后续计算单元id标识了计算单元之后执行的计算单元的id。
[0151]
计算单元的输入为原始移动信令数据或前置计算单元的输出,当计算单元的输入为原始移动信令数据时,前置计算单元id设置为0;计算单元的输出为计算处理得到的数据的存储地址,当计算单元的输出与业务逻辑处理过程相连时,后续计算单元id为业务逻辑处理过程。
[0152]
共性计算逻辑模块2,用于遍历计算单元信息表t0的每条记录,找出计算单元id、前置计算单元id和后续计算单元id均相同且所属业务不相同的记录;将找出的记录的相同的计算单元id、前置计算单元id和后续计算单元id作为一条记录保存到内存中的共性计算逻辑信息表t1 中;同时将找出的记录的计算单元信息表t0中的共性标识设置为1。
[0153]
其中,共性计算逻辑信息表t1中的每条记录还包括是否已处理标识,是否已处理标识的初始值为0。
[0154]
存储对应模块3,用于将保存到共性计算逻辑信息表t1中的记录的计算单元id和为该计算单元id分配的快照数据存储地址作为一条记录保存到内存中的快照存储地址信息表t2中。
[0155]
本发明中,在多业务场景下,对多个业务的数据准备模块中的计算单元进行共性计算逻辑提取操作,得到共性计算逻辑单元。共性计算逻辑单元是多个业务都拥有的计算单元,这些计算单元有着相同的计算单元id、前置计算单元id和后续计算单元id。针对多个社会安全业务的共性计算逻辑,在后续多业务计算时,只需通过共性计算逻辑单元对大规模原始信令数据统一计算一次即可,计算得到的小规模快照数据可以供多业务重复使用,可以有效减少多业务场景下大规模移动信令数据时的重复计算,既可以极大地减少计算资源的浪费,又可以显著地提高业务的处理响应效率。
[0156]
作为本发明实施例的一种改进,所述装置还包括:
[0157]
第一判断模块,用于判断共性计算逻辑信息表t1是否为空,若是,则结束,否则执行第一查询模块。
[0158]
第一查询模块,用于查询共性计算逻辑信息表t1中前置计算单元id 为0的记录,返回所有匹配记录r,从匹配记录r的第一条记录开始,执行第一处理模块。
[0159]
第一处理模块,用于根据共性计算逻辑信息表t1获取匹配记录r的计算单元id为f,调用函数名为f的函数对接入的原始移动信令数据计算得到快照数据d,从快照存储地址信息表t2中获取计算单元id为f 对应的快照数据存储地址a,将快照数据d存储到快照数据存储地址a 中,成功存储后将共性计算逻辑信息表t1中计算单元id为f的记录的是否已处理标识设置为1;执行第二查询模块。
[0160]
第二查询模块,用于根据共性计算逻辑信息表t1获取计算单元id为 f的后续计算单元id为f1,查询共性计算逻辑信息表t1中计算单元id 为f1的记录,返回所有匹配记录r1;执行第二判断模块。
[0161]
第二判断模块,用于判断匹配记录r1的数量,若匹配记录r1的数量为0,则执行第
二循环模块,否则执行第二处理模块。
[0162]
第二处理模块,用于若匹配记录r1的数量为1,则调用函数名为f1 的函数对从快照数据存储地址a读取的快照数据d计算得到快照数据d1,从快照存储地址信息表t2中获取计算单元id为f1对应的快照数据存储地址a1,将快照数据d1存储到快照数据存储地址a1中,成功存储后将共性计算逻辑信息表t1中计算单元id为f1的记录的是否已处理标识设置为1;执行第一循环模块。
[0163]
若匹配记录r1的数量大于1,则根据共性计算逻辑信息表t1溯源获取计算单元id为f1且是否已处理标识为0的所有记录的前置计算单元id 结果;对每个前置计算单元id结果,调用其函数对接入的原始移动信令数据计算得到快照数据o并存储到对应的快照数据存储地址中,并将相应的是否已处理标识设置为1;调用函数名为f1的函数对读取的快照数据d 和快照数据o计算得到快照数据d1,从快照存储地址信息表t2中获取计算单元id为f1对应的快照数据存储地址a1,将快照数据d1存储到快照数据存储地址a1中,成功存储后将共性计算逻辑信息表t1中计算单元id为f1的记录的是否已处理标识设置为1;执行第一循环模块。
[0164]
第一循环模块,用于返回第二查询模块,根据共性计算逻辑信息表 t1获取计算单元id为f1的后续计算单元id为f2,查询共性计算逻辑信息表t1中计算单元id为f2的记录,返回所有匹配记录r2;并按照第二判断模块~第二处理模块的方法以此类推,直至返回的匹配记录的数量为0;执行第二循环模块。
[0165]
第二循环模块,用于对于匹配记录r中的是否已处理标识为0的下一条记录,返回第一处理模块,按照第一处理模块~第一循环模块的方法以此类推,直至匹配记录r的所有记录的是否已处理标识均为1,结束。
[0166]
作为本发明实施例的另一种改进,所述装置还包括:
[0167]
数据接入模块,用于开始当前业务,接入原始移动信令数据。
[0168]
第三查询模块,用于查询计算单元信息表t0中所属业务为当前操作的业务、前置计算单元id为0的记录,返回所有匹配记录r3,从匹配记录r3的第一条记录开始,执行第三判断模块。
[0169]
第三判断模块,用于判断匹配记录r3的共性标识是否为1,若是则执行第三处理模块,否则执行第四处理模块。
[0170]
第三处理模块,用于根据匹配记录r3的计算单元id从快照存储地址信息表t2中获取对应的快照数据存储地址,并将获取的快照数据存储地址返回,然后执行第四判断模块。
[0171]
第四处理模块,用于根据匹配记录r3的计算单元id调用对应的函数对输入的数据进行处理,得到计算结果并存储到新分配的快照数据存储地址中,将新分配的快照数据存储地址返回;执行第四判断模块。
[0172]
第四判断模块,用于判断业务计算是否执行完毕,若是则结束,否则执行第三循环模块。
[0173]
第三循环模块,用于根据计算单元信息表t0获取计算单元id对应的后置计算单元id,返回第三判断模块,根据后置计算单元id判断下一计算单元对应的共性标识是否为1,并按照第三处理模块~第四判断模块的方法继续执行下一计算单元,直至业务计算执行完毕。
[0174]
其中,若执行的下一计算单元有其它前置计算单元,则递归计算出其它所有前置计算单元,对每一个其它前置计算单,判断其对应的共性标识是否为1,按照第三判断模块~第四处理模块的方法,返回每个其它前置计算单元的快照数据存储地址。
[0175]
当执行的下一计算单元需要对其前置计算单元的快照数据做计算时,根据其所有前置计算单元返回的快照数据存储地址读取存储的快照数据,并调用执行的下一计算单元的函数对读取的快照数据进行处理。
[0176]
作为本发明实施例的再一种改进,当新业务接入、已有业务退出或已有业务计算逻辑调整时,所述装置还包括:
[0177]
共性计算逻辑新增模块,用于按照业务分解模块~存储对应模块的方法,修改已有的计算单元信息表t0,并向原有的共性计算逻辑信息表t1 和快照存储地址信息表t2新增记录。
[0178]
共性计算逻辑删除模块,用于判断共性计算逻辑信息表t1中原有的记录在新修改的计算单元信息表t0中是否存在不少于两个业务的对应的记录,若否,将共性计算逻辑信息表t1中该原有的记录删除,将新修改的计算单元信息表t0中与删除的记录对应的记录的共性标识设置为0,根据快照存储地址信息表t2将获取需要删除的快照数据存储地址,将快照数据存储地址下的快照数据移动到回收目录,将快照存储地址信息表 t2中与删除的记录对应的记录删除。
[0179]
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例1相同,为简要描述,该装置实施例部分未提及之处,可参考前述方法实施例1中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的装置和单元的具体工作过程,均可以参考上述方法实施例1中的对应过程,在此不再赘述。
[0180]
实施例3:
[0181]
本发明提供的上述实施例1所述的方法可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例1所描述方案的效果。因此,本发明还提供用于多业务场景大规模移动信令处理的计算机可读存储介质,包括用于存储处理器可执行指令的存储器,指令被处理器执行时实现包括实施例1的多业务场景大规模移动信令处理方法的步骤。
[0182]
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom 等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
[0183]
上述所述的存储介质根据方法实施例1的描述还可以包括其他的实施方式,本实施例的实现原理及产生的技术效果和前述方法实施例1相同,具体可以参照相关方法实施例1的描述,在此不作一一赘述。
[0184]
实施例4:
[0185]
本发明还提供一种用于多业务场景大规模移动信令处理的设备,所述的设备可以为单独的计算机,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的实际操作装置等。所述多业务场景大规模移动信令处理的设备可以包括至少一个处
理器以及存储计算机可执行指令的存储器,处理器执行所述指令时实现上述任意一个或者多个实施例 1中所述多业务场景大规模移动信令处理方法的步骤。
[0186]
上述所述的设备根据方法实施例1的描述还可以包括其他的实施方式,本实施例的实现原理及产生的技术效果和前述方法实施例1相同,具体可以参照相关方法实施例1的描述,在此不作一一赘述。
[0187]
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1