【技术实现步骤摘要】
一种图数据库的多层穿透查询方法及其装置
[0001]本申请涉及数据访问领域,尤其涉及一种基于离线节点稠密度统计的图数据库的多层穿透查询方法以及图数据库的多层穿透查询装置。
技术介绍
[0002]对于统计结果,我们往往会想进一步知道数字的来源、构成,甚至需要查到每一个单子的具体情况。这就需要用到穿透查询了。例如,在一个统计表中点击相应数字,会显示构成该数字的表单协同列表,就是这个数字由几张单子构成的。具体点击这个表单协同,会显示该表单的原始状态。这样,就象一个汇总的结果数字一层一层的穿透,查到数字的初始情况。
[0003]在现有技术中,对于在图数据库进行穿透查询时,一般是对于所有节点指定固定的查询最大深度。图1是表示了现有技术中图数据库的穿透查询方法的一个示例的流程示意图。如图1所示,现有技术的图数据库的穿透查询方法中,根据业务需求和实践经验指定最大的查询深度,然后基于单个多层穿透查询任务像图数据库进行穿透查询。这种情况下,存在的问题是,由于图谱数据是以节点和边的数据结构形式存储于数据库中,根据节点的疏密情况不同,一次相同深度的查询可能覆盖数据量差异很大,而且由于对于所有节点指定固定的查询最大深度,当指定过大的查询深度的情况下,在对稠密节点进行查询时可能会造成响应缓慢,图数据库内存溢出等问题。
技术实现思路
[0004]本专利技术为了消除上述一项或者多项问题,旨在提供一种查询响应速度快并且能够降低查询时内存溢出可能性的图数据库的多层穿透查询方法以及图数据库的多层穿透查询装置。
[0005 ...
【技术保护点】
【技术特征摘要】
1.一种图数据库的多层穿透查询方法,其特征在于,包括:判断步骤,接收穿透查询任务,根据所述穿透查询任务涉及的被查询节点的稠密度判断是否命中缓存中的数据,若是,则进至以下的读取步骤,若否,则进至以下的拆分步骤,其中,在所述缓存中预先存储有规定稠密度的节点的穿透查询结果;读取步骤,直接读取所述缓存中的穿透查询结果并进至以下的输出步骤;拆分步骤,将所述穿透查询任务拆分多个查询子任务并获取所述多个查询子任务的查询结果;归并步骤,将所述多个查询子任务的查询结果进行归并得到穿透查询结果;以及输出步骤,输出所述穿透查询结果。2.如权利要求1所述的图数据库的多层穿透查询方法,其特征在于,在所述判断步骤之前包括:离线计算图谱内各节点的稠密度并且将稠密度存储在图数据库中;以及将规定稠密度的节点的穿透查询结果预先写入到缓存中。3.如权利要求1所述的图数据库的多层穿透查询方法,其特征在于,所述规定稠密度的节点包括以下的一项或者/以及多项:超级节点;以及热点节点,其中,将某层级深度下某节点可达的节点个数或者层级深度定义为该节点在该深度下的节点密度,并且将所述节点密度达到规定阈值的节点定义为所述超级节点,其中,所述热点节点基于生产经验所确定。4.如权利要求1所述的图数据库的多层穿透查询方法,其特征在于,所述判断步骤包括:获取被查询节点的节点密度;根据当前查询深度以及预先设定的稠密度基准值,基于所述被查询节点的节点密度判断该是否为稠密点;若为非稠密点则直接调用图数据库进行穿透查询,若为稠密点则判断是否命中缓存中的数据。5.如权利要求1所述的图数据库的多层穿透查询方法,其特征在于,所述拆分步骤包括:假设被查询节点为V0,查询深度为x,所述穿透查询任务为调用图数据库深度为t层的穿透查询,则获得最大深度为i的叶子节点集合Vt以及每个叶子节点对应的父路径集合Pti;对于所述叶子节点集合Vt内的每一个节点Vti,建立一个对应的子查询任务,查询深度为x
‑
t,查询规则同所述被查询节点V0;获取得到多个子查询任务的查询结果,即从所述节点Vti出发最大深度为x
‑
t的子路径集合CPti。6.如权利要求5所述的图数据库的多层穿透查询方法,其特征在于,所述归并步骤中包括:合并所述父路径集合Pti和所述子路径集合CPti;以及
根据规定原则截断循环路径并去重。7.如权利要求6所述的图数据库的多层穿透查询方法,其特征在于,所述规定原则为点可重复边不可重复。8.一种图数据库的多层穿透查询装置,其特征在于,包括:缓存模块,预先存储有规定稠密度的节点的穿透查询结果;判断模块,用于接收穿透查询任务并根据所述穿透查询任务涉及的被查询节点的稠密度判断是否命中缓存中的数据;读取模块,用...
【专利技术属性】
技术研发人员:方叶秋,
申请(专利权)人:上海水滴征信服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。