一种基于NiFi的关系型数据库增量数据的入库方法技术

技术编号:26170883 阅读:14 留言:0更新日期:2020-10-31 13:40
本发明专利技术公开一种基于NiFi的关系型数据库增量数据的入库方法,涉及数据处理技术领域,该入库方法基于增设在关系型数据库的处理组件,该处理组件用于判断新增、更新或者删除的增量数据,同时,该处理组件还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段;在从源关系型数据库获取增量数据时,通过处理组件去目标关系型数据库中查询该增量数据是否存在,并根据查询结果,在目标关系型数据库中进行更新、插入或删除操作,完成增量数据的入库。本方法可以实现一个关系型数据库中增量数据到另一个关系型数据库的同步,具有灵活多样、可根据实际情况进行自由扩展的特点。

A method of storing incremental data in relational database based on nifi

【技术实现步骤摘要】
一种基于NiFi的关系型数据库增量数据的入库方法
本专利技术涉及数据处理
,具体的说是一种基于NiFi的关系型数据库增量数据的入库方法。
技术介绍
现在的社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。大数据是如此重要,以至于其数据采集、储存、搜索、共享、分析,乃至可视化地呈现,都成为了当前重要的研究课题。而数据采集和入库是一切大数据应用分析的开始和前提。关系型数据库目前在各行各业中仍然占据很大的市场份额,例如Oracle等成熟的商业数据库,由于其强大的性能和可靠性在政府、金融、电信等行业中占有率极高,MySQL等开源数据库由于其开源、免费、易用等特性,在互联网企业中被广泛应用。进行数据应用分析时需要在这些关系型数据库之间进行数据的流转汇聚。在进行数据的增量同步时,源库表的数据中往往会同时存在新增、更新或者删除的场景,同时针对数据更新的场景,一般目标库表的某些字段是不允许再次被覆盖更新的,例如status等字段。
技术实现思路
本专利技术针对目前技术发展的需求和不足之处,提供一种基于NiFi的关系型数据库增量数据的入库方法。本专利技术的一种基于NiFi的关系型数据库增量数据的入库方法,解决上述技术问题采用的技术方案如下:一种基于NiFi的关系型数据库增量数据的入库方法,该入库方法基于增设在关系型数据库的处理组件,该处理组件用于判断新增、更新或者删除的增量数据,同时,该处理组件还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段;在从源关系型数据库获取增量数据时,通过处理组件去目标关系型数据库中查询该增量数据是否存在,并根据查询结果,在目标关系型数据库中进行更新、插入或删除操作,完成增量数据的入库。进一步的,该入库方法的具体实现内容包括:步骤1、基于NiFi,在关系型数据库中增设一个处理组件,该处理组件用于判断新增、更新或者删除的增量数据,同时,该处理组件还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段;步骤2、从源关系型数据库中获取增量数据;步骤3、将获取的增量数据传送至目标关系型数据库,根据源关系型数据库的处理组件设置的删除标识,目标关系型数据库的处理组件对该数据库的对应数据进行同步删除;步骤4、随后,目标关系型数据库的处理组件通过比对查询该数据库是否包含从源关系型数据库获取的增量数据,若存在,则处理组件进行更新操作,此时,还可以根据设置的忽略更新字段进行忽略,若不存在,则处理组件进行插入操作;步骤5、完成源关系型数据库中增量数据到目标关系型数据库的入库。更进一步的,步骤2中,增量数据的来源可以是MySQL、Oracle、SqlServer、postgreSQL任一关系型数据库,也可以是关系型数据库包含的不同格式的文件。优选的,通过时间戳字段从源关系型数据库MySQL的库表中获取增量数据,或者,通过读取源关系型数据库MySQL的binlog日志获取增量数据。更进一步的,在执行步骤3之前,首先查看获取增量数据的格式,若增量数据为avro格式,则直接执行步骤3,若增量数据不是avro格式,则基于NiFi默认的数据格式为avro,应当将获取增量数据的格式转换为avro格式,随后执行步骤3。具体的,当源关系型数据库为MySQL时,a)通过sql查询获取到的增量数据为avro格式,获取的增量数据没有操作标识,此时,通过处理组件手动设置比对字段,然后执行步骤3,将获取的增量数据传送至目标关系型数据库,b)通过binlog日志获取到的增量数据为json格式,获取的增量数据带有操作标识table.operation,此时,需要对json相应的路径进行处理以得到入库时所期望的字段值key:value映射方式,同时将binlog日志中的操作类型添加到table.operation属性中,随后执行步骤3。基于a),更进一步的,当获取的增量数据没有操作标识时,如果获取增量数据的源关系型数据库或者增量数据入库的目标关系型数据库是MySQL/MariaDB数据库和PostgreSQL9.5及以上版本数据库,则分别根据ONDUPLICATEKEYUPDATE和ONCONFLICTDOUPDATESET省略手动比对步骤,处理组件通过主键判断直接进行插入更新操作。基于b),更进一步的,所涉及table.operation的属性包括INSERT、UPDATE、DELETE,当获取增量数据的table.operation为UPDATE时,处理组件进行插入操作,当获取增量数据的table.operation为INSERT时,处理组件进行更新操作,当获取增量数据的table.operation为DELETE时,处理组件进行删除操作,其中,处理组件通过设置对比键为对比条件,进行更新和删除操作,且进行更新操作时可根据设置的“NotUpdateColumn”忽略更新对应的字段。更进一步的,通过binlog日志获取的增量数据进行入库之前,应当判断table.operation的属性,若没有此属性,则通过处理组件设置的更新删除的比对字段来判断目标关系型数据库是否存在此条数据,然后进行执行步骤3。本专利技术的一种基于NiFi的关系型数据库增量数据的入库方法,与现有技术相比具有的有益效果是:本专利技术通过在关系型数据库中增设处理组件,并基于处理组件可以用于判断新增、更新或者删除的增量数据,还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段,来实现一个关系型数据库中增量数据到另一个关系型数据库的同步,具有灵活多样、可根据实际情况进行自由扩展的特点。附图说明附图1是本专利技术关系型数据库中所增设处理组件的显示界面;附图2是本专利技术所获取增量数据的操作标识table.operation及操作标识table.operation的具体属性。具体实施方式为使本专利技术的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本专利技术的技术方案进行清楚、完整的描述。实施例一:本实施例提出一种基于NiFi的关系型数据库增量数据的入库方法,该入库方法基于增设在关系型数据库的处理组件,该处理组件用于判断新增、更新或者删除的增量数据,同时,该处理组件还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段;在从源关系型数据库获取增量数据时,通过处理组件去目标关系型数据库中查询该增量数据是否存在,并根据查询结果,在目标关系型数据库中进行更新、插入或删除操作,完成增量数据的入库。参考附图1,其为处理组件的显示界面,其中“UpdateorDeleteKey”为更新或删除比对字段,为空时默认取目标表主键,“NotUpdateColumn”为更新数据入库时需要忽略更新的字段,“CaseCo本文档来自技高网...

【技术保护点】
1.一种基于NiFi的关系型数据库增量数据的入库方法,其特征在于,该入库方法基于增设在关系型数据库的处理组件,该处理组件用于判断新增、更新或者删除的增量数据,同时,该处理组件还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段;在从源关系型数据库获取增量数据时,通过处理组件去目标关系型数据库中查询该增量数据是否存在,并根据查询结果,在目标关系型数据库中进行更新、插入或删除操作,完成增量数据的入库。/n

【技术特征摘要】
1.一种基于NiFi的关系型数据库增量数据的入库方法,其特征在于,该入库方法基于增设在关系型数据库的处理组件,该处理组件用于判断新增、更新或者删除的增量数据,同时,该处理组件还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段;在从源关系型数据库获取增量数据时,通过处理组件去目标关系型数据库中查询该增量数据是否存在,并根据查询结果,在目标关系型数据库中进行更新、插入或删除操作,完成增量数据的入库。


2.根据权利要求1所述的一种基于NiFi的关系型数据库增量数据的入库方法,其特征在于,该入库方法的具体实现内容包括:
步骤1、基于NiFi,在关系型数据库中增设一个处理组件,该处理组件用于判断新增、更新或者删除的增量数据,同时,该处理组件还用于支持新增、更新或者删除的增量数据入库,并支持设置忽略更新字段;
步骤2、从源关系型数据库中获取增量数据;
步骤3、将获取的增量数据传送至目标关系型数据库,根据源关系型数据库的处理组件设置的删除标识,目标关系型数据库的处理组件对该数据库的对应数据进行同步删除;
步骤4、随后,目标关系型数据库的处理组件通过比对查询该数据库是否包含从源关系型数据库获取的增量数据,
若存在,则处理组件进行更新操作,此时,还可以根据设置的忽略更新字段进行忽略,
若不存在,则处理组件进行插入操作;
步骤5、完成源关系型数据库中增量数据到目标关系型数据库的入库。


3.根据权利要求2所述的一种基于NiFi的关系型数据库增量数据的入库方法,其特征在于,步骤2中,增量数据的来源可以是MySQL、Oracle、SqlServer、postgreSQL任一关系型数据库,也可以是关系型数据库包含的不同格式的文件。


4.根据权利要求3所述的一种基于NiFi的关系型数据库增量数据的入库方法,其特征在于,通过时间戳字段从源关系型数据库MySQL的库表中获取增量数据,或者,通过读取源关系型数据库MySQL的binlog日志获取增量数据。


5.根据权利要求3所述的一种基于NiFi的关系型数据库增量数据的入库方法,其特征在于,在执行步骤3之前,首先查看获取增量数据的格式,
若增量数据为avro格式,则直接执行步骤3,
若增量数据不是avro格式,则基于NiFi默认的数据格式为avro,应当将获取...

【专利技术属性】
技术研发人员:李贵振胡清王建华
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1