一种Hadoop离线数据增量更新的方法、系统和可存储介质与流程

    专利2025-04-04  7


    本发明涉及数据处理与计算机,具体涉及一种hadoop离线数据增量更新的方法、系统和可存储介质。


    背景技术:

    1、增量更新是指只对新增或更新的数据进行操作,不对已有数据进行修改或删除,适用于数据量较大且更新频率较高的场景。随着计算机的发展,信息量呈现出爆发式的增长,从海量数据中提取到有用的价值变得越来越重要,一般情况下,为了提取到有用的数据价值,我们利用hadoop集群进行离线建模计算,但是,hadoop集群本身不具备数据更新机制,数据只能写入到orc文件或者parquet文件中,有更新的数据直接入库,原有数据也存储在hadoop中,进行离线计算时会导致数据不准确和不唯一,影响后面的分析决策。

    2、由于hadoop集群本身的限制,使得我们无法对入库的数据进行增量更新操作,不能满足hadoop集群中出现数据增量更新场景的需要,除此之外,还会影响数据的准确性和鲜活性,因此,在hadoop集群中实现数据的增量采集与更新是一个复杂而重要的问题。


    技术实现思路

    1、本发明针对上述现有技术中一个或多个技术缺陷,提出了如下技术方案。

    2、基于本发明的第一方面,提出了一种hadoop离线数据增量更新的方法,包括:

    3、s1:在hadoop集群中建立中间数据库,并在所述中间数据库中建立物理表、临时表和删除表;

    4、s2:将成功写入离线数据库的orc文件和parquet文件中的数据存储到所述临时表中并与所述临时表中的原始数据进行对比;

    5、s3:所述hadoop集群中的数据监控服务定时扫描所述删除表中的数据,若发现所述删除表中有新的数据记录,则通知所述hadoop集群中的数据更新服务对所述hadoop集群中存储的对应离线数据文件进行增量更新;

    6、s4:所述数据更新服务收到所述数据监控服务增量更新的通知后,利用更新数据的数据记录id获取所述orc文件的文件名和所述parquet文件的文件名,通过所述orc文件的文件名和所述parquet文件的文件名获取对应的原始数据的数据记录id,再删除所述hadoop集群中对应文件名的orc文件和parquet文件,最后将所述更新数据重新入库。

    7、更进一步地,步骤s2还包括:

    8、若所述临时表中的原始数据中不存在所述临时表中新写入的数据,则将所述临时表中新写入的数据直接插入所述临时表和所述物理表;

    9、若所述临时表中的原始数据中已经存在所述临时表中新写入的数据,则比较所述原始数据的数据记录的全字段的md5值与新写入的数据的数据记录的全字段md5值是否一致;

    10、若所述原始数据的数据记录的全字段的md5值与新写入的数据的数据记录的全字段md5值一致则丢弃所述临时表中新写入的数据;

    11、若所述原始数据的数据记录的全字段的md5值与新写入的数据的数据记录的全字段md5值不一致则先将所述临时表的原始数据的数据记录id删除,并将所述物理表中的所述新写入的数据的数据记录id移动到所述删除表中,再将所述临时表中新写入的数据存储到所述物理表中;

    12、同时记录所述orc文件和所述parquet文件的数据记录的md5值。

    13、更进一步地,所述中间数据库包括:greenplum数据库以及postgress数据库。

    14、更进一步地,所述物理表用于存储成功写入离线数据库的数据,以使得在有更新数据进入数据库后对已写入离线文件的离线数据进行增量更新。

    15、更进一步地,所述临时表用于存储原始数据和所述数据记录的md5值,以及用于比较原始数据和新写入的数据以判断是否有数据记录更新。

    16、更进一步地,所述删除表用于存储更新数据成功入库后、数据记录更新前的所述物理表中的数据记录,以使得对更新数据进行溯源。

    17、基于本发明的第二方面,还提出了一种hadoop离线数据增量更新的系统,包括:

    18、建表单元:在hadoop集群中建立中间数据库,并在所述中间数据库中建立物理表、临时表和删除表;

    19、数据对比单元:将成功写入离线数据库的orc文件和parquet文件中的数据存储到所述临时表中并与所述临时表中的原始数据进行对比;

    20、数据监控服务单元:所述hadoop集群中的数据监控服务定时扫描所述删除表中的数据,若发现所述删除表中有新的数据记录,则通知所述hadoop集群中的数据更新服务对所述hadoop集群中存储的对应离线数据文件进行增量更新;

    21、数据更新服务单元:所述数据更新服务收到所述数据监控服务增量更新的通知后,利用更新数据的数据记录id获取所述orc文件的文件名和所述parquet文件的文件名,通过所述orc文件的文件名和所述parquet文件的文件名获取对应的原始数据的数据记录id,再删除所述hadoop集群中对应文件名的orc文件和parquet文件,最后将所述更新数据重新入库。

    22、更进一步地,所述数据对比单元还包括:

    23、若所述临时表中的原始数据中不存在所述临时表中新写入的数据,则将所述临时表中新写入的数据直接插入所述临时表和所述物理表;

    24、若所述临时表中的原始数据中已经存在所述临时表中新写入的数据,则比较所述原始数据的数据记录的全字段的md5值与新写入的数据的数据记录的全字段md5值是否一致;

    25、若所述原始数据的数据记录的全字段的md5值与新写入的数据的数据记录的全字段md5值一致则丢弃所述临时表中新写入的数据;

    26、若所述原始数据的数据记录的全字段的md5值与新写入的数据的数据记录的全字段md5值不一致则先将所述临时表的原始数据的数据记录id删除,并将所述物理表中的所述新写入的数据的数据记录id移动到所述删除表中,再将所述临时表中新写入的数据存储到所述物理表中;

    27、同时记录所述orc文件和所述parquet文件的数据记录的md5值。

    28、基于本发明的第三方面,还提出了一种计算机可存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实施如上述任一项之所述的方法。

    29、本发明的技术效果在于:本发明利用中间数据库设计物理表、临时表和删除表,结合hadoop集群的数据监控服务和数据更新服务,对写入hadoop集群离线数据库的orc文件和parquet文件的数据进行更新,同时记录离线的orc文件和parquet文件中数据记录的id,数据监控服务监控数据变动,数据更新服务对离线数据进行增量更新,解决了增量更新数据在hadoop集群重复入库的问题,确保运算结果的准确性和鲜活性,可适用于对数据质量、准确性和鲜活性要求高,需要建模计算数据的场景,可以对后期的分析或决策提供数据依据,避免因数据的准确性不足或鲜活性不足导致的误判。



    技术特征:

    1.一种hadoop离线数据增量更新的方法,其特征在于,包括:

    2.根据权利要求1所述的方法,其特征在于,步骤s2还包括:

    3.根据权利要求1所述的方法,其特征在于,所述中间数据库包括:

    4.根据权利要求1所述的方法,其特征在于,所述物理表用于存储成功写入离线数据库的数据,以使得在有更新数据进入数据库后对已写入离线文件的离线数据进行增量更新。

    5.根据权利要求1所述的方法,其特征在于,所述临时表用于存储原始数据和所述数据记录的md5值,以及用于比较原始数据和新写入的数据以判断是否有数据记录更新。

    6.根据权利要求1所述的方法,其特征在于,所述删除表用于存储更新数据成功入库后、数据记录更新前的所述物理表中的数据记录,以使得对更新数据进行溯源。

    7.一种hadoop离线数据增量更新的系统,其特征在于,包括:

    8.根据权利要求7所述的系统,其特征在于,所述数据对比单元还包括:

    9.一种计算机可存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实施如权利要求1-6中任一项之所述的方法。


    技术总结
    本发明提出了一种Hadoop离线数据增量更新的方法、系统和可存储介质,通过利用中间数据库设计物理表、临时表和删除表,结合Hadoop集群的数据监控服务和数据更新服务,对写入Hadoop集群离线数据库的orc文件和parquet文件的数据进行更新,同时记录离线的orc文件和parquet文件中数据记录的I D,数据监控服务监控数据变动,数据更新服务对离线数据进行增量更新,解决了增量更新数据在Hadoop集群重复入库的问题,确保运算结果的准确性和鲜活性。本发明可适用于对数据质量、准确性和鲜活性要求高,需要建模计算数据的场景,可以对后期的分析或决策提供数据依据,避免因数据的准确性不足或鲜活性不足导致的误判。

    技术研发人员:周成祖,唐成务,王吉川,刘源,毕永辉,鄢小征,彭冲林
    受保护的技术使用者:厦门市美亚柏科信息安全研究所有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-84988.html

    最新回复(0)