数据记录和同步方法及系统的制作方法

文档序号:8498709阅读:429来源:国知局
数据记录和同步方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机领域,特别是涉及一种数据记录和同步方法及系统。
【背景技术】
[0002]计算机运行过程中会产生一些运行数据,如系统运行过程中自身产生的数据或日志、安全软件对计算机监控和扫描过程中产生的数据,这些运行数据的格式比较复杂不易于定义同一格式,且数据记录的方式也多种多样不易于通过一致的方法进行记录和同步到中心服务器。在将运行数据记录至对应的表格时,应用模块需要根据运行数据的格式对相应的数据表格进行预处理,然后才能将这些运行数据记录至本地数据库中。在将运行数据记录至本地数据库之后,才能将新产生的运行数据组织成数据包的形式同步到服务器上,服务器根据上传上来的数据格式进行相应的预处理,然后将上传上来的新数据写入到云端数据库中。
[0003]传统的数据记录方式在应用模块获的运行数据后,需要其对数据表格进行预处理,然后再将运行数据写入数据文件中,每个应用模块需要对数据进行较复杂的处理,同时,应用模块需要同步的进行数据存储,若是数据量比较大,则数据存储将会阻塞。传统的数据同步方式在客户端将数据包上传至服务器时,服务器会先将数据包缓存至队列里,然后再挨个进行处理,当客户端数据量很大时,很可能造成队列很大甚至会占满整个内存,且超出内存数据包将会被丢掉,导致整个网络通信和服务器处理的效率降低。在数据记录和同步过程中若是发生未事先料想到的异常时,有可能导致数据被破坏或导致数据丢失的问题。

【发明内容】

[0004]鉴于此,本发明提供一种可靠高效的数据记录和同步方法及系统。
[0005]为达到发明目的,本发明提供一种数据记录和同步方法,包括以下步骤:
[0006]将客户端运行过程中产生的运行数据打包为本地数据包,并将所述本地数据包发送至本地数据库,所述本地数据包包括数据格式;
[0007]根据所述数据格式解析出表格类型及所述运行数据,并根据所述表格类型将所述运行数据记录至所述本地数据库中相应类型的表格中;
[0008]若客户端接收到日志上传消息,则从所述本地数据库中获取各种类型的表格对应的统计计算型表格,从所述统计计算型表格的记录中获取需要同步到服务器的同步数据,并将所述同步数据组织成同步数据包后上传至所述服务器;
[0009]所述服务器接收所述同步数据包后,解析出所述同步数据包对应的表格类型及所述同步数据,并根据所述表格类型将所述同步数据同步至云端数据库中相应类型的表格中。
[0010]作为一种可实施例,所述根据所述数据格式解析出表格类型及所述运行数据,并根据所述表格类型将所述运行数据记录至所述本地数据库中相应类型的表格中,包括以下步骤:
[0011]若根据所述数据格式解析出的所述表格类型为追加型,则将所述运行数据记录至追加型表格的末尾;
[0012]若根据所述数据格式解析出的所述表格类型为覆盖型,判断所述运行数据的版本号是否大于覆盖型表格内的表格数据的版本号,若是,则将所述表格数据删除,并将所述运行数据记录至所述表格数据所在的位置;若否,则保持所述表格数据;
[0013]若根据所述数据格式解析出的所述表格类型为覆盖追加型,则将允许重复的所述运行数据记录至覆盖追加型表格的末尾,将不允许重复的所述运行数据对应的所述覆盖追加型表格中的表格数据删除,并将不允许重复的所述运行数据记录至删除的所述表格数据所在的位置。
[0014]作为一种可实施例,所述若客户端接收到日志上传消息,则从所述本地数据库中获取各种类型的表格对应的统计计算型表格,从所述统计计算型表格的记录中获取需要同步到服务器的同步数据,并将所述同步数据组织成同步数据包后上传至所述服务器,包括如下步骤:
[0015]若表格为追加型表格,则得到对应的统计计算型表格为游标表,从所述游标表的记录中获取所述同步数据,将所述同步户数组织成所述同步数据包缓存至数据包缓存表,并给每个所述同步数据包赋予一个同步数据包标签号,将所述同步数据包及其同步数据包标签号上传至所述服务器,其中,所述游标表记录每个追加型表格已同步的数据的位置;
[0016]若表格为覆盖型表格,则得到对应的统计计算型表格为数据版本表,从所述数据版本表的记录中获取所述同步数据,将所述同步数据组织成所述同步数据包缓存至数据包缓存表,并给每个所述同步数据包赋予一个同步数据包标签号,将所述同步数据包及其同步数据包标签号上传至所述服务器,其中,所述数据版本表记录当前数据的版本号及修改时间;
[0017]若表格为覆盖追加型表格,则得到对应的统计计算型表格为游标表和更新标记表,从所述游标表和所述更新标记表的记录中获取所述同步数据,将所述同步数据组织成所述同步数据包缓存至数据包缓存表,并给每个所述同步数据包赋予一个同步数据包标签号,将所述同步数据包及其同步数据包标签号上传至所述服务器,其中,所述游标表记录允许重复的所述运行数据已同步的数据的位置,所述更新标记表记录不允许重复的所述运行数据上次同步后修改的数据。
[0018]作为一种可实施例,所述若客户端接收到日志上传消息,则从所述本地数据库中获取各种类型的表格对应的统计计算型表格,从所述统计计算型表格的记录中获取需要同步到服务器的同步数据,并将所述同步数据组织成同步数据包后上传至所述服务器之后,还包括以下步骤:
[0019]所述服务器接收所述同步数据包时,获取与所述同步数据包同步上传的所述同步数据包标签号;
[0020]将所述同步数据包标签号与所述服务器中的预设标签表中标签号进行对比;
[0021 ] 若所述预设标签表中有与所述同步数据包标签号相同的标签号,则向所述客户端发送所述同步数据包已上传成功信号,不接收所述同步数据包;
[0022]若所述预设标签表中没有与所述同步数据包标签号相同的标签号,则接收所述同步数据包,并将所述同步数据包标签号添加至所述预设标签表中。
[0023]作为一种可实施例,所述服务器接收所述同步数据包后,解析出所述同步数据包对应的表格类型及所述同步数据,并根据所述表格类型将所述同步数据同步至云端数据库中相应类型的表格中之前,包括以下步骤:
[0024]所述服务器接收所述同步数据包时,判断将所述同步数据包缓存到当前数据包队列后是否超过预设队列内存,若是,则将所述同步数据包缓存到下一数据包队列中,若否,则将所述同步数据包缓存到所述当前数据包队列;
[0025]将所述同步数据包缓存到所述数据包队列时,判断数据包队列中已满的队列是否超过预设数据包队列,若是,则向所述客户端发送延迟信息,并将所述同步数据包缓存至未满数据包队列中,若否,则不发送延迟信息,并将所述同步数据包缓存至所述未满数据包队列中;
[0026]选取一个有所述同步数据包的所述数据包队列作为第一数据包队列,并将所述第一数据包队列中的所有所述同步数据包作为一个事务进行处理,处理成功后,将上传日志成功消息发送给所述同步数据包对应的客户端,并选取下一个第一数据包队列。
[0027]作为一种可实施例,在所述客户端将所述同步数据组织成同步数据包上传所述服务器时,若接收到异常信号,则将所述同步数据包恢复到所述同步数据组包前的状态;
[0028]在所述服务器处理所述同步数据包时,若接收到异常信号,则将所述同步数据包返回到处理前的状态。
[0029]作为一种可实施例,所述将计算机运行过程中产生的运行数据打包为本地数据包,并将所述本地数据包发送至本地数据库之前和所述若客户端接收到日志上传消息,获取各种类型的表格对应的统计计算型表格,从所述统计计算型表格的记录中获取需要同步到服务器的同步数据,并将所述同步数据组织成同步数据包后上传至所述服务器之前,均包括以下步骤:
[0030]获取所述客户端的第一预设表格信息;
[0031]获取所述服务器的第二预设表格信息;
[0032]将所述第一预设表格信息和所述第二预设表格信息进行交互,使得所述第一预设表格信息与所述第二预设表格信息相同;
[0033]所述预设表格信息包括表格类型。
[0034]本发明还提供一种数据记录和同步系统,包括适于配置在客户端的打包发送模块,解析记录模块和组包上传模块以及适于配置在服务器的接收同步模块,其中:
[0035]所述打包发送模块,被配置以将所述客户端运行过程中产生的运行数据打包为本地数据包,并将所述本地数据包发送至本地数据库,所述本地数据包包括数据格式;
[0036]所述解析记录模块,被配置以根据所述数据格式解析出表格类型及所述运行数据,并根据所述表格类型将所述运行数据记录至所述本地数据库中相应类型的表格中;
[0037]所述组包上传模块,被配置以若接收到日志上传消息,从所述本地书库中获取各种类型的表格对应的统计计算型表格,从所述统计计算型表格的记录中获取需要同步到服务器的同步数据,并将所述同步数据组织成同步数据包后上传至所述服务器;
[0038]所述接收同步模块,被配置以接收所述同步数据包后,解析出所述同步数据包对应的表格类型及所述同步数据,并根据所述表格类型将所述同步数据同步至云端数据库中相应的云端表格中。
[003
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1