非同源不一致数据处理方法与流程

文档序号:29164291发布日期:2022-03-09 01:47阅读:194来源:国知局
非同源不一致数据处理方法与流程

1.本技术涉及数据处理领域,具体涉及一种非同源不一致数据处理方法。


背景技术:

2.在一些特定应用场景,数据获取系统需要获取预设地理区域的特定网格的状态信息。这些特定网格的状态信息需要通过网格对应的用户主动告知相应的数据源,之后相应的数据源上报到数据获取系统。这种获取方式会导致数据源中记录的状态信息存在不准确性。例如,某个特定网格的在时间t1时为状态1,在时间t2时可能已经发生了变化,而由于该特定网格的用户并没有告知相应的数据源,这将会导致数据源中存储的状态信息是不准确的。进而,数据获取系统获取的多个数据源的数据会存在不一致。


技术实现要素:

3.针对上述技术问题,本技术提供一种非同源不一致数据处理方法,能够尽可能准确的获取特定网格的状态信息。
4.本技术提供了一种非同源不一致数据处理方法,
5.本发明实施例提供一种非同源不一致数据处理方法,m个非同源不一致数据以记录方式存储在数据库中,其中,数据库中的每条记录包括第一用户标识u1id、第二用户标识u2id、网格标识gid、约定开始时间ts、约定结束时间te和状态标志值stateflag,stateflag的初始值为null;所述约定开始时间是指第一用户和第二用户共同约定网格与第一用户建立联系的开始时间,约定结束时间是指第一用户和第二用户共同约定网格和第一用户解除联系的时间;
6.所述方法包括以下步骤:
7.s100,从数据库中获取te>t(或者te≥t)的n1条记录以及获取te≤t(或者te<t)的n2条记录,t为当前时间,n1+n2=m;
8.s120,遍历n1条记录,如果某条记录中的gid和u1id在m条记录中均没有检索到相同的,则将对应的stateflag设置为第一状态值;得到n1条记录中没有设置状态标志值的a条记录;执行s140;
9.s140,遍历a条记录,如果某条记录中的gid在m条记录中检索到相同的gid,则将a条记录中包含该条记录中的gid的所有记录中的ts最晚的记录中的stateflag设置为第一状态值,其余的记录中的stateflag设置为第二状态值;得到n1条记录中没有设置状态标志值的b条记录;执行s160;
10.s160,遍历b条记录,如果某条记录中的u1id在m条记录中检索到相同的u1id,则将b条记录中包含该条记录中的u1id的所有记录中的ts最晚的记录中的stateflag设置为第一状态值,其余的记录中的stateflag设置为第三状态值三状态值;
11.s200,遍历没有设置状态标志值的记录,如果某条记录中的u2id在m条记录中检索到相同的u1id,并且检索到的记录的stateflag为第一状态值,则将该条记录的stateflag
设置为第一状态值;执行s220;
12.s220,继续遍历没有设置状态标志值的记录,如果某条记录中的u1id在m条记录中检索到相同的u1id,并且检索到的记录的stateflag为第一状态值,则将该条记录的stateflag设置为第二状态值;执行s240;
13.s240,继续遍历没有设置状态标志值的记录,如果某条记录中的gid和u1id在m条记录中均没有检索到相同的,则将该条记录的stateflag设置为第四状态值。
14.本发明实施例提供的非同源不一致数据处理方法,首先,对数据库记录中的约定结束时间小于当前时间的记录,按照第一用户标识u1id和网格标识gid、网格标识gid、第一用户标识u1id的顺序进行检索,得到每条记录的状态标志值,接着,对没有设置状态标志值的记录,按照第二用户标识u2id、第一用户标识u1id和第一用户标识u1id和网格标识gid的顺序进行检索,得到每条记录的状态标志值,使得处理后的数据变得可信赖,能够提高数据可信度。
附图说明
15.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例提供的非同源不一致数据处理方法的流程示意图。
具体实施方式
17.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
18.本发明实施例提供一种非同源不一致数据处理方法,用于对不同数据源上报的不一致数据进行处理。m个非同源不一致数据以记录方式存储在数据库中,其中,数据库中的每条记录可包括第一用户标识u1id、第二用户标识u2id、网格标识gid、约定开始时间ts、约定结束时间te和状态标志值stateflag,例如,第i条记录包括(i,u1idi,u2idi,gidi,tsi,tei,mti),stateflag的初始值为null。在一个示意性实施例中,m条记录存储在网格状态记录表中,如下表1所示。
19.表1网格状态记录表
20.序号u1idu2idgidtstemt
ꢀꢀꢀꢀꢀꢀꢀ
21.在本发明实施例中,每条记录中的第一用户和第二用户为与对应的网格关联的用户。网格为预设地理区域内的网格。预设地理区域为用户自定义设置。约定开始时间是指第一用户和第二用户共同约定网格与第一用户建立联系的开始时间,约定结束时间是指第一用户和第二用户共同约定解除网格和第一用户的联系的时间。在一个具体应用场景中,网格可为房屋,第一用户可为租户,第二用户可为房东,即gid可为房屋id,u2id可为房东id,
u1id可为租户id。
22.在本发明实施例中,stateflag用于表示网格状态。在一个示意性实施例中,stateflag可使用第一状态值、第二状态值、第三状态值和第四状态值来表示。其中,第一状态值表示网格与对应的第一用户没有解除关系例如房屋处于出租状态,第二状态值表示网格与对应的第一用户已经解除关系例如房屋处于未出租状态,第三状态值和第四状态值表示网格与对应的第一用户没有解除关系的概率分别为p1和p2,例如,房屋出租的概率,p1和p2不同,p1和p2的取值为0~1。在一个示意性实施例中,第一状态值为0x01,第二状态值为0x00,第三状态值为0x11,第四状态值为0x10。
23.在一个示意性实施例中,每条记录还可包括概率值,对于第一状态值,对应的概率为1,对于第二状态值,对应的概率为0,对于第三状态值,对应的概率为p1,对于第四状态值,对应的概率为p2。
24.在本发明实施例中,数据库与多个数据源通信连接,用于接收多个数据源上报的网格状态信息并更新网格状态记录表。
25.进一步地,如图1所示,本发明实施例提供的非同源不一致数据处理方法包括以下步骤:
26.s100,从数据库中获取te>t(或者te≥t)的n1条记录以及获取te≤t(或者te<t)的n2条记录,t为当前时间,n1+n2=m;
27.s120,遍历n1条记录,如果某条记录中的gid和u1id在m条记录中均没有检索到相同的即该记录中的gid和u1id是唯一的,则将对应的stateflag设置为第一状态值;执行s140;
28.经过该步骤,会得到n1条记录中没有设置状态标志值的a条记录,即n1条记录中剩余a条没有设置状态标志值的记录,显然,a≤n1。
29.s140,遍历a条记录,如果某条记录中的gid在m条记录中检索到相同的gid,则将a条记录中包含该条记录中的gid的所有记录中的ts最晚的记录中的stateflag设置为第一状态值,其余的记录中的stateflag设置为第二状态值;执行s160;
30.经过该步骤,会得到n1条记录中没有设置状态标志值的a条记录,即n1条记录中剩余b条没有设置状态标志值的记录,显然,b≤a。
31.在该步骤中,将a条记录中包含该条记录中的gid的所有记录中的ts最晚的记录中的stateflag设置为第一状态值,其余的记录中的stateflag设置为第二状态值,表示包含该条记录中的gid的所有记录中的ts最晚的记录对应的网格与第一用户之间存在联系,而其余的记录对应的网格与第一用户之间已经解除联系即不存在联系。
32.s160,遍历b条记录,如果某条记录中的u1id在m条记录中检索到相同的u1id,则将b条记录中包含该条记录中的u1id的所有记录中的ts最晚的记录中的stateflag设置为第一状态值,其余的记录中的stateflag设置为第三状态值;
33.在该步骤中,将b条记录中包含该条记录中的u1id的所有记录中的ts最晚的记录中的mt设置为第一状态值,其余的记录中的stateflag设置为第三状态值,表示b条记录中包含该条记录中的u1id的所有记录中的ts最晚的记录对应的网格与第一用户之间存在联系,其余的记录对应的网格与第一用户之间存在联系的概率为p1。
34.s200,遍历没有设置状态标志值的记录,如果某条记录中的u2id在m条记录中检索
到相同的u1id,并且检索到的记录的stateflag为第一状态值,则将该条记录的stateflag设置为第一状态值;执行s220;
35.在该步骤中,如果某条记录中的u2id在m条记录中检索到相同的u1id,并且检索到的记录的stateflag为第一状态值,表示该条记录对应的网格与第一用户之间依然存在联系,即使约定结束时间小于当前时间。
36.s220,继续遍历没有设置状态标志值的记录,如果某条记录中的u1id在m条记录中检索到相同的u1id,并且检索到的记录的stateflag为第一状态值,则将该条记录的stateflag设置为第二状态值;执行s240;
37.在该步骤中,如果某条记录中的u1id在m条记录中检索到相同的u1id,并且检索到的记录的stateflag为第二状态值,则表示该条记录对应的网格与第一用户之间不存在联系。
38.s240,继续遍历没有设置状态标志值的记录,如果某条记录中的gid和u1id在m条记录中均没有检索到相同的,则将该条记录的stateflag设置为第四状态值。
39.在该步骤中,如果某条记录中的gid和u1id在m条记录中均没有检索到相同的,表示该条记录对应的网格与第一用户之间存在联系的概率为p2。
40.在本发明实施例中,s120~s160必须依次执行,经过s120~s160,n1条记录的状态标志值都会被设置。s200~s220必须依次执行,经过s200~s220,n2条记录的状态标志值都会被设置。
41.进一步地,在步骤s200之前还包括:
42.s180,遍历没有设置状态标志值的记录,如果某条记录中的gid在m条记录中检索到相同的gid,并且检索到的记录的stateflag为第一状态值或者第三状态值,则将该条记录的stateflag设置为第二状态值。
43.在该步骤中,如果某条记录中的gid在m条记录中检索到相同的gid,并且检索到的记录的stateflag为第一状态值或者第三状态值,则表示该条记录对应的网格与第一用户之间不存在联系。
44.通过s120~s240,能够得到均设置有状态标志值的m条记录。
45.本发明实施例中的数据库还与服务器通信连接。所述服务器包括处理器和存储器,所述存储器中存储有计算机程序。处理器在执行计算机程序时执行上述步骤。
46.进一步地,还包括:
47.s260,分别确定状态标志值为第一状态值对应的实际记录数量q1、第三状态值对应的实际记录数量q2和第四状态值对应的实际记录数量q3,其中,第一状态值对应的实际记录数量q1为第一状态值的数量c1,第三状态值对应的实际记录数量q2为第三状态值的数量c2*p1,第四状态值对应的实际记录数量q3为第四状态值的数量c3*p2。
48.s280,获取q1+q2+q3。
49.进一步地,还包括:将获取的q1+q2+q3进行可视化呈现。
50.进一步地,在本发明一示意性实施例中,p1的取值为0.95~1,优选,为从0.95~1中随机生成的数。即所有第三状态值对应的概率均为0.95~1中随机生成的相同数,例如0.98。这样,第三状态值对应的实际记录数量q2=c2*0.98。
51.进一步地,在本发明另一实施例中,第三状态值对应的实际记录数量q2可通过如
下步骤获取:
52.s261,获取状态标志值为第一状态值的数量c1以及状态标志值为第三状态值的数量c2,如果c2/c1<a,执行s262;否则,执行s263;a为预设阈值,优选,可为0.3%。
53.s262,将c2条记录中每条记录的概率p1设置为0.95~1中的任一数值,并获取q2=c2*p1。
54.s263,向c2条记录中的任一条记录中的第一用户发送确认信息,例如,可向第一用户的移动终端发送邮件、信息或者拨打电话的方式发送确认信息,如果接收到表示该第一用户与对应的网格没有解除关系的确认信息,则将该条记录的概率p1设置为1,否则,将该条记录的概率p1设置为0。
55.s264,获取概率为p1=1的记录数量c21,得到q2=c21。
56.这样,第三状态值对应的实际记录数量q2等于c2中第一用户与对应的网格没有解除关系的记录数量。
57.在本发明实施例中,p2=d1/(d1+d2),其中,d1为约定结束时间小于当前时间之前预设时间的所有记录中的gid在所有记录中只出现一次的gid数量,d2为所有记录中的gid出现次数大于或大于等于两次的gid数量。其中,所述预设时间为网格状态更新周期,为自定义设置。
58.本发明实施例提供的非同源不一致数据处理方法,首先,对数据库记录中的约定结束时间小于当前时间的记录,按照第一用户标识u1id和网格标识gid、网格标识gid、第一用户标识u1id的顺序进行检索,得到每条记录的状态标志值,接着,对没有设置状态标志值的记录,按照第二用户标识u2id、第一用户标识u1id和第一用户标识u1id和网格标识gid的顺序进行检索,得到每条记录的状态标志值,使得处理后的数据变得可信赖,能够提高数据可信度。
59.虽然已经通过示例对本技术的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本技术的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本技术的范围和精神。本技术开的范围由所附权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1