首页> 中国专利> 一种基于海量BCP数据文件的入库及预处理方法和系统

一种基于海量BCP数据文件的入库及预处理方法和系统

摘要

本发明提供一种基于海量BCP数据文件的入库及预处理方法和系统。本发明利用ES搜索引擎可以横向扩展的服务器节点,同时可以处理PB级数据的高可用分布式特点,大大提高了对于海量数据的吞吐能力和查询能力。同时使用ES引擎存储数据减少了频繁创建不同表和维护表的压力。高效的预处理程序,可以提前将多维度的数据进行聚合处理,统计分析,形成拿来即可使用展示的数据,这样可以大大减少现聚合时间,提升用户的体验。

著录项

  • 公开/公告号CN113806438A

    专利类型发明专利

  • 公开/公告日2021-12-17

    原文格式PDF

  • 申请/专利权人 北京亿赛通网络安全技术有限公司;

    申请/专利号CN202111372565.9

  • 发明设计人 朱贺军;徐振超;

    申请日2021-11-19

  • 分类号G06F16/25(20190101);G06F16/28(20190101);G06F16/2455(20190101);G06F16/2458(20190101);G06F16/248(20190101);G06F16/22(20190101);G06F11/14(20060101);

  • 代理机构11888 北京华创智道知识产权代理事务所(普通合伙);

  • 代理人周倩

  • 地址 100085 北京市海淀区西二旗大街39号3层301-1

  • 入库时间 2023-06-19 13:45:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-01-04

    实质审查的生效 IPC(主分类):G06F16/25 专利申请号:2021113725659 申请日:20211119

    实质审查的生效

说明书

技术领域

本申请涉及海量数据文件的入库技术领域,具体涉及一种基于海量BCP数据文件的入库及预处理方法和系统。

背景技术

随着社会的高速发展,各行各业的公司也在快速发展。而随着网络环境的持续渗透,大部分公司都有了自己公司的网络系统,并且公司网络系统的对外还是对内都会产生海量的访问数据。随着时间的推移,这种访问数据将以线性增量增长。出于安全考虑,公司需要对这些访问数据进行实时的监控,这就需要针对海量数据进行入库及预处理,以方便人员查看分析。

现有技术中,针对一定量数据的文件的入库及分析采用如下方案来处理:拉取数据文件然后读取文件数据,再根据数据库表的设计结构格式化数据,格式化完成后将数据写入到对应的表中。然而,随着业务的横向发展就会产生不同类型不同业务的数据,而这时就需要去不停的创建多张表来存储不同的数据,同时对于分析人员想要的分析数据就需要根据多种条件来现查询处理,随着数据量和库表的不断增加对数据处理的能力就会下降,对用户带来不好的体验。上述现有技术还存在如下缺陷:

(1)一些海量数据处理系统是接收发送端发送过来的数据,这个发送过程存在着网络中断、单向设备故障等不可知风险容易造成数据的丢失问题;

(2)数据入库过程中同时进行数据的分析统计,随着数据量的不断增加就会导致入库的效率下降问题;

(3)随着数据量和数据类型的不断增加而导致的数据库表不断增加的问题;

(4)解析出的数据只能入库到可连接数据库服务器中,不支持发送数据到用户数据接收服务器,不能满足客户的特殊安全需求问题。

上述现有技术中存在的缺陷也成为了亟需解决的技术问题。

发明内容

为了解决上述技术问题,本申请提供了一种基于海量BCP数据文件的入库及预处理方法和系统。本申请所采用的技术方案如下:

一种基于海量BCP数据文件的入库及预处理方法,该方法包括如下步骤:

步骤1、通过扫描来获取BCP文件,并将BCP文件的路径写入到BCP文件队列;

步骤2、判断是否发送数据到数据接收服务器,若是,则执行步骤5;若否,则执行步骤3;

步骤3、通过线程池启动BCP文件入库程序,执行BCP文件的入库操作;

步骤4、预处理线程对ES引擎中的数据进行预处理操作;

步骤5、将数据发送至配置好的所述数据接收端服务器。

进一步的,所述扫描BCP文件,具体包括:通过线程池启动文件扫描任务线程扫描BCP文件。

进一步的,所述将BCP文件的路径写入到队列之前,还包括:如果BCP文件为空,则删除这个BCP文件,同时以BCP文件的路径作为BCP文件的唯一标识,把已经入队列的BCP文件记录下来,以用于去除重复入库的BCP文件;如果BCP文件不为空,则判断BCP文件是否已过期,如果BCP文件已过期,则删除该已过期的BCP文件。

进一步的,在判断是否发送数据到数据接收服务器之前,还包括:根据用户需求来配置数据接收端服务器,所述数据接收端服务器包括kafka、ftp以及sftp。

进一步的,所述执行BCP文件的入库操作,具体包括:

步骤301、所述入库程序获取所述BCP文件队列,并提取队列中的BCP文件;

步骤302、读取BCP文件的内容,并根据预先配置的ES索引字段来映射BCP文件中每行的内容;

步骤303、获取并判断ES引擎的状态,如果ES引擎的状态为绿色,则将所述映射图map的数据写入到ES引擎中;如果ES引擎的状态为红色或者不可访问,则不会将所述BCP文件入库,直到ES引擎的状态正常;

其中,绿色代表健康可使用,红色代表有故障不可用,状态正常时ES引擎的状态为绿色,能够写入和查询数据。

进一步的,在所述步骤301中,所述BCP文件队列在BCP文件扫描程序中已经初始化入列,如果第一次获取所述BCP文件队列为空,则再获取一次BCP文件队列。

进一步的,在所述步骤302中,所述根据预先配置的ES索引字段来映射BCP文件中每行的内容,具体包括:

以天为单位,为所述每行的内容创建ES索引,并将BCP文件中的每一行记录映射到ES索引中的每一条索引记录,以获得以索引记录为KEY,以内容为value的映射图map。

进一步的,在步骤4中,预处理线程会处理ES引擎中的数据,所述预处理操作具体包括如下步骤:

步骤401、预处理线程根据多个预设维度来组织所述ES引擎的聚合查询语句,最小的时间维度为小时;

步骤402、预处理线程最先聚合所述ES引擎中最早期的数据,时间跨度为一小时,然后分析处理完成所述一小时时间段中的数据,并在轮询器中记录本次处理完的数据的最后时间;

步骤403、处理完所述一小时的数据后,预处理线程暂停15分钟,然后预处理线程根据轮询器中的所述最后处理时间来处理所述最后处理时间往后一小时的数据,直至处理完全部数据。

进一步的,所述预处理线程将处理完的数据写入mysql数据库,所述mysql数据库中包括天表、周表、月表这三种类型的数据表,其中,所述天表会根据数据的处理时间每天创建一张,同一天处理的数据会入到同一张天表中;所述周表会根据数据的处理时间每周创建一张,同一周处理的数据会入到同一张周表中;所述月表会根据数据的处理时间每月创建一张,同一月处理的数据会入到同一张月表中;每一条所述处理完的数据会分别写入三种类型的数据表中。

一种基于海量BCP数据文件的入库及预处理系统,该系统包括至少一个存储器和至少一个处理器,所述至少一个存储器用于存储程序,所述至少一个处理器用于运行所述程序,以实现上述方法。

通过本申请实施例,可以获得如下技术效果:

(1)本发明中通过自身的守护进程,实时监控系统程序的状态,一旦系统程序死掉会立即重启,保证系统的可用性。处理入库的数据文件时已经成功入库的会同时删掉源文件,过期文件也会删除掉确保入库的数据不会重复,如果入库程序有问题导致了数据入库失败则不会删除原文件,保证数据的完整性。

(2)本发明利用ES搜索引擎可以横向扩展的服务器节点,同时可以处理PB级数据的高可用分布式特点,大大提高了对于海量数据的吞吐能力和查询能力。同时使用ES引擎存储数据减少了频繁创建不同表和维护表的压力。高效的预处理程序,可以提前将多维度的数据进行聚合处理,统计分析,形成拿来即可使用展示的数据,这样可以大大减少现聚合时间,提升用户的体验。预处理完的统计数据会按天、按周、按月存储,对于用户页面不同时间段的统计查询更高效更便捷。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的入库及预处理方法的流程示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。

图1为本发明的入库及预处理方法的流程示意图。该方法包括如下步骤:

步骤1、通过扫描来获取BCP文件,并将BCP文件的路径写入到BCP文件队列;

本申请技术方案中所处理的是已经写入到指定文件夹下的BCP文件,该BCP文件是存储由大容量复制实用工具或同步创建的大容量复制数据的文件。

所述扫描BCP文件,具体包括:通过线程池启动文件扫描任务线程扫描BCP文件。线程池可以高效管理多线程任务,提高系统处理能力和资源利用率。

所述将BCP文件的路径写入到队列之前,还包括:如果BCP文件为空,则删除这个BCP文件,同时以BCP文件的路径作为BCP文件的唯一标识,把已经入队列的BCP文件记录下来,以用于去除重复入库的BCP文件;如果BCP文件不为空,则判断BCP文件是否已过期,如果BCP文件已过期,则删除该已过期的BCP文件。

步骤2、判断是否发送数据到数据接收服务器,若是,则执行步骤5;若否,则执行步骤3;

在判断是否发送数据到数据接收服务器之前,还包括:根据用户需求来配置数据接收端服务器,所述数据接收端服务器包括kafka、ftp以及sftp。

步骤3、通过线程池启动BCP文件入库程序,执行BCP文件的入库操作;

在数据的入库程序处理过程中,会将已经处理完成的BCP文件删除掉,如果入库程序处理失败那么就不会删除原文件,所以不会造成BCP文件的丢失,保证数据的完整性。此外,本申请的技术方案拥有自己的守护进程,一旦监测到入库线程因意外而停止,则会立即自动重启入库线程。

所述执行BCP文件的入库操作,具体包括:

步骤301、所述入库程序获取所述BCP文件队列,并提取队列中的BCP文件;

所述BCP文件队列在BCP文件扫描程序中已经初始化入列,如果第一次获取所述BCP文件队列为空,则再获取一次BCP文件队列。

步骤302、读取BCP文件的内容,并根据预先配置的ES索引字段来映射BCP文件中每行的内容,

所述根据预先配置的ES索引字段来映射BCP文件中每行的内容,具体包括:

以天为单位,为所述每行的内容创建ES索引,并将BCP文件中的每一行记录映射到ES索引中的每一条索引记录,以获得以索引记录为KEY,以内容为value的映射图map。

步骤303、获取并判断ES引擎的状态,如果ES引擎的状态为绿色,则将所述映射图map的数据写入到ES引擎中;如果ES引擎的状态为红色或者不可访问,则不会将所述BCP文件入库,直到ES引擎的状态正常;绿色代表ES引擎是健康的可使用的。红色代表ES引擎是有故障的不可用的。“状态正常”是指ES引擎是可用的,可以写入数据也可以查询数据;

在上述方案中,ES搜索引擎是分布式部署的,可以大幅提高数据的吞吐量。

步骤4、预处理线程对ES引擎中的数据进行预处理操作;

在该步骤中,系统的预处理线程会处理ES引擎中的数据,所述预处理操作具体包括如下步骤:

步骤401、预处理线程根据多个预设维度来组织所述ES引擎的聚合查询语句,最小的时间维度为小时;

步骤402、预处理线程最先聚合ES引擎中最早期的数据,时间跨度为一小时,然后分析处理完成所述一小时时间段中的数据,并在轮询器中记录本次处理完的数据的最后处理时间;

步骤403、处理完所述一小时的数据后,预处理线程暂停15分钟,然后预处理线程根据轮询器中的所述最后处理时间来处理所述最后处理时间往后一小时的数据,直至处理完全部数据;

所述预处理线程将处理完的数据写入mysql数据库,所述mysql数据库中包括天表、周表、月表这三种类型的数据表,其中,所述天表会根据数据的处理时间每天创建一张,同一天处理的数据会入到同一张天表中;所述周表会根据数据的处理时间每周创建一张,同一周处理的数据会入到同一张周表中;所述月表会根据数据的处理时间每月创建一张,同一月处理的数据会入到同一张月表中;

每一条所述处理完的数据会分别写入三种类型的数据表中。

处理完的数据写入mysql数据库之后,可供查看统计时直接查询获取,这样就不需要查看统计时同时去统计聚合,大大提高了查询速度,提升了用户的体验。

步骤5,将数据发送至配置好的所述数据接收端服务器;

由于已经根据用户需求配置好了数据接收端服务器,则能够满足不同用户的不同场景需求,提高系统的灵活性和安全性。

用户可以根据实际需要对ES引擎进行访问接入,依托于ES搜索引擎支持海量数据近实时的特性,用户可快速获取到查询结果,以了解原始结构化数据的展示情况。

通过本发明的技术方案,将解析出的入库数据根据配置实时发送到定制的数据接收服务器,以提高系统的可用性、灵活性和适配性。海量数据的存储库使用ES搜索引擎,避免像通用的数据库一样创建过多的表,降低了维护成本。对于原始的入库数据的预处理,根据预设条件提前统计分析出结果数据,从而提高统计数据的查询和展示效率。系统自带的守护进程实时监控系统状态,如果系统所在服务器重启或者系统挂掉,守护进程会立马重启该系统,保证入库程序和处理程序的有效运行。预处理的统计数据会分别入库到天表、周表、月表,同一数据分级使用,查询更便捷。

以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号