一种图指标流批一体化处理方法及装置
文献发布时间:2023-06-19 10:48:02
技术领域
本申请涉及图计算技术领域,尤其涉及一种图指标流批一体化处理方法及装置。
背景技术
在相关的图指标处理技术中,对于每个图指标的计算,业务系统需要向计算服务发起两次请求。第一次请求是获得所有的输入数据组合,并且缓存在业务系统内部,这样可能会增加业务系统的复杂性。在图数据库实例计算图指标时,会从底层分布式的存储系统里获取参与计算的数据,这样可能导致网络开销较大,且存在一些不可控的突发情况。
发明内容
本申请提供一种图指标流批一体化处理方法及装置,以改善上述背景技术的技术问题。
一种图指标流批一体化处理方法,所述方法包括:
根据图数据库中的全图数据得到边表和点表,并将所述边表和所述点表存储到Hive数据库中;
基于所述Hive数据库中的所述边表和所述点表以及预设Spark计算模型,生成第一连通图表;其中,所述第一连通图表中包含两列,一列为点的ID,另一列为第一连通图的ID;
将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中,得到每一个第一连通图对应的图数据库底层文件;
调用图指标的计算模型以及参数列表的参数组合,在所述图数据库底层文件中查找与所述参数组合匹配的目标数据,根据所述计算模型对所述目标数据进行图指标计算,得到图指标计算结果;
通过调用HBase的api将所述图指标计算结果存入Hbase。
进一步地,根据图数据库中的全图数据得到边表和点表,并将所述边表和所述点表存储到Hive数据库中,包括:
通过数据读取接口访问所述图数据库,将所述图数据库中的目标图对应的数据全量导出,得到边表和点表,将所述边表和所述点表存储到Hive数据库中。
进一步地,所述将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中,得到每一个第一连通图对应的图数据库底层文件的步骤包括:
将所述边表和所述点表输入到预设Spark计算模型中时,所述Spark计算模型遍历每一个第一连通图的数据,将同一个第一连通图的数据聚合到同一份图数据库底层文件中;
将每一图数据库底层文件进行压缩,得到对应的压缩包,并将所述压缩包存放到HDFS文件系统中。
进一步地,根据所述计算模型对所述目标数据进行图指标计算之前,所述方法还包括:
在进行图指标计算之前,提取参数列表的参数组合,判断所述参数列表的参数组合与图数据库底层文件的映射表是否存在映射关系;
若存在,则遍历所述参数组合并进行图指标计算;
若不存在,则遍历每一个第一连通图的底层文件,查询出所有的所述参数组合,并且将所述参数组合和所述第一连通图底层文件的映射关系固化到所述Hive数据库中,再遍历所述参数组合并进行图指标计算。
进一步地,所述方法还包括:
并行地将所述图指标计算结果存入所述Hive数据库中。
一种图指标流批一体化处理装置,所述装置包括:
数据采集模块,用于根据图数据库中的全图数据得到边表和点表,并将所述边表和所述点表存储到Hive数据库中;
数据计算模块,用于基于所述Hive数据库中的所述边表和所述点表以及预设Spark计算模型,生成第一连通图表;其中,所述第一连通图表中包含两列,一列为点的ID,另一列为第一连通图的ID;
数据处理模块,用于将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中,得到每一个第一连通图对应的图数据库底层文件;
数据匹配模块,用于调用图指标的计算模型以及参数列表的参数组合,在所述图数据库底层文件中查找与所述参数组合匹配的目标数据,根据所述计算模型对所述目标数据进行图指标计算,得到图指标计算结果;
数据存储模块,用于通过调用HBase的api将所述图指标计算结果存入Hbase。
进一步地,所述数据采集模块,具体用于:
通过数据读取接口访问所述图数据库,将所述图数据库中的目标图对应的数据全量导出,得到边表和点表,将所述边表和所述点表存储到Hive数据库中。
进一步地,所述数据处理模块,具体用于:
将所述边表和所述点表输入到预设Spark计算模型中时,所述Spark计算模型遍历每一个第一连通图的数据,将同一个第一连通图的数据聚合到同一份图数据库底层文件中;
将每一图数据库底层文件进行压缩,得到对应的压缩包,并将所述压缩包存放到HDFS文件系统中。
进一步地,所述数据匹配模块,具体用于:
在进行图指标计算之前,提取参数列表的参数组合,判断所述参数列表的参数组合与图数据库底层文件的映射表是否存在映射关系;
若存在,则遍历所述参数组合并进行图指标计算;
若不存在,则遍历每一个第一连通图的底层文件,查询出所有的所述参数组合,并且将所述参数组合和所述第一连通图底层文件的映射关系固化到所述Hive数据库中,再遍历所述参数组合并进行图指标计算。
进一步地,所述数据存储模块,具体用于:
并行地将所述图指标计算结果存入所述Hive数据库中。
应用本申请实施例一种图指标流批一体化处理方法及装置时,根据图数据库中的全图数据得到边表和点表,并存储到Hive数据库中;边表和点表输入到Spark计算模型,生成第一连通图表;将边表、点表以及第一连通图表输入到预设Spark程序中,得到图数据库底层文件;调用图指标的计算模型以及参数列表的参数组合,在图数据库底层文件中查找与参数组合匹配的目标数据,根据计算模型对目标数据进行图指标计算,得到图指标计算结果;通过调用HBase的api将图指标计算结果存入Hbase。在本发明中,由于本方案将图数据库中的全图数据进行拆分得到不同连通图的数据分别精确的生成了不同的图数据库底层文件,所以在指标计算时不必跨网络拉取数据,性能更高,这样能够将计算结果精确并快速的存储到Hbase中。从而能快速的对全图数据进行处理,这样能有效的降低图指标的处理时间,提高了图指标处理的效率,有效的降低了时间成本的技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1为本发明实施例所提供的一种图指标流批一体化处理方法的流程图;
图2为本发明实施例所提供的一种图指标流批一体化处理装置的功能模块框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
请结合参阅图1,为本发明实施例所提供的一种图指标流批一体化处理方法的流程示意图,进一步地,所述图指标流批一体化处理方法具体可以包括以下步骤S21-步骤S25所描述的内容。
步骤S21,根据图数据库中的全图数据得到边表和点表,并将所述边表和所述点表存储到Hive数据库中。
示例性的,所述边表由表头结点和表结点两部分组成,图中每个顶点均对应一个存储在数组中的表头结点。所述点表表示自动化控制系统中使用的变量个数称为点数。
步骤S22,基于所述Hive数据库中的所述边表和所述点表以及预设Spark计算模型,生成第一连通图表。
示例性的,所述第一连通图表中包含两列,一列为点的ID,另一列为第一连通图的ID。
步骤S23,将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中,得到每一个第一连通图对应的图数据库底层文件。
示例性的,所述连通图用于表征连通性是图的基本性质;所述图数据库底层文件用于表征图数据库的最小单元。本方案将不同连通图的数据分别生成了不同的图数据库底层文件,所以在指标计算时不必跨网络拉取数据,性能更高。使用了Spark计算模型,使得计算资源可以按需分配。
步骤S24,调用图指标的计算模型以及参数列表的参数组合,在所述图数据库底层文件中查找与所述参数组合匹配的目标数据,根据所述计算模型对所述目标数据进行图指标计算,得到图指标计算结果。
示例性的,所述图指标用于表征图中对应的特征(例如:颜色以及形状等)
步骤S25,通过调用HBase的api将所述图指标计算结果存入Hbase。
可以理解的,在执行上述步骤S21-步骤S25所描述的内容,根据图数据库中的全图数据得到边表和点表,并存储到Hive数据库中;边表和点表输入到Spark计算模型,生成第一连通图表;将边表、点表以及第一连通图表输入到预设Spark程序中,得到图数据库底层文件;调用图指标的计算模型以及参数列表的参数组合,在图数据库底层文件中查找与参数组合匹配的目标数据,根据计算模型对目标数据进行图指标计算,得到图指标计算结果;通过调用HBase的api将图指标计算结果存入Hbase。在本发明中,由于本方案将图数据库中的全图数据进行拆分得到不同连通图的数据分别精确的生成了不同的图数据库底层文件,所以在指标计算时不必跨网络拉取数据,性能更高,这样能够将计算结果精确并快速的存储到Hbase中。从而能快速的对全图数据进行处理,这样能有效的降低图指标的处理时间,提高了图指标处理的效率,有效的降低了时间成本的技术问题。
在具体实施过程中,发明人发现,在根据图数据库中的全图数据得到边表和点表是,存在读取数据错误的技术问题,从而难以将所述边表和所述点表精确的存储到Hive数据库中,为了改善上述技术问题,步骤S21所描述的根据图数据库中的全图数据得到边表和点表,并将所述边表和所述点表存储到Hive数据库中的步骤,具体可以包括以下步骤S211所描述的内容。
步骤S211,通过数据读取接口访问所述图数据库,将所述图数据库中的目标图对应的数据全量导出,得到边表和点表,将所述边表和所述点表存储到Hive数据库中。
示例性的,通过对应的接口对图数据库进行访问,这样能得到对应的数据,降低读取数据错误的问题。
可以理解的,在执行上述步骤S211所描述的内容时,在根据图数据库中的全图数据得到边表和点表时,避免了读取数据错误的技术问题,从而能够将所述边表和所述点表精确的存储到Hive数据库中。
在实际操作过程中,发明人发现,在将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中时,存在数据计算错误的计算问题,从而难易准确的得到每一个第一连通图对应的图数据库底层文件,为了改善上述技术问题,步骤S23所描述的将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中,得到每一个第一连通图对应的图数据库底层文件的步骤具体可以包括以下步骤S231和步骤S232所描述的内容。
步骤S231,将所述边表和所述点表输入到预设Spark计算模型中时,所述Spark计算模型遍历每一个第一连通图的数据,将同一个第一连通图的数据聚合到同一份图数据库底层文件中。
示例性的,并行地将第二连通图的数据合并到一起,得到一份图数据库底层文件。这样能有效的将所有连通图集合起来,有效的避免了连通图的缺失。由于使用了Spark计算模型,因而使得计算资源可以按需分配。
步骤S232,将每一图数据库底层文件进行压缩,得到对应的压缩包,并将所述压缩包存放到HDFS文件系统中。
示例性的,将图数据库底层文件进行压缩采用这样的方式能有效的降低图数据库底层文件所暂用的空间,这样能降低存储空间的压力,避免储存数据混乱的情况。
可以理解的,在执行上述步骤S231和步骤S232所描述的内容时,在将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中时,避免了数据计算错误的计算问题,从而能够准确的得到每一个第一连通图对应的图数据库底层文件。
基于上述基础,根据所述计算模型对所述目标数据进行图指标计算之前,所述方法还包括以下步骤S11-步骤S13所描述的内容。
步骤S11,在进行图指标计算之前,提取参数列表的参数组合,判断所述参数列表的参数组合与图数据库底层文件的映射表是否存在映射关系。
示例性的,由于固化了参数组合和底层图数据库文件的映射关系,使得对于相同参数组合的不同指标计算逻辑计算性能更高。
步骤S12,若存在,则遍历所述参数组合并进行图指标计算。
步骤S13,若不存在,则遍历每一个第一连通图的底层文件,查询出所有的所述参数组合,并且将所述参数组合和所述第一连通图底层文件的映射关系固化到所述Hive数据库中,再遍历所述参数组合并进行图指标计算。
可以理解的,在执行上述步骤S11-步骤S13所描述的内容时,由于固化了参数组合和底层图数据文件的映射关系,因此可以支持只计算部分参数组合的图指标,不必每次计算全量参数组合,具体计算哪些组合由业务系统传入的参数决定,从而实现流式计算。
基于上述基础,所述方法还包括步骤S31所描述的内容。
步骤S31,并行地将所述图指标计算结果存入所述Hive数据库中。
可以理解的,在执行上述步骤S31所描述的内容时,将结果存入了Hive,这样我们就可以使用SQL语言查询计算结果,这样有效的避免了二次计算,减少了处理的时间,还能使得业务系统的查询仅仅是一个检索查询,而不会有过多的计算逻辑,而且计算结果保存在一个地方,可以重复检索查询,不必每次都运行计算逻辑;也可以尽量减少网络开销。
基于同样的发明构思,还提供了一种图指标流批一体化处理系统,包括图数据处理终端和图数据输入端,所述图数据处理终端和所述图数据输入端通信连接,所述图数据处理终端具体用于:
根据图数据库中的全图数据得到边表和点表,并将所述边表和所述点表存储到Hive数据库中;
基于所述Hive数据库中的所述边表和所述点表以及预设Spark计算模型,生成第一连通图表;其中,所述第一连通图表中包含两列,一列为点的ID,另一列为第一连通图的ID;
将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中,得到每一个第一连通图对应的图数据库底层文件;
调用图指标的计算模型以及参数列表的参数组合,在所述图数据库底层文件中查找与所述参数组合匹配的目标数据,根据所述计算模型对所述目标数据进行图指标计算,得到图指标计算结果;
通过调用HBase的api将所述图指标计算结果存入Hbase。
进一步地,所述图数据处理终端具体用于:
通过数据读取接口访问所述图数据库,将所述图数据库中的目标图对应的数据全量导出,得到边表和点表,将所述边表和所述点表存储到Hive数据库中。
进一步地,所述图数据处理终端具体用于:
将所述边表和所述点表输入到预设Spark计算模型中时,所述Spark计算模型遍历每一个第一连通图的数据,将同一个第一连通图的数据聚合到同一份图数据库底层文件中;
将每一图数据库底层文件进行压缩,得到对应的压缩包,并将所述压缩包存放到HDFS文件系统中。
进一步地,所述图数据处理终端具体用于:
在进行图指标计算之前,提取参数列表的参数组合,判断所述参数列表的参数组合与图数据库底层文件的映射表是否存在映射关系;
若存在,则遍历所述参数组合并进行图指标计算;
若不存在,则遍历每一个第一连通图的底层文件,查询出所有的所述参数组合,并且将所述参数组合和所述第一连通图底层文件的映射关系固化到所述Hive数据库中,再遍历所述参数组合并进行图指标计算。
进一步地,所述图数据处理终端具体用于:
并行地将所述图指标计算结果存入所述Hive数据库中。
基于上述同样的发明构思,请结合参阅图2,还提供了图指标流批一体化处理装置500的功能模块框图,关于所述图指标流批一体化处理装置500的详细描述如下。
一种图指标流批一体化处理装置500,应用于图数据处理终端,所述装置500包括:
数据采集模块510,用于根据图数据库中的全图数据得到边表和点表,并将所述边表和所述点表存储到Hive数据库中;
数据计算模块520,用于基于所述Hive数据库中的所述边表和所述点表以及预设Spark计算模型,生成第一连通图表;其中,所述第一连通图表中包含两列,一列为点的ID,另一列为第一连通图的ID;
数据处理模块530,用于将所述边表、所述点表以及所述第一连通图表输入到预设Spark程序中,得到每一个第一连通图对应的图数据库底层文件;
数据匹配模块540,用于调用图指标的计算模型以及参数列表的参数组合,在所述图数据库底层文件中查找与所述参数组合匹配的目标数据,根据所述计算模型对所述目标数据进行图指标计算,得到图指标计算结果;
数据存储模块550,用于通过调用HBase的api将所述图指标计算结果存入Hbase。
可以理解的,本发明中提供了一种更好的方案将图指标的计算结果以批处理的方式全部计算好,使得业务系统的查询仅仅是一个检索查询,而不会有过多的计算逻辑,而且计算结果保存在一个地方,可以重复检索查询,不必每次都运行计算逻辑。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
- 一种图指标流批一体化处理方法及装置
- 一种图指标流批一体化处理方法及装置