CN105051725A - 一种图数据查询方法及装置 - Google Patents

一种图数据查询方法及装置 Download PDF

Info

Publication number
CN105051725A
CN105051725A CN201380003421.3A CN201380003421A CN105051725A CN 105051725 A CN105051725 A CN 105051725A CN 201380003421 A CN201380003421 A CN 201380003421A CN 105051725 A CN105051725 A CN 105051725A
Authority
CN
China
Prior art keywords
summit
inquiry
layering
partition
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380003421.3A
Other languages
English (en)
Other versions
CN105051725B (zh
Inventor
黄国位
颜友亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105051725A publication Critical patent/CN105051725A/zh
Application granted granted Critical
Publication of CN105051725B publication Critical patent/CN105051725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种图数据查询方法及装置,包括:获取查询顶点的分区号和分层号;并基于查询顶点的分区号和分层号,确定查询条件所表示的候选顶点的分区号和分层号,作为候选分区号和候选分层号;并将分区号和分层号满足任一组候选分区号和候选分层号的顶点组成候选集;以及按照该查询条件,从候选集中进行图数据查询。采用本方案,提高了图数据查询效率。

Description

一种图数据查询方法及装置 技术领域
本发明涉及数据处理技术领域中的图数据查询技术领域, 尤其涉及一种 图数据查询方法及装置。 背景技术
随着社交网络、 万维网、 电信网等的快速发展, 出现了基于图数据的组 织和查询的技术, 当数据量较大时, 也可以称作大图数据。
图数据组成的集合可以称作图数据全集, 图数据全集一般包括多个顶点, 以及存在连接关系的每两个顶点之间的边。 根据实际应用场景, 顶点可以表 示相应的物理含义, 例如, 在社交网络中, 顶点可以表示用户, 一个顶点的 图数据, 可以包括该顶点表示的用户的各种属性数据, 如姓名、 性别、 年龄 和好友列表等, 对于存在连接关系的两个顶点, 在该两个顶点之间建立有边, 边可以表示该两个顶点表示的两个用户之间具有好友关系。 又如, 在地图中, 顶点可以表示地理位置, 一个顶点的图数据, 可以包括该顶点表示的地理位 置的各种属性数据, 如位置名称、 位置坐标值等, 对于存在连接关系的两个 顶点, 在该两个顶点之间建立有边, 边可以表示该两个顶点表示的两个地理 位置之间存在路径直接到达, 即不需要经过另一个顶点即可到达。
在图数据的实际应用中, 经常需要对图数据进行查询, 获取期望获知的 图数据, 例如, 在社交网络中, 可以查询某一个指定用户的相关图数据, 也 可以按照查询条件查询与某一个指定用户具有好友关系的用户; 又如, 在地 图中, 可以查询两个地理位置之间的最短路径。
然而, 随着图数据全集所包括的数据量越来越大, 对于每次图数据查询, 均基于图数据全集包括的所有图数据进行查询, 将导致查询效率较低。
为了提高查询效率, 现有技术中出现了一些图数据组织的方案, 这些方 案一般都釆用分区算法组织图数据, 将图数据全集中的所有图数据划分成多 个分区, 分别进行存储和计算。
然而, 即使对图数据进行分区, 对于一些查询要求, 例如包括和距离有 关的查询要求, 还是需要基于图数据全集进行查询, 以便保证查询结果的准 确性, 而此时仍然存在查询效率较低的问题。 发明内容
本发明实施例提供一种图数据查询方法及装置, 用以解决现有技术中存 在的对图数据进行查询的效率较低的问题。
第一方面, 提供一种图数据查询方法, 应用于对图数据全集中的图数据 的查询, 所述图数据全集包括多个顶点, 以及存在连接关系的每两个顶点之 间的边, 预先对图数据全集中的多个顶点进行分区和分层, 将顶点所在分区 的编号作为该顶点的分区号, 将顶点到所在分区的分区边界的最短距离作为 该顶点的分层号, 所述方法, 包括:
获取查询条件以及所述查询条件表示的查询顶点的分区号和分层号; 基于所述查询顶点的分区号和分层号, 确定所述查询条件所表示的候选 顶点的分区号和分层号, 作为候选分区号和候选分层号, 其中, 所述候选顶 点为按照所述查询条件需要查询的顶点;
将分区号和分层号满足候选分区号和候选分层号的顶点组成候选集; 按照所述查询条件, 从所述候选集中进行图数据查询。
结合第一方面, 在第一种可能的实施方式中, 无法到达所在分区的分区 边界的顶点的分层号为默认分层号, 且所述默认分层号与能够到达所在分区 的分区边界的顶点的分层号不同;
在确定所述查询条件所表示的候选顶点的分区号和分层号之前, 还包括: 确定所述查询顶点的分层号是否是所述默认分层号, 且当确定结果为不 是所述默认分层号时, 触发执行确定所述查询条件所表示的候选顶点的分区 号和分层号这一步骤;
所述方法, 还包括: 当所述查询顶点的分层号是所述默认分层号时, 将分区号为所述查询顶 点的分区号且分层号为所述默认分层号的顶点组成候选集;
按照所述查询条件, 从所述候选集中进行图数据查询。
结合第一方面, 在第二种可能的实施方式中, 当存在连接关系的每两个 顶点之间的边的权重均相同时, 或者, 当存在连接关系的每两个顶点之间的 边均没有权重时, 顶点到所在分区的分区边界的最短距离为顶点到达所在分 区的分区边界的最少跳数, 两个顶点之间的距离为两个顶点中一个顶点到达 另一个顶点的跳数;
当存在连接关系的每两个顶点之间的边的权重不均相同时, 将顶点到所 在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分区的 分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达另一 个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重和。
结合第一方面, 在第三种可能的实施方式中, 基于所述查询顶点的分区 号和分层号, 确定所述查询条件所表示的候选顶点的分区号和分层号, 具体 包括:
基于所述查询顶点的分区号和分层号, 按照查询条件所表示的候选顶点 到所述查询顶点的距离, 确定所述候选顶点的分区号和分层号。
结合第一方面的第三种可能的实施方式, 在第四种可能的实施方式中, 预先对图数据全集中的多个顶点进行按边分区, 分区边界上不包括顶点, 且 具有跨到其他分区的边的顶点到所在分区的分区边界的最短距离为零;
当所述查询条件表示候选顶点到所述查询顶点的最大距离时, 确定所述 候选顶点的分区号和分层号, 具体包括:
当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号; 当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号再减去 1的差值与该相邻分 区的最大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
结合第一方面的第三种可能的实施方式, 在第五种可能的实施方式中, 预先对图数据全集中的多个顶点进行按顶点分区, 分区边界上包括顶点, 且 分区边界上的顶点到所在分区的分区边界的最短距离为零;
当所述查询条件表示候选顶点到所述查询顶点的最大距离时, 确定所述 候选顶点的分区号和分层号, 具体包括:
当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号的差值与该相邻分区的最 大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为 与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
结合第一方面, 在第六种可能的实施方式中, 获取查询条件以及所述查 询条件表示的查询顶点的分区号和分层号, 具体包括:
获取查询条件, 且当所述查询条件表示需要查询第一查询顶点和第二查 询顶点之间的最短路径时, 获取所述第一查询顶点的分区号和分层号, 以及 所述第二查询顶点的分区号和分层号;
基于所述查询顶点的分区号和分层号, 确定所述查询条件所表示的候选 顶点的分区号和分层号, 具体包括:
当所述第一查询顶点和所述第二查询顶点位于同一个分区时, 确定所述 候选顶点的分区号为所述第一查询顶点和所述第二查询顶点的分区号; 并将 所述第一查询顶点的分层号到所述第二查询顶点的分层号的闭区间内的分层 号, 确定为所述候选顶点的分层号;
当所述第一查询顶点和所述第二查询顶点位于不同分区时, 确定所述候 选顶点的分区号为所述第一查询顶点的分区号和所述第二查询顶点的分区 号; 针对所述第一查询顶点所在分区, 将零到所述第一查询顶点的分层号的 闭区间内的分层号, 确定为与所述第一查询顶点的分区号属于同一组的所述 候选顶点的分层号; 针对所述第二查询顶点所在分区, 将零到所述第二查询 顶点的分层号的闭区间内的分层号, 确定为与所述第二查询顶点的分区号属 于同一组的所述候选顶点的分层号。
结合第一方面的第六种可能的实施方式, 在第七种可能的实施方式中, 还包括:
当按照所述查询条件, 从所述候选集中未查询到需要的图数据时, 扩大 所述候选集包括的分层号区间, 得到扩大后候选集;
按照所述查询条件, 从所述扩大后候选集中进行图数据查询。
结合第一方面, 在第八种可能的实施方式中, 当所述图数据全集中的图 数据存储在文件系统中时, 所述多个顶点的分区号和分层号存储在一个文件 中, 分区号和分层号相同的顶点的图数据存储在一个文件中, 不同分区号和 分层号的顶点的图数据存储在不同的文件中。
结合第一方面、 第一方面的第一种可能的实施方式、 第一方面的第二种 可能的实施方式、 第一方面的第三种可能的实施方式、 第一方面的第四种可 能的实施方式、 第一方面的第五种可能的实施方式、 第一方面的第六种可能 的实施方式、 第一方面的第七种可能的实施方式或者第一方面的第八种可能 的实施方式, 在第九种可能的实施方式中, 按照所述查询条件, 从所述候选 集中进行图数据查询, 具体包括:
将所述候选集包括的顶点的图数据加载到内存中;
按照所述查询条件, 从内存中緩存的所述候选集包括的顶点的图数据中 进行图数据查询。
第二方面, 提供一种图数据查询装置, 应用于对图数据全集中的图数据 的查询, 所述图数据全集包括多个顶点, 以及存在连接关系的每两个顶点之 间的边, 其特征在于, 预先对图数据全集中的多个顶点进行分区和分层, 将 顶点所在分区的编号作为该顶点的分区号, 将顶点到所在分区的分区边界的 最短距离作为该顶点的分层号, 所述查询装置, 包括:
获取单元, 用于获取查询条件以及所述查询条件表示的查询顶点的分区 号和分层号;
第一确定单元, 用于基于所述查询顶点的分区号和分层号, 确定所述查 询条件所表示的候选顶点的分区号和分层号, 作为候选分区号和候选分层号, 其中, 所述候选顶点为按照所述查询条件需要查询的顶点;
第二确定单元, 用于将分区号和分层号满足候选分区号和候选分层号的 顶点组成美选集;
查询单元, 用于按照所述查询条件, 从所述候选集中进行图数据查询。 结合第二方面, 在第一种可能的实施方式中, 无法到达所在分区的分区 边界的顶点的分层号为默认分层号, 且所述默认分层号与能够到达所在分区 的分区边界的顶点的分层号不同;
所述第一确定单元, 还用于在确定所述查询条件所表示的候选顶点的分 区号和分层号之前, 确定所述查询顶点的分层号是否是所述默认分层号, 且 当确定结果为不是所述默认分层号时, 触发执行确定所述查询条件所表示的 候选顶点的分区号和分层号这一步骤;
所述第二确定单元, 还用于当所述查询顶点的分层号是所述默认分层号 时, 将分区号为所述查询顶点的分区号且分层号为所述默认分层号的顶点组 成候选集。
结合第二方面, 在第二种可能的实施方式中, 当存在连接关系的每两个 顶点之间的边的权重均相同时, 或者, 当存在连接关系的每两个顶点之间的 边均没有权重时, 顶点到所在分区的分区边界的最短距离为顶点到达所在分 区的分区边界的最少跳数, 两个顶点之间的距离为两个顶点中一个顶点到达 另一个顶点的跳数;
当存在连接关系的每两个顶点之间的边的权重不均相同时, 将顶点到所 在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分区的 分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达另一 个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重和。
结合第二方面, 在第三种可能的实施方式中, 所述第一确定单元, 具体 用于基于所述查询顶点的分区号和分层号, 按照查询条件所表示的候选顶点 到所述查询顶点的距离, 确定所述候选顶点的分区号和分层号。
结合第二方面的第三种可能的实施方式, 在第四种可能的实施方式中, 预先对图数据全集中的多个顶点进行按边分区, 分区边界上不包括顶点, 且 具有跨到其他分区的边的顶点到所在分区的分区边界的最短距离为零;
所述第一确定单元, 具体用于当所述查询条件表示候选顶点到所述查询 顶点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号: 当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号再减去 1的差值与该相邻分 区的最大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
结合第二方面的第三种可能的实施方式, 在第五种可能的实施方式中, 预先对图数据全集中的多个顶点进行按顶点分区, 分区边界上包括顶点, 且 分区边界上的顶点到所在分区的分区边界的最短距离为零;
所述第一确定单元, 具体用于当所述查询条件表示候选顶点到所述查询 顶点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号: 当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号的差值与该相邻分区的最 大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为 与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
结合第二方面, 在第六种可能的实施方式中, 所述获取单元, 具体用于 获取查询条件, 且当所述查询条件表示需要查询第一查询顶点和第二查询顶 点之间的最短路径时, 获取所述第一查询顶点的分区号和分层号, 以及所述 第二查询顶点的分区号和分层号;
所述第一确定单元, 具体用于当所述第一查询顶点和所述第二查询顶点 位于同一个分区时, 确定所述候选顶点的分区号为所述第一查询顶点和所述 第二查询顶点的分区号; 并将所述第一查询顶点的分层号到所述第二查询顶 点的分层号的闭区间内的分层号, 确定为所述候选顶点的分层号;
当所述第一查询顶点和所述第二查询顶点位于不同分区时, 确定所述候 选顶点的分区号为所述第一查询顶点的分区号和所述第二查询顶点的分区 号; 针对所述第一查询顶点所在分区, 将零到所述第一查询顶点的分层号的 闭区间内的分层号, 确定为与所述第一查询顶点的分区号属于同一组的所述 候选顶点的分层号; 针对所述第二查询顶点所在分区, 将零到所述第二查询 顶点的分层号的闭区间内的分层号, 确定为与所述第二查询顶点的分区号属 于同一组的所述候选顶点的分层号。
结合第二方面的第六种可能的实施方式, 在第七种可能的实施方式中, 所述第二确定单元, 还用于当所述查询单元按照所述查询条件, 从所述候选 集中未查询到需要的图数据时, 扩大所述候选集包括的分层号区间, 得到扩 大后候选集;
所述查询单元, 还用于按照所述查询条件, 从所述扩大后候选集中进行 图数据查询。
结合第二方面, 在第八种可能的实施方式中, 当所述图数据全集中的图 数据存储在文件系统中时, 所述多个顶点的分区号和分层号存储在一个文件 中, 分区号和分层号相同的顶点的图数据存储在一个文件中, 不同分区号和 分层号的顶点的图数据存储在不同的文件中。 结合第二方面、 第二方面的第一种可能的实施方式、 第二方面的第二种 可能的实施方式、 第二方面的第三种可能的实施方式、 第二方面的第四种可 能的实施方式、 第二方面的第五种可能的实施方式、 第二方面的第六种可能 的实施方式、 第二方面的第七种可能的实施方式或者第二方面的第八种可能 的实施方式, 在第九种可能的实施方式中, 所述查询单元, 具体用于将所述 候选集包括的顶点的图数据加载到内存中; 并按照所述查询条件, 从内存中 緩存的所述候选集包括的顶点的图数据中进行图数据查询。
第三方面, 提供一种查询服务器, 应用于对图数据全集中的图数据的查 询, 所述图数据全集包括多个顶点, 以及存在连接关系的每两个顶点之间的 边, 预先对图数据全集中的多个顶点进行分区和分层, 将顶点所在分区的编 号作为该顶点的分区号, 将顶点到所在分区的分区边界的最短距离作为该顶 点的分层号, 所述查询服务器, 具体包括:
接口, 用于接收查询条件;
处理器, 用于获取所述查询条件以及所述查询条件表示的查询顶点的分 区号和分层号; 并基于所述查询顶点的分区号和分层号, 确定所述查询条件 所表示的候选顶点的分区号和分层号, 作为候选分区号和候选分层号, 其中, 所述候选顶点为按照所述查询条件需要查询的顶点; 并将分区号和分层号满 足候选分区号和候选分层号的顶点组成候选集; 以及按照所述查询条件, 从 所述候选集中进行图数据查询;
存储器, 用于存储所述图数据全集的图数据, 以及所述图数据全集的所 述多个顶点的分区号和分层号。
结合第三方面, 在第一种可能的实施方式中, 无法到达所在分区的分区 边界的顶点的分层号为默认分层号, 且所述默认分层号与能够到达所在分区 的分区边界的顶点的分层号不同;
所述处理器, 还用于在确定所述查询条件所表示的候选顶点的分区号和 分层号之前, 确定所述查询顶点的分层号是否是所述默认分层号, 且当确定 结果为不是所述默认分层号时, 触发执行确定所述查询条件所表示的候选顶 点的分区号和分层号这一步骤; 并当所述查询顶点的分层号是所述默认分层 号时, 将分区号为所述查询顶点的分区号且分层号为所述默认分层号的顶点 组成候选集; 以及按照所述查询条件, 从所述候选集中进行图数据查询。
结合第三方面, 在第二种可能的实施方式中, 当存在连接关系的每两个 顶点之间的边的权重均相同时, 或者, 当存在连接关系的每两个顶点之间的 边均没有权重时, 顶点到所在分区的分区边界的最短距离为顶点到达所在分 区的分区边界的最少跳数, 两个顶点之间的距离为两个顶点中一个顶点到达 另一个顶点的跳数;
当存在连接关系的每两个顶点之间的边的权重不均相同时, 将顶点到所 在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分区的 分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达另一 个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重和。
结合第三方面, 在第三种可能的实施方式中, 所述处理器, 具体用于基 于所述查询顶点的分区号和分层号, 按照查询条件所表示的候选顶点到所述 查询顶点的距离, 确定所述候选顶点的分区号和分层号。
结合第三方面的第三种可能的实施方式, 在第四种可能的实施方式中, 预先对图数据全集中的多个顶点进行按边分区, 分区边界上不包括顶点, 且 具有跨到其他分区的边的顶点到所在分区的分区边界的最短距离为零;
所述处理器, 具体用于当所述查询条件表示候选顶点到所述查询顶点的 最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号:
当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号再减去 1的差值与该相邻分 区的最大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
结合第三方面的第三种可能的实施方式, 在第五种可能的实施方式中, 预先对图数据全集中的多个顶点进行按顶点分区, 分区边界上包括顶点, 且 分区边界上的顶点到所在分区的分区边界的最短距离为零;
所述处理器, 具体用于当所述查询条件表示候选顶点到所述查询顶点的 最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号:
当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号的差值与该相邻分区的最 大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为 与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
结合第三方面, 在第六种可能的实施方式中, 处理器, 具体用于获取查 询条件, 且当所述查询条件表示需要查询第一查询顶点和第二查询顶点之间 的最短路径时, 获取所述第一查询顶点的分区号和分层号, 以及所述第二查 询顶点的分区号和分层号; 并当所述第一查询顶点和所述第二查询顶点位于 同一个分区时, 确定所述候选顶点的分区号为所述第一查询顶点和所述第二 查询顶点的分区号; 并将所述第一查询顶点的分层号到所述第二查询顶点的 分层号的闭区间内的分层号, 确定为所述候选顶点的分层号; 以及当所述第 一查询顶点和所述第二查询顶点位于不同分区时, 确定所述候选顶点的分区 号为所述第一查询顶点的分区号和所述第二查询顶点的分区号; 针对所述第 一查询顶点所在分区, 将零到所述第一查询顶点的分层号的闭区间内的分层 号, 确定为与所述第一查询顶点的分区号属于同一组的所述候选顶点的分层 号; 针对所述第二查询顶点所在分区, 将零到所述第二查询顶点的分层号的 闭区间内的分层号, 确定为与所述第二查询顶点的分区号属于同一组的所述 候选顶点的分层号。
结合第三方面的第六种可能的实施方式, 在第七种可能的实施方式中, 所述处理器, 还用于当按照所述查询条件, 从所述候选集中未查询到需要的 图数据时, 扩大所述候选集包括的分层号区间, 得到扩大后候选集; 并按照 所述查询条件, 从所述扩大后候选集中进行图数据查询。
结合第三方面, 在第八种可能的实施方式中, 存储器, 具体用于将所述 图数据全集中的图数据存储在文件系统中, 且所述多个顶点的分区号和分层 号存储在一个文件中, 分区号和分层号相同的顶点的图数据存储在一个文件 中, 不同分区号和分层号的顶点的图数据存储在不同的文件中。
结合第三方面、 第三方面的第一种可能的实施方式、 第三方面的第二种 可能的实施方式、 第三方面的第三种可能的实施方式、 第三方面的第四种可 能的实施方式、 第三方面的第五种可能的实施方式、 第三方面的第六种可能 的实施方式、 第三方面的第七种可能的实施方式或者第三方面的第八种可能 的实施方式, 在第九种可能的实施方式中, 处理器, 具体用于将所述候选集 包括的顶点的图数据加载到内存中; 并按照所述查询条件, 从内存中緩存的 所述候选集包括的顶点的图数据中进行图数据查询。
本发明有益效果包括:
本发明实施例提供的方案中, 图数据全集包括多个顶点, 以及存在连接 关系的每两个顶点之间的边, 并且预先对图数据全集中的多个顶点进行分区 和分层, 将顶点所在分区的编号作为该顶点的分区号, 将顶点到所在分区的 分区边界的最短距离作为该顶点的分层号, 基于顶点的分区号和分层号, 在 进行图数据查询时, 首先获取查询顶点的分区号和分层号, 并基于查询顶点 的分区号和分层号, 确定查询条件所表示的候选顶点的分区号和分层号, 作 为候选分区号和候选分层号, 并将分区号和分层号满足任一组候选分区号和 候选分层号的顶点组成候选集, 以及按照查询条件, 从候选集中进行图数据 查询。 由于基于预先对顶点划分的分区和分层, 并根据查询条件, 从图数据 全集中筛选出了候选集, 且候选集的数据量少于图数据全集的数据量, 所以, 从候选集中进行图数据查询, 提高了图数据查询的效率。
本申请的其它特征和优点将在随后的说明书中阐述, 并且, 部分地从说 明书中变得显而易见, 或者通过实施本申请而了解。 本申请的目的和其他优 点可通过在所写的说明书、 权利要求书、 以及附图中所特别指出的结构来实 现和获得。 附图说明
附图用来提供对本发明的进一步理解, 并且构成说明书的一部分, 与本 发明实施例一起用于解释本发明, 并不构成对本发明的限制。 在附图中: 图 1为本发明实施例提供的图数据查询方法的流程图;
图 2为本发明实施例 1中提供的对图数据全集中的图数据进行组织的流程 图;
图 3为本发明实施例 1中按边分区的分区结果示意图;
图 4为本发明实施例 1中按顶点分区的分区结果示意图;
图 5为本发明实施例 1中为图 3中的顶点在按边分区后又进行分层的结果 示意图;
图 6为本发明实施例 1中为图 4中的顶点在按顶点分区后又进行分层的结 构示意图;
图 7为本发明实施例 1中对顶点进行重编号后的结构示意图;
图 8为本发明实施例 2中提供的图数据查询方法的流程图;
图 9为本发明实施例 3中提供的图数据查询方法的流程图;
图 10为本发明实施例 4中提供的从候选集中进行图数据查询的流程图; 图 11为本发明实施例 5中提供的图数据查询装置的结构示意图;
图 12为本发明实施例 6中提供的查询服务器的结构示意图。 具体实施方式
为了给出提高图数据查询效率的实现方案, 本发明实施例提供了一种图 数据查询方法及装置, 以下结合说明书附图对本发明的优选实施例进行说明, 应当理解, 此处所描述的优选实施例仅用于说明和解释本发明, 并不用于限 定本发明。 并且在不冲突的情况下, 本申请中的实施例及实施例中的特征可 以相互组合。
本发明实施例提供一种图数据查询方法, 应用于对图数据全集中的图数 据的查询, 图数据全集包括多个顶点, 以及存在连接关系的每两个顶点之间 的边, 并且, 预先对图数据全集中的多个顶点进行分区和分层, 将顶点所在 分区的编号作为该顶点的分区号, 将顶点到所在分区的分区边界的最短距离 作为该顶点的分层号, 该方法如图 1所示, 包括:
步骤 101、 获取查询条件以及查询条件表示的查询顶点的分区号和分层 号。
步骤 102、 基于查询顶点的分区号和分层号, 确定查询条件所表示的候选 顶点的分区号和分层号, 作为候选分区号和候选分层号, 其中, 候选顶点为 按照查询条件需要查询的顶点。
步骤 103、 将分区号和分层号满足候选分区号和候选分层号的顶点组成候 选集。
步骤 104、 按照该查询条件, 从候选集中进行图数据查询。
在实际应用中, 图数据全集中可能出现一些离群点, 也可以称作孤立点, 即这些顶点无法到达所在分区的分区边界, 当图数据全集中存在这些顶点时, 还可以进一步的将这些顶点的分层号确定为默认分层号, 且默认分层号与能 够到达所在分区的分区边界的顶点的分层号不同。
相应的, 在上述图 1所示的方法中, 在上述步骤 102中确定查询条件所表 示的候选顶点的分区号和分层号之前, 还可以先确定查询顶点的分层号是否 为默认分层号, 如果不是默认分层号, 则触发执行上述步骤 102, 否则, 可以 将分区号为查询顶点的分区号且分层号为默认分层号的顶点组成候选集, 并 按照查询条件, 从该候选集中进行图数据查询, 从而实现针对图数据全集中 的离群点的图数据的查询。
本发明实施例中, 提出了一种新的图数据组织方法, 即预先对图数据全 集中的多个顶点进行分区和分层, 并确定每个顶点的分区号和分层号, 从而 基于执行该图数据组织方法的结果, 进行图数据的查询。
下面结合附图, 首先对本发明实施例中提出的图数据组织方法进行详细 描述。
实施例 1 :
图 2为本发明实施例 1中对图数据全集中的图数据进行组织的流程图, 具 体包括如下处理步骤:
步骤 201、 对图数据全集包括的多个顶点进行分区。
分区算法可以釆用按边分区 (edge-cut ) , 也可以釆用按顶点分区 ( vertex-cut ) , 下面对这两种分区算法分别进行描述。
按边分区: 如图 3所示, 针对顶点 0-顶点 9进行分区, 顶点 0-顶点 9中各顶 点之间的关系如图 3中所示, 两个顶点之间的连接线表示该两个顶点之间的 边。
如图 3所示可知, 按边分区是指通过使用分区边界切分顶点之间的边进行 切分, 切分后, 顶点 0、 顶点 1、 顶点 2、 顶点 6和顶点 7位于同一个分区, 可以 称作分区 0 , 即分区号为 0 , 顶点 3、 顶点 4、 顶点 5、 顶点 8和顶点 9位于另一个 分区, 可以称作分区 1 , 即分区号为 1。
按顶点分区, 如图 4所示, 针对与图 3中相同的顶点 0-顶点 9进行分区。 如图 4所示可知, 按顶点分区是指通过使用分区边界切分顶点进行切分, 切分后, 被切分的顶点可以属于切分边界两侧的任一分区, 例如, 顶点 0、 顶 点 1、 顶点 2、 顶点 6和顶点 7位于同一个分区, 可以称作分区 0, 即分区号为 0 , 顶点 3、 顶点 4、 顶点 5、 顶点 8和顶点 9位于另一个分区, 可以称作分区 1 , 即 分区号为 1。
步骤 202、 在完成对图数据全集包括的多个顶点的分区后, 即可以针对每 个分区包括的顶点进行分层, 将到所在分区的分区边界的最短距离相同的顶 点划分到同一个分层, 且该最短距离作为分层号。
本发明实施例中, 当存在连接关系的每两个顶点之间的边的权重均相同 时, 或者, 当存在连接关系的每两个顶点之间的边均没有权重时, 顶点到所 在分区的分区边界的最短距离可以为顶点到达所在分区的分区边界的最少跳 数, 两个顶点之间的距离为两个顶点中一个顶点到达另一个顶点的跳数; 当存在连接关系的每两个顶点之间的边的权重不均相同时, 可以将顶点 到所在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分 区的分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达 另一个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重 和。
由于在实际应用中, 有些应用场景下, 两个顶点之间的关系可以仅表示 具有连接关系, 则此时两个顶点之间的边可以不设置权重, 也可以均设置相 同的权重, 例如, 在社交网络中, 边仅表示两个顶点表示的两个用户具有好 友关系, 则可以不设置权重; 然而, 有些应用场景下, 两个顶点之间的关系 除表示具有连接关系之外, 还可以表示连接程度, 则此时两个顶点之间的边 可以设置权重, 且权重不同, 表示连接程度不同, 例如, 在地图中, 边除表 示两个顶点表示的两个地理位置之间存在路径直接到达外, 边的权重越大, 则表示路径越长, 例如, 按照路径长度范围确定对应的权重, 路径长度所属 范围相同的, 对应的权重相同。
为描述方便和便于清楚的理解本申请方案, 本步骤中, 以存在连接关系 的每两个顶点之间的边均没有权重为例, 对分层结果进行描述。
如图 5所示, 为图 3中的顶点 0-顶点 9在按边分区后又进行分层的结果示意 图, 其中, 具有跨到其他分区的边的顶点到所在分区的分区边界的最短距离 为零, 即顶点 2、 顶点 7、 顶点 3和顶点 8的分层号为 0; 顶点 6和顶点 9到分区边 界的跳数为 1 , 即分层号为 1 ; 顶点 0、 顶点 1和顶点 4到分区边界的跳数为 2 , 即分层号为 2; 顶点 5到分区边界的跳数为 3 , 即分层号为 3。
如图 6所示, 为图 4中的顶点 0-顶点 9在按顶点分区后又进行分层的结构示 意图, 其中, 分区边界上的顶点到所在分区的分区边界的最短距离为零, 即 顶点 2和顶点 8的分层号为 0; 顶点 6、 顶点 7、 顶点 3和顶点 9到分区边界的跳数 为 1 , 即分层号为 1 ; 顶点 0、 顶点 1和顶点 4到分区边界的跳数为 2 , 即分层号 为 2; 顶点 5到分区边界的跳数为 3 , 即分层号为 3。
步骤 203、 在对图数据全集中的顶点进行分区和分层后, 存储该图数据全 集包括的顶点的分区分层信息, 即每个顶点的分区号和分层号, 以及还可以 基于分区和分层结果对图数据全集中的图数据进行存储, 即将不同分区和不 同分层的顶点的图数据进行分开存储。
例如, 当将图数据全集中的图数据存储在文件系统中时, 如分布式文件 系统( HDFS , Hadoop Distributed File System ) , 可以将多个顶点的分区分层 信息 (分区号和分层号)存储在一个单独文件中, 并将分区号和分层号相同 的顶点的图数据存储在一个单独文件中, 且不同分区号和分层号的顶点的图 数据存储在不同的文件中。
又如, 当将图数据存储在图数据库中时, 可以将多个顶点的分区分层信 息以表格的方式, 存储在数据库中。
又如, 当釆用矩阵来表示图数据的邻接关系时, 如现有技术中的 GBASE 数据库系统, 即是一个可伸缩的通用图数据管理系统, 该系统可以将图数据 的查询或计算转化为对矩阵的运算。 此时, 如图 3或图 4所示为未进行处理的 原图, 其对应的矩阵表示如下:
1 1
1 1
1 1 1
1 1 1
1 1
1
1 1 1 1
1 1 1
1 1 1
1 1 1 其中, 元素 (m,n)为 1表示第 m个顶点和第 n个顶点之间存在连接关系。 釆用以上步骤对该多个顶点进行分区分层后, 为了将同一层的顶点在矩 阵中连续显示, 可以对其进行重编号。 重编号方式为: 同一分层的顶点连续 编号, 相邻分区的顶点连续编号。 重编号结果如图 7所示, 重编号后对应的矩 阵表示如下:
通过本步骤, 将不同分区和不同分层的顶点的图数据进行分开存储, 使 得在后续进行图数据查询的过程中, 更方便获取候选集所包括的顶点的图数 据, 从而进一步提高图数据查询效率。
本发明实施例 1中, 以将图数据全集包括的顶点划分为两个分区为例, 描 述了对图数据全集中的图数据组织方案, 在实际应用中, 根据实际需要, 也 可以将图数据全集包括的顶点划分为更多个分区, 同样适用于本发明实施例 提供的图数据查询方法。
本发明实施例中, 在通过上述实施例 1中所示的流程对图数据全集中的图 数据组织, 即进行分区分层并存储后, 即可以基于该结果进行图数据的查询。
在进行图数据查询时, 按照查询条件的不同, 可以釆用相应的查询流程, 例如, 当查询条件能够表示候选顶点到查询顶点的距离时, 可以釆用如下实 施例 2中所示的流程进行查询。
实施例 2:
本发明实施例 2中, 进行图数据查询时依据的查询条件能够表示查询顶 点, 以及候选顶点到查询顶点的距离, 候选顶点即需要通过查询确定是否满 足查询条件的顶点。
例如, 查询某一个顶点的某一属性数据, 该顶点即为查询顶点; 又如, 顶点表示用户, 查询某一用户的朋友的朋友中是否有指定名称的人, 此时, 该用户对应的顶点为查询顶点, 4矣选顶点为该顶点具有朋友关系的顶点, 以 及与该顶点的朋友具有朋友关系的顶点, 即候选顶点到该查询顶点的距离包 括 1和 2; 又如, 顶点表示地理位置, 查询到该顶点的距离满足预设范围的顶 点的属性数据, 则候选顶点到该顶点的距离包括该预设范围所包含的距离。
图 8为本发明实施例 2中提供的图数据查询方法的流程图, 具体可以包括 如下处理步骤:
步骤 801、 获取查询顶点的分区号和分层号。
可以从查询条件中获取查询顶点的分区号和分层号。
步骤 802、 基于该查询顶点的分区号和分层号, 按照查询条件所表示的候 选顶点到该查询顶点的距离, 确定候选顶点的分区号和分层号, 作为候选分 区号和候选分层号, 其中, 候选顶点为按照查询条件需要查询的顶点。
本步骤中, 以查询条件能够表示候选顶点到该查询顶点的最大距离为例 进行描述, 此时, 所确定出的候选顶点的分区号和分层号可能包括多组分区 号和分层号, 且在同一分区中, 分层号可能为一个分层区间内所包括的分层 号, 具体按照按边分区和按顶点分区分别描述如下:
第一种方式: 在本方式中, 图数据全集的多个顶点是按边分区的, 分区 边界上不包括顶点, 且具有跨到其他分区的边的顶点到所在分区的分区边界 的最短距离为零。
本方式中包括的步骤如下:
步骤 a、 当查询条件表示候选顶点到查询顶点的最大距离时, 首先确定该 最大距离 K是否大于该查询顶点的分层号 L, 如果不大于, 进入步骤 b, 如果大 于, 进入步骤6
步骤 b、 当该最大距离 K不大于该查询顶点的分层号 L时,确定候选顶点的 分区号为该查询顶点的分区号, 然后进入步骤 c
步骤 c、确定该查询顶点的分层号 L加上最大距离 K的和值与查询顶点所在 分区的最大分层号 Jmax之间的最小值, 即 min(J + , Jmax ) , 然后进入步骤 d 步骤 d、 将该查询顶点的分层号 L减去最大距离 K的差值到该最小值 minOL + ^J的闭区间内的分层号, 确定为候选顶点的分层号, 即区间 [J - ,min(J + ,Jmax )]内的分层号。
步骤 e、 当该最大距离 K大于该查询顶点的分层号 L时,确定候选顶点的分 区号为该查询顶点的分区号, 以及与该查询顶点所在分区的相邻分区的分区 号, 然后进入步骤 f
步骤 f、 针对该查询顶点所在分区, 确定该查询顶点的分层号 L加上最大 距离 K的和值与该查询顶点所在分区的最大分层号 Jmax之间的最小值, 即 mm{L + K, Lm , 然后进入步骤 g
步骤 g、 将零到该最小值!^!!^ +^^ ;!的闭区间内的分层号, 确定为与该 查询顶点的分区号属于同一组的候选顶点的分层号, 即区间 [0, min {L + K, L 内的分层号, 然后进入步骤 h
步骤 h、 针对该查询顶点所在分区的每个相邻分区, 确定最大距离 K减去 该查询顶点的分层号 L再减去 1的差值与该相邻分区的最大分层号 Jmax之间的 最小值, 即 min( - J- l,Jmax), 然后进入步骤 i
步骤 i、 将零到该最小值 min ( - -1, _)的闭区间内的分层号, 确定为与 该相邻分区的分区号属于同一组的候选顶点的分层号, 即区间
[0, min {K-L-l, L )]内的分层号。
第二种方式: 在本方式中, 图数据全集的多个顶点是按顶点分区的, 分 区边界上包括顶点, 且分区边界上的顶点到所在分区的分区边界的最短距离 为零。
本方式中包括的步骤如下:
步骤 a、 当查询条件表示候选顶点到查询顶点的最大距离时, 首先确定该 最大距离 K是否大于该查询顶点的分层号 L, 如果不大于, 进入步骤 b, 如果大 于, 进入步骤6
步骤 b、 当该最大距离 K不大于该查询顶点的分层号 L时,确定候选顶点的 分区号为该查询顶点的分区号, 然后进入步骤 c
步骤 c、确定该查询顶点的分层号 L加上最大距离 K的和值与查询顶点所在 分区的最大分层号 Jmax之间的最小值, 即 min(J + ,Jmax), 然后进入步骤 d 步骤 d、 将该查询顶点的分层号 L减去最大距离 K的差值到该最小值 min(J + ,Jmax;)的闭区间内的分层号, 确定为候选顶点的分层号, 即区间 [J- ,min(J + ,Jmax)]内的分层号。
步骤 e、 当该最大距离 K大于该查询顶点的分层号 L时,确定候选顶点的分 区号为该查询顶点的分区号, 以及与该查询顶点所在分区的相邻分区的分区 号, 然后进入步骤 f
步骤 f、 针对该查询顶点所在分区, 确定该查询顶点的分层号 L加上最大 距离 K的和值与该查询顶点所在分区的最大分层号 Jmax之间的最小值, 即 mm{L + K,Lm , 然后进入步骤 g
步骤 g、 将零到该最小值!^!!^ ;!的闭区间内的分层号, 确定为与该 查询顶点的分区号属于同一组的候选顶点的分层号, 即区间 [0, min {L + K, L 内的分层号, 然后进入步骤 h。
步骤 h、 针对该查询顶点所在分区的每个相邻分区, 确定最大距离 K减去 该查询顶点的分层号 L的差值与该相邻分区的最大分层号 Jmax之间的最小值, 即 min ( - J,Jmax ) , 然后进入步骤 i。
步骤 i、 将零到该最小值 min(^ -J,Jmax ^々闭区间内的分层号, 确定为与该 相邻分区的分区号属于同一组的候选顶点的分层号, 即区间 [0, min {K - L, L 内的分层号。
步骤 803、 将分区号和分层号满足任一组候选分区号和候选分层号的顶点 组成候选集。
即将上述步骤 802中确定每组候选分区号和候选分层号包括的顶点组成 候选集。
步骤 804、 按照该查询条件, 从该候选集中进行图数据查询。
实施例 3 :
本发明实施例 3中, 进行图数据查询时依据的查询条件表示两个查询顶 点, 分别为第一查询顶点和第二查询顶点, 且能够表示需要查询第一查询顶 点和第二查询顶点之间的最短路径。
例如, 查询两个地址位置之间的最短距离。
图 9为本发明实施例 3中提供的图数据查询方法的流程图, 具体可以包括 如下处理步骤:
步骤 901、 获取第一查询顶点的分区号和分层号, 以及第二查询顶点的分 区号和分层号。
可以从查询条件中获取第一查询顶点和第二查询顶点的分区号和分层 号。
步骤 902、 确定第一查询顶点和第二查询顶点是否位于同一个分区, 如果 位于同一个分区中, 进入步骤 903 , 否则, 进入步骤 905。
步骤 903、 当第一查询顶点和第二查询顶点位于同一个分区时, 确定候选 顶点的分区号为第一查询顶点和第二查询顶点的分区号。
步骤 904、将第一查询顶点的分层号 L1到第二查询顶点的分层号 L2的闭区 间内的分层号, 确定为候选顶点的分层号,假设 L1小于 L2, 即区间 [J^J ]内的 分层号。
步骤 905、 当第一查询顶点和第二查询顶点位于不同分区时, 确定候选顶 点的分区号为第一查询顶点的分区号和第二查询顶点的分区号。
步骤 906、 针对第一查询顶点所在分区, 将零到第一查询顶点的分层号 L1 的闭区间内的分层号, 确定为与第一查询顶点的分区号属于同一组的候选顶 点的分层号, 即区间 [0, ^ ]内的分层号。
步骤 907、 针对第二查询顶点所在分区, 将零到第二查询顶点的分层号 L2 的闭区间内的分层号, 确定为与第二查询顶点的分区号属于同一组的候选顶 点的分层号, 即区间 [0,J2]内的分层号。
步骤 908、 将分区号和分层号满足任一组候选分区号和候选分层号的顶点 组成候选集。
即将釆用上述步骤 901-步骤 907中确定每组候选分区号和候选分层号包括 的顶点组成候选集。
步骤 909、 按照该查询条件, 从当前的候选集中进行图数据查询。
本步骤中, 当得到查询结果时, 即结束本次查询。
然而, 在一些实际应用场景中, 从上述方式确定的候选集中进行图数据 查询时, 可能无法查询到期望的图数据, 例如, 可能无法查询到第一查询顶 点和第二查询顶点之间的距离, 此时, 进一步的, 还可以包括如下步骤: 步骤 910、 当按照查询条件, 从当前候选集中未查询到需要的图数据时, 扩大该候选集包括的分层号区间, 得到扩大后候选集, 作为最新的候选集, 并返回上述步骤 909,即按照该查询条件,从扩大后候选集中进行图数据查询。
本步骤中, 扩大候选集包括的分层号区间, 可以每次扩大预设数量的分 层号, 例如, 每次扩大 1个分层号。 当然, 当分层号区间的某一边界值已经是所属分区的分层号边界值, 则 无需再扩大这一边界值, 当分层号区间的两个边界值均无法再扩大时, 可以 将候选集的范围扩大到当前分区的相邻分区, 并从相邻分区的分层号从小到 大的顺序扩大。
实施例 4:
本发明实施例 4中, 对上述方法中按照查询条件, 从候选集中进行图数据 查询进行详细描述, 如图 10所示, 包括:
步骤 1001、 将候选集包括的顶点的图数据加载到内存中。
本步骤中, 可以将候选集包括的顶点的图数据一次性加载到内存中, 以 便节省图数据加载时间, 从而提高图数据查询的效率。
步骤 1002、 按照查询条件, 从内存中緩存的候选集包括的顶点的图数据 中进行图数据查询。
目前, 现有技术中一种基于内存的图数据管理系统称作 Trinity系统, Trinity系统中, 图中的一个顶点或一条边表示为一个单元 cell, 其中 cell可以具 有两种形式, 包括: 运行形式( runtime form )和二进制形式(blob form ) 。 runtime form的 cell表示为内存中的对象, 即已经加载的图数据, 用于计算和查 询, 且占用内存较大; blob form的 cell表示为二进制格式的对象, 占用内存小, 可直接与磁盘交互(如果内存不足或一个 cell长时间不被访问, 则系统可以将 该 cell从内存转移到 (swap )到磁盘, 并且, 一个 cell, 从 runtime form转化为 blob form后才可以转移到磁盘, 相当于进行序列化) 。
现有技术中, 基于 Trinity系统进行图数据查询时, 针对当前顶点, 需要首 选判断当前顶点的图数据是否已加载到内存中, 如果未加载, 则将当前顶点 的图数据加载到内存中, 如果加载, 或者在本次加载后, 判断当前顶点的图 数据的形式是否为 runtime form, 如果不是, 当前顶点的图数据的形式转化为 runtime form , 基于 runtime form形式的图数据进行查询。
当一次查询中, 需要针对多个顶点的图数据进行查询时, 每次确定出一 个当前需要查询的顶点, 均需要执行上述流程, 所以, 一次查询中, 需要多 次执行上述判断的步骤, 且可能需要多次执行上述加载和转化的步骤, 从而 导致查询效率较低。
而釆用本发明实施例提供的方案, 当基于 Trinity系统进行图数据查询时, 由于已经预先确定了候选集, 所以可以通过上述步骤 1001 , 将候选集包括的 顶点的图数据一次性加载到内存中, 并将候选集包括的顶点的图数据的形式 一次性均转化为 runtime form, 即避免了图数据是否已加载以及是否需要转化 的判断, 并且减少了加载次数, 从而节省了图数据加载时间, 进而提高了图 数据查询的效率。
目前, 现有技术中的 GBASE数据库系统是一个可伸缩的通用图数据管理 系统, GBASE数据库系统中, 釆用矩阵来表示图数据的邻接关系, 将图数据 的查询或计算转化为对矩阵的运算,其包括两个阶段,第一个阶段( Index Stage 阶段)和第二个阶段( Query Stage阶段) :
第一个阶段: 首先, 将图数据转化为矩阵表示; 然后, 对图数据进行聚 类、 重排序等; 接着, 进行分块、 压缩; 最后将块存储到文件系统中。
第二个阶段: 首先, 将查询请求转化为查询向量; 然后, 根据查询类型 读取相关分块, 创建候选矩阵; 接着, 用候选矩阵乘于向量得到结果向量; 最后根据结果向量进行相应操作。
有关基于 GBASE数据库系统进行图数据查询的现有技术方案, 可参照现 有技术, 在此不再进行详细描述。
然而, 现有技术中, 基于 GBASE数据库系统进行图数据查询时, 在创建 候选矩阵时, 需要加载查询顶点所在的行或列的所有块, 而有些块是明显不 符合查询条件的, 此时, 由于加载的图数据的数据量较大, 所以导致后续查 询时的效率较低。
而釆用本发明实施例提供的方案, 当基于 GBASE数据库系统进行图数据 查询时, 可以仅加载查询顶点所在的行或列中在候选集中存在的块, 从而减 少了加载的图数据的数据量, 从而减少了数据加载处理的时间, 且减少了后 续查询时所基于的数据量, 进而提高了图数据查询的效率。 实施例 5:
基于同一发明构思, 根据本发明上述实施例提供的图数据查询方法, 相 应地, 本发明实施例 5还提供了一种图数据查询装置, 应用于对图数据全集中 的图数据的查询, 所述图数据全集包括多个顶点, 以及存在连接关系的每两 个顶点之间的边, 预先对图数据全集中的多个顶点进行分区和分层, 将顶点 所在分区的编号作为该顶点的分区号, 将顶点到所在分区的分区边界的最短 距离作为该顶点的分层号, 所述查询装置, 其结构示意图如图 11所示, 具体 包括:
获取单元 1101 , 用于获取查询条件以及所述查询条件表示的查询顶点的 分区号和分层号;
第一确定单元 1102 , 用于基于所述查询顶点的分区号和分层号, 确定所 述查询条件所表示的候选顶点的分区号和分层号, 作为候选分区号和候选分 层号, 其中, 所述候选顶点为按照所述查询条件需要查询的顶点;
第二确定单元 1103 , 用于将分区号和分层号满足候选分区号和候选分层 号的顶点组成候选集;
查询单元 1104 , 用于按照所述查询条件, 从所述候选集中进行图数据查 询。
进一步的, 无法到达所在分区的分区边界的顶点的分层号为默认分层号, 且所述默认分层号与能够到达所在分区的分区边界的顶点的分层号不同; 第一确定单元 1102 , 还用于在确定所述查询条件所表示的候选顶点的分 区号和分层号之前, 确定所述查询顶点的分层号是否是所述默认分层号, 且 当确定结果为不是所述默认分层号时, 触发执行确定所述查询条件所表示的 候选顶点的分区号和分层号这一步骤;
第二确定单元 1103 , 还用于当所述查询顶点的分层号是所述默认分层号 时, 将分区号为所述查询顶点的分区号且分层号为所述默认分层号的顶点组 成候选集。
进一步的, 当存在连接关系的每两个顶点之间的边的权重均相同时, 或 者, 当存在连接关系的每两个顶点之间的边均没有权重时, 顶点到所在分区 的分区边界的最短距离为顶点到达所在分区的分区边界的最少跳数, 两个顶 点之间的距离为两个顶点中一个顶点到达另一个顶点的跳数;
当存在连接关系的每两个顶点之间的边的权重不均相同时, 将顶点到所 在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分区的 分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达另一 个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重和。
进一步的, 第一确定单元 1102, 具体用于基于所述查询顶点的分区号和 分层号, 按照查询条件所表示的候选顶点到所述查询顶点的距离, 确定所述 候选顶点的分区号和分层号。
进一步的, 预先对图数据全集中的多个顶点进行按边分区, 分区边界上 不包括顶点, 且具有跨到其他分区的边的顶点到所在分区的分区边界的最短 距离为零;
第一确定单元 1102 , 具体用于当所述查询条件表示候选顶点到所述查询 顶点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号: 当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号再减去 1的差值与该相邻分 区的最大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
进一步的, 预先对图数据全集中的多个顶点进行按顶点分区, 分区边界 上包括顶点, 且分区边界上的顶点到所在分区的分区边界的最短距离为零; 第一确定单元 1102 , 具体用于当所述查询条件表示候选顶点到所述查询 顶点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号: 当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号的差值与该相邻分区的最 大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为 与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
进一步的, 获取单元 1101 , 具体用于获取查询条件, 且当所述查询条件 表示需要查询第一查询顶点和第二查询顶点之间的最短路径时, 获取所述第 一查询顶点的分区号和分层号, 以及所述第二查询顶点的分区号和分层号; 第一确定单元 1102, 具体用于当所述第一查询顶点和所述第二查询顶点 位于同一个分区时, 确定所述候选顶点的分区号为所述第一查询顶点和所述 第二查询顶点的分区号; 并将所述第一查询顶点的分层号到所述第二查询顶 点的分层号的闭区间内的分层号, 确定为所述候选顶点的分层号; 当所述第一查询顶点和所述第二查询顶点位于不同分区时, 确定所述候 选顶点的分区号为所述第一查询顶点的分区号和所述第二查询顶点的分区 号; 针对所述第一查询顶点所在分区, 将零到所述第一查询顶点的分层号的 闭区间内的分层号, 确定为与所述第一查询顶点的分区号属于同一组的所述 候选顶点的分层号; 针对所述第二查询顶点所在分区, 将零到所述第二查询 顶点的分层号的闭区间内的分层号, 确定为与所述第二查询顶点的分区号属 于同一组的所述候选顶点的分层号。
进一步的, 第二确定单元 1103 , 还用于当所述查询单元按照所述查询条 件, 从所述候选集中未查询到需要的图数据时, 扩大所述候选集包括的分层 号区间, 得到扩大后候选集;
查询单元 1104 , 还用于按照所述查询条件, 从所述扩大后候选集中进行 图数据查询。
进一步的, 当所述图数据全集中的图数据存储在文件系统中时, 所述多 个顶点的分区号和分层号存储在一个文件中, 分区号和分层号相同的顶点的 图数据存储在一个文件中, 不同分区号和分层号的顶点的图数据存储在不同 的文件中。
进一步的, 查询单元 1104 , 具体用于将所述候选集包括的顶点的图数据 加载到内存中; 并按照所述查询条件, 从内存中緩存的所述候选集包括的顶 点的图数据中进行图数据查询。
上述各单元的功能可对应于上述实施例所示流程中的相应处理步骤, 在 此不再赘述。
实施例 6:
基于同一发明构思, 根据本发明上述实施例提供的图数据查询方法, 相 应地, 本发明实施例 6还提供了一种查询服务器, 应用于对图数据全集中的图 数据的查询, 所述图数据全集包括多个顶点, 以及存在连接关系的每两个顶 点之间的边, 预先对图数据全集中的多个顶点进行分区和分层, 将顶点所在 分区的编号作为该顶点的分区号, 将顶点到所在分区的分区边界的最短距离 作为该顶点的分层号, 所述查询服务器, 其结构示意图如图 12所示, 具体包 括:
接口 1201 , 用于接收查询条件;
处理器 1202 , 用于获取所述查询条件以及所述查询条件表示的查询顶点 的分区号和分层号; 并基于所述查询顶点的分区号和分层号, 确定所述查询 条件所表示的候选顶点的分区号和分层号, 作为候选分区号和候选分层号, 其中, 所述候选顶点为按照所述查询条件需要查询的顶点; 并将分区号和分 层号满足候选分区号和候选分层号的顶点组成候选集; 以及按照所述查询条 件, 从所述候选集中进行图数据查询;
存储器 1203 , 用于存储所述图数据全集的图数据, 以及所述图数据全集 的所述多个顶点的分区号和分层号。
进一步的, 无法到达所在分区的分区边界的顶点的分层号为默认分层号, 且所述默认分层号与能够到达所在分区的分区边界的顶点的分层号不同; 所述处理器 1202 , 还用于在确定所述查询条件所表示的候选顶点的分区 号和分层号之前, 确定所述查询顶点的分层号是否是所述默认分层号, 且当 确定结果为不是所述默认分层号时, 触发执行确定所述查询条件所表示的候 选顶点的分区号和分层号这一步骤; 并当所述查询顶点的分层号是所述默认 分层号时, 将分区号为所述查询顶点的分区号且分层号为所述默认分层号的 顶点组成候选集; 以及按照所述查询条件, 从所述候选集中进行图数据查询。
进一步的, 当存在连接关系的每两个顶点之间的边的权重均相同时, 或 者, 当存在连接关系的每两个顶点之间的边均没有权重时, 顶点到所在分区 的分区边界的最短距离为顶点到达所在分区的分区边界的最少跳数, 两个顶 点之间的距离为两个顶点中一个顶点到达另一个顶点的跳数;
当存在连接关系的每两个顶点之间的边的权重不均相同时, 将顶点到所 在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分区的 分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达另一 个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重和。 进一步的, 所述处理器 1202 , 具体用于基于所述查询顶点的分区号和分 层号, 按照查询条件所表示的候选顶点到所述查询顶点的距离, 确定所述候 选顶点的分区号和分层号。
进一步的, 预先对图数据全集中的多个顶点进行按边分区, 分区边界上 不包括顶点, 且具有跨到其他分区的边的顶点到所在分区的分区边界的最短 距离为零;
所述处理器 1202 , 具体用于当所述查询条件表示候选顶点到所述查询顶 点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号:
当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号再减去 1的差值与该相邻分 区的最大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
进一步的, 预先对图数据全集中的多个顶点进行按顶点分区, 分区边界 上包括顶点, 且分区边界上的顶点到所在分区的分区边界的最短距离为零; 所述处理器 1202 , 具体用于当所述查询条件表示候选顶点到所述查询顶 点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号:
当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号的差值与该相邻分区的最 大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为 与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
进一步的, 处理器 1202 , 具体用于获取查询条件, 且当所述查询条件表 示需要查询第一查询顶点和第二查询顶点之间的最短路径时, 获取所述第一 查询顶点的分区号和分层号, 以及所述第二查询顶点的分区号和分层号; 并 当所述第一查询顶点和所述第二查询顶点位于同一个分区时, 确定所述候选 顶点的分区号为所述第一查询顶点和所述第二查询顶点的分区号; 并将所述 第一查询顶点的分层号到所述第二查询顶点的分层号的闭区间内的分层号, 确定为所述候选顶点的分层号; 以及当所述第一查询顶点和所述第二查询顶 点位于不同分区时, 确定所述候选顶点的分区号为所述第一查询顶点的分区 号和所述第二查询顶点的分区号; 针对所述第一查询顶点所在分区, 将零到 所述第一查询顶点的分层号的闭区间内的分层号, 确定为与所述第一查询顶 点的分区号属于同一组的所述候选顶点的分层号; 针对所述第二查询顶点所 在分区, 将零到所述第二查询顶点的分层号的闭区间内的分层号, 确定为与 所述第二查询顶点的分区号属于同一组的所述候选顶点的分层号。
进一步的, 所述处理器 1202 , 还用于当按照所述查询条件, 从所述候选 集中未查询到需要的图数据时, 扩大所述候选集包括的分层号区间, 得到扩 大后候选集; 并按照所述查询条件, 从所述扩大后候选集中进行图数据查询。
进一步的, 存储器 1203 , 具体用于将所述图数据全集中的图数据存储在 文件系统中, 且所述多个顶点的分区号和分层号存储在一个文件中, 分区号 和分层号相同的顶点的图数据存储在一个文件中, 不同分区号和分层号的顶 点的图数据存储在不同的文件中。
进一步的, 处理器 1202, 具体用于将所述候选集包括的顶点的图数据加 载到内存中; 并按照所述查询条件, 从内存中緩存的所述候选集包括的顶点 的图数据中进行图数据查询。
综上所述, 本发明实施例提供的方案, 包括: 获取查询顶点的分区号和 分层号; 并基于查询顶点的分区号和分层号, 确定查询条件所表示的候选顶 点的分区号和分层号, 作为候选分区号和候选分层号; 并将分区号和分层号 满足任一组候选分区号和候选分层号的顶点组成候选集; 以及按照该查询条 件, 从候选集中进行图数据查询。 釆用本发明实施例提供的方案, 提高了图 数据查询效率。
本领域内的技术人员应明白, 本发明的实施例可提供为方法、 系统、 或 计算机程序产品。 因此, 本发明可釆用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的实施例的形式。 而且, 本发明可釆用在一个或多个 其中包含有计算机可用程序代码的计算机可用存储介质 (包括但不限于磁盘 存储器、 CD-ROM、 光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、 设备(系统) 、 和计算机程序 产品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程 图和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中的流 程和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专用计算 机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器, 使 得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现 在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功 能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器 中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个流程或 多个流程和 /或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的 处理, 从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图 一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的步 骤。
尽管已描述了本发明的优选实施例, 但本领域内的技术人员一旦得知了 基本创造性概念, 则可对这些实施例作出另外的变更和修改。 所以, 所附权 利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。 发明的精神和范围。 这样, 倘若本发明的这些修改和变型属于本发明权利要 求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在内。

Claims (20)

  1. 权 利 要 求
    1、 一种图数据查询方法, 应用于对图数据全集中的图数据的查询, 所述 图数据全集包括多个顶点, 以及存在连接关系的每两个顶点之间的边, 其特 征在于, 预先对图数据全集中的多个顶点进行分区和分层, 将顶点所在分区 的编号作为该顶点的分区号, 将顶点到所在分区的分区边界的最短距离作为 该顶点的分层号, 所述方法, 包括:
    获取查询条件以及所述查询条件表示的查询顶点的分区号和分层号; 基于所述查询顶点的分区号和分层号, 确定所述查询条件所表示的候选 顶点的分区号和分层号, 作为候选分区号和候选分层号, 其中, 所述候选顶 点为按照所述查询条件需要查询的顶点;
    将分区号和分层号满足候选分区号和候选分层号的顶点组成候选集; 按照所述查询条件, 从所述候选集中进行图数据查询。
  2. 2、 如权利要求 1所述的方法, 其特征在于, 无法到达所在分区的分区边 界的顶点的分层号为默认分层号, 且所述默认分层号与能够到达所在分区的 分区边界的顶点的分层号不同;
    在确定所述查询条件所表示的候选顶点的分区号和分层号之前, 还包括: 确定所述查询顶点的分层号是否是所述默认分层号, 且当确定结果为不 是所述默认分层号时, 触发执行确定所述查询条件所表示的候选顶点的分区 号和分层号这一步骤;
    所述方法, 还包括:
    当所述查询顶点的分层号是所述默认分层号时, 将分区号为所述查询顶 点的分区号且分层号为所述默认分层号的顶点组成候选集;
    按照所述查询条件, 从所述候选集中进行图数据查询。
  3. 3、 如权利要求 1所述的方法, 其特征在于, 当存在连接关系的每两个顶 点之间的边的权重均相同时, 或者, 当存在连接关系的每两个顶点之间的边 均没有权重时, 顶点到所在分区的分区边界的最短距离为顶点到达所在分区 的分区边界的最少跳数, 两个顶点之间的距离为两个顶点中一个顶点到达另 一个顶点的跳数;
    当存在连接关系的每两个顶点之间的边的权重不均相同时, 将顶点到所 在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分区的 分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达另一 个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重和。
  4. 4、 如权利要求 1所述的方法, 其特征在于, 基于所述查询顶点的分区号 和分层号, 确定所述查询条件所表示的候选顶点的分区号和分层号, 具体包 括:
    基于所述查询顶点的分区号和分层号, 按照查询条件所表示的候选顶点 到所述查询顶点的距离, 确定所述候选顶点的分区号和分层号。
  5. 5、 如权利要求 4所述的方法, 其特征在于, 预先对图数据全集中的多个 顶点进行按边分区, 分区边界上不包括顶点, 且具有跨到其他分区的边的顶 点到所在分区的分区边界的最短距离为零;
    当所述查询条件表示候选顶点到所述查询顶点的最大距离时, 确定所述 候选顶点的分区号和分层号, 具体包括:
    当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
    当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号再减去 1的差值与该相邻分 区的最大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
  6. 6、 如权利要求 4所述的方法, 其特征在于, 预先对图数据全集中的多个 顶点进行按顶点分区, 分区边界上包括顶点, 且分区边界上的顶点到所在分 区的分区边界的最短距离为零;
    当所述查询条件表示候选顶点到所述查询顶点的最大距离时, 确定所述 候选顶点的分区号和分层号, 具体包括:
    当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
    当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号的差值与该相邻分区的最 大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为 与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
  7. 7、 如权利要求 1所述的方法, 其特征在于, 获取查询条件以及所述查询 条件表示的查询顶点的分区号和分层号, 具体包括:
    获取查询条件, 且当所述查询条件表示需要查询第一查询顶点和第二查 询顶点之间的最短路径时, 获取所述第一查询顶点的分区号和分层号, 以及 所述第二查询顶点的分区号和分层号; 基于所述查询顶点的分区号和分层号, 确定所述查询条件所表示的候选 顶点的分区号和分层号, 具体包括:
    当所述第一查询顶点和所述第二查询顶点位于同一个分区时, 确定所述 候选顶点的分区号为所述第一查询顶点和所述第二查询顶点的分区号; 并将 所述第一查询顶点的分层号到所述第二查询顶点的分层号的闭区间内的分层 号, 确定为所述候选顶点的分层号;
    当所述第一查询顶点和所述第二查询顶点位于不同分区时, 确定所述候 选顶点的分区号为所述第一查询顶点的分区号和所述第二查询顶点的分区 号; 针对所述第一查询顶点所在分区, 将零到所述第一查询顶点的分层号的 闭区间内的分层号, 确定为与所述第一查询顶点的分区号属于同一组的所述 候选顶点的分层号; 针对所述第二查询顶点所在分区, 将零到所述第二查询 顶点的分层号的闭区间内的分层号, 确定为与所述第二查询顶点的分区号属 于同一组的所述候选顶点的分层号。
  8. 8、 如权利要求 7所述的方法, 其特征在于, 还包括:
    当按照所述查询条件, 从所述候选集中未查询到需要的图数据时, 扩大 所述候选集包括的分层号区间, 得到扩大后候选集;
    按照所述查询条件, 从所述扩大后候选集中进行图数据查询。
  9. 9、 如权利要求 1所述的方法, 其特征在于, 当所述图数据全集中的图数 据存储在文件系统中时, 所述多个顶点的分区号和分层号存储在一个文件中, 分区号和分层号相同的顶点的图数据存储在一个文件中, 不同分区号和分层 号的顶点的图数据存储在不同的文件中。
  10. 10、 如权利要求 1-9任一所述的方法, 其特征在于, 按照所述查询条件, 从所述候选集中进行图数据查询, 具体包括:
    将所述候选集包括的顶点的图数据加载到内存中;
    按照所述查询条件, 从内存中緩存的所述候选集包括的顶点的图数据中 进行图数据查询。
  11. 11、 一种图数据查询装置, 其特征在于, 应用于对图数据全集中的图数 据的查询, 所述图数据全集包括多个顶点, 以及存在连接关系的每两个顶点 之间的边, 其特征在于, 预先对图数据全集中的多个顶点进行分区和分层, 将顶点所在分区的编号作为该顶点的分区号, 将顶点到所在分区的分区边界 的最短距离作为该顶点的分层号, 所述查询装置, 包括:
    获取单元, 用于获取查询条件以及所述查询条件表示的查询顶点的分区 号和分层号;
    第一确定单元, 用于基于所述查询顶点的分区号和分层号, 确定所述查 询条件所表示的候选顶点的分区号和分层号, 作为候选分区号和候选分层号, 其中, 所述候选顶点为按照所述查询条件需要查询的顶点;
    第二确定单元, 用于将分区号和分层号满足候选分区号和候选分层号的 顶点组成美选集;
    查询单元, 用于按照所述查询条件, 从所述候选集中进行图数据查询。
  12. 12、 如权利要求 11所述的装置, 其特征在于, 无法到达所在分区的分区 边界的顶点的分层号为默认分层号, 且所述默认分层号与能够到达所在分区 的分区边界的顶点的分层号不同;
    所述第一确定单元, 还用于在确定所述查询条件所表示的候选顶点的分 区号和分层号之前, 确定所述查询顶点的分层号是否是所述默认分层号, 且 当确定结果为不是所述默认分层号时, 触发执行确定所述查询条件所表示的 候选顶点的分区号和分层号这一步骤;
    所述第二确定单元, 还用于当所述查询顶点的分层号是所述默认分层号 时, 将分区号为所述查询顶点的分区号且分层号为所述默认分层号的顶点组 成候选集。
  13. 13、 如权利要求 11所述的装置, 其特征在于, 当存在连接关系的每两个 顶点之间的边的权重均相同时, 或者, 当存在连接关系的每两个顶点之间的 边均没有权重时, 顶点到所在分区的分区边界的最短距离为顶点到达所在分 区的分区边界的最少跳数, 两个顶点之间的距离为两个顶点中一个顶点到达 另一个顶点的跳数; 当存在连接关系的每两个顶点之间的边的权重不均相同时, 将顶点到所 在分区的分区边界的各条路径长度中的最小长度, 作为该顶点到所在分区的 分区边界的最短距离, 两个顶点之间的距离为两个顶点中一个顶点到达另一 个顶点的路径的长度, 其中, 一条路径的长度为该路径包括的边的权重和。
  14. 14、 如权利要求 11所述的装置, 其特征在于, 所述第一确定单元, 具体 用于基于所述查询顶点的分区号和分层号, 按照查询条件所表示的候选顶点 到所述查询顶点的距离, 确定所述候选顶点的分区号和分层号。
  15. 15、 如权利要求 14所述的装置, 其特征在于, 预先对图数据全集中的多 个顶点进行按边分区, 分区边界上不包括顶点, 且具有跨到其他分区的边的 顶点到所在分区的分区边界的最短距离为零;
    所述第一确定单元, 具体用于当所述查询条件表示候选顶点到所述查询 顶点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号: 当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
    当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号再减去 1的差值与该相邻分 区的最大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
  16. 16、 如权利要求 14所述的装置, 其特征在于, 预先对图数据全集中的多 个顶点进行按顶点分区, 分区边界上包括顶点, 且分区边界上的顶点到所在 分区的分区边界的最短距离为零;
    所述第一确定单元, 具体用于当所述查询条件表示候选顶点到所述查询 顶点的最大距离时, 釆用如下方式确定所述候选顶点的分区号和分层号: 当所述最大距离不大于所述查询顶点的分层号时, 确定所述候选顶点的 分区号为所述查询顶点的分区号; 并确定所述查询顶点的分层号加上所述最 大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值; 以及将 所述查询顶点的分层号减去所述最大距离的差值到所述最小值的闭区间内的 分层号, 确定为所述候选顶点的分层号;
    当所述最大距离大于所述查询顶点的分层号时, 确定所述候选顶点的分 区号为所述查询顶点的分区号, 以及与所述查询顶点所在分区的相邻分区的 分区号; 针对所述查询顶点所在分区, 确定所述查询顶点的分层号加上所述 最大距离的和值与所述查询顶点所在分区的最大分层号之间的最小值, 以及 将零到该最小值的闭区间内的分层号, 确定为与所述查询顶点的分区号属于 同一组的所述候选顶点的分层号; 针对所述查询顶点所在分区的每个相邻分 区, 确定所述最大距离减去所述查询顶点的分层号的差值与该相邻分区的最 大分层号之间的最小值, 以及将零到该最小值的闭区间内的分层号, 确定为 与该相邻分区的分区号属于同一组的所述候选顶点的分层号。
  17. 17、 如权利要求 11所述的装置, 其特征在于, 所述获取单元, 具体用于 获取查询条件, 且当所述查询条件表示需要查询第一查询顶点和第二查询顶 点之间的最短路径时, 获取所述第一查询顶点的分区号和分层号, 以及所述 第二查询顶点的分区号和分层号;
    所述第一确定单元, 具体用于当所述第一查询顶点和所述第二查询顶点 位于同一个分区时, 确定所述候选顶点的分区号为所述第一查询顶点和所述 第二查询顶点的分区号; 并将所述第一查询顶点的分层号到所述第二查询顶 点的分层号的闭区间内的分层号, 确定为所述候选顶点的分层号;
    当所述第一查询顶点和所述第二查询顶点位于不同分区时, 确定所述候 选顶点的分区号为所述第一查询顶点的分区号和所述第二查询顶点的分区 号; 针对所述第一查询顶点所在分区, 将零到所述第一查询顶点的分层号的 闭区间内的分层号, 确定为与所述第一查询顶点的分区号属于同一组的所述 候选顶点的分层号; 针对所述第二查询顶点所在分区, 将零到所述第二查询 顶点的分层号的闭区间内的分层号, 确定为与所述第二查询顶点的分区号属 于同一组的所述候选顶点的分层号。
  18. 18、 如权利要求 17所述的装置, 其特征在于, 所述第二确定单元, 还用 于当所述查询单元按照所述查询条件, 从所述候选集中未查询到需要的图数 据时, 扩大所述候选集包括的分层号区间, 得到扩大后候选集;
    所述查询单元, 还用于按照所述查询条件, 从所述扩大后候选集中进行 图数据查询。
  19. 19、 如权利要求 11所述的装置, 其特征在于, 当所述图数据全集中的图 数据存储在文件系统中时, 所述多个顶点的分区号和分层号存储在一个文件 中, 分区号和分层号相同的顶点的图数据存储在一个文件中, 不同分区号和 分层号的顶点的图数据存储在不同的文件中。
  20. 20、 如权利要求 11-19任一所述的装置, 其特征在于, 所述查询单元, 具 体用于将所述候选集包括的顶点的图数据加载到内存中; 并按照所述查询条 件, 从内存中緩存的所述候选集包括的顶点的图数据中进行图数据查询。
CN201380003421.3A 2013-12-30 2013-12-30 一种图数据查询方法及装置 Active CN105051725B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/090926 WO2015100549A1 (zh) 2013-12-30 2013-12-30 一种图数据查询方法及装置

Publications (2)

Publication Number Publication Date
CN105051725A true CN105051725A (zh) 2015-11-11
CN105051725B CN105051725B (zh) 2018-11-20

Family

ID=53492908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380003421.3A Active CN105051725B (zh) 2013-12-30 2013-12-30 一种图数据查询方法及装置

Country Status (5)

Country Link
US (1) US10068033B2 (zh)
EP (1) EP3079077A4 (zh)
JP (1) JP6243045B2 (zh)
CN (1) CN105051725B (zh)
WO (1) WO2015100549A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115795111A (zh) * 2023-01-20 2023-03-14 阿里健康科技(中国)有限公司 图数据的查询方法、装置、设备和存储介质
CN117171401A (zh) * 2023-11-03 2023-12-05 之江实验室 基于分层预计算的图数据中最短路径的查询方法和装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635645B1 (en) * 2014-05-04 2020-04-28 Veritas Technologies Llc Systems and methods for maintaining aggregate tables in databases
US10078668B1 (en) 2014-05-04 2018-09-18 Veritas Technologies Llc Systems and methods for utilizing information-asset metadata aggregated from multiple disparate data-management systems
US11036797B2 (en) * 2017-10-12 2021-06-15 Adtran, Inc. Efficient storage and utilization of a hierarchical data set
CN108052577B (zh) * 2017-12-08 2022-06-14 北京百度网讯科技有限公司 一种通用文本内容挖掘方法、装置、服务器及存储介质
US10621235B1 (en) * 2019-05-13 2020-04-14 Redis Labs Ltd. Methods, systems, and media for resolving database queries using algebraic expressions using matrix-matrix multiplication
KR102325047B1 (ko) 2019-06-10 2021-11-11 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치
US11048696B2 (en) * 2019-06-24 2021-06-29 Workiva Inc. Method and computing device for generating a search query for a graph database
CN111241350B (zh) * 2020-01-07 2024-02-02 平安科技(深圳)有限公司 图数据查询方法、装置、计算机设备和存储介质
US11989188B2 (en) 2021-08-25 2024-05-21 Bank Of America Corporation Aggregating access to third party data sources and intelligently managing access through request quotas

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620606A (zh) * 2008-06-30 2010-01-06 国际商业机器公司 自动生成数据库查询的方法和系统
CN102662974A (zh) * 2012-03-12 2012-09-12 浙江大学 一种基于邻接节点树的网络图索引方法
US20120310916A1 (en) * 2010-06-04 2012-12-06 Yale University Query Execution Systems and Methods
CN102999542A (zh) * 2012-06-21 2013-03-27 杜小勇 多媒体数据高维索引及kNN检索方法
US20130239100A1 (en) * 2009-06-23 2013-09-12 International Business Machines Corporation Partitioning Operator Flow Graphs
CN103399902A (zh) * 2013-07-23 2013-11-20 东北大学 一种并行环境下的有向图可达性链表生成及查询方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5407169B2 (ja) * 2008-04-11 2014-02-05 富士通株式会社 クラスタリングプログラム、検索プログラム、クラスタリング方法、検索方法、クラスタリング装置および検索装置
CN102693246B (zh) * 2011-03-22 2015-03-11 日电(中国)有限公司 一种用于从数据集获取信息的方法和系统
CN102163218B (zh) 2011-03-28 2012-10-10 武汉大学 基于图索引的图数据库关键词邻近搜索方法
US8645339B2 (en) 2011-11-11 2014-02-04 International Business Machines Corporation Method and system for managing and querying large graphs

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620606A (zh) * 2008-06-30 2010-01-06 国际商业机器公司 自动生成数据库查询的方法和系统
US20130239100A1 (en) * 2009-06-23 2013-09-12 International Business Machines Corporation Partitioning Operator Flow Graphs
US20120310916A1 (en) * 2010-06-04 2012-12-06 Yale University Query Execution Systems and Methods
CN102662974A (zh) * 2012-03-12 2012-09-12 浙江大学 一种基于邻接节点树的网络图索引方法
CN102999542A (zh) * 2012-06-21 2013-03-27 杜小勇 多媒体数据高维索引及kNN检索方法
CN103399902A (zh) * 2013-07-23 2013-11-20 东北大学 一种并行环境下的有向图可达性链表生成及查询方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115795111A (zh) * 2023-01-20 2023-03-14 阿里健康科技(中国)有限公司 图数据的查询方法、装置、设备和存储介质
CN117171401A (zh) * 2023-11-03 2023-12-05 之江实验室 基于分层预计算的图数据中最短路径的查询方法和装置
CN117171401B (zh) * 2023-11-03 2024-01-26 之江实验室 基于分层预计算的图数据中最短路径的查询方法和装置

Also Published As

Publication number Publication date
JP2017509043A (ja) 2017-03-30
US20160306897A1 (en) 2016-10-20
EP3079077A1 (en) 2016-10-12
EP3079077A4 (en) 2016-12-28
JP6243045B2 (ja) 2017-12-06
CN105051725B (zh) 2018-11-20
WO2015100549A1 (zh) 2015-07-09
US10068033B2 (en) 2018-09-04

Similar Documents

Publication Publication Date Title
CN105051725A (zh) 一种图数据查询方法及装置
CN110704453B (zh) 一种数据查询方法、装置、存储介质及电子设备
CN102521334B (zh) 一种基于分类特性和平衡二叉树的数据存储、查询方法
CN103559093B (zh) 一种服务器资源的配置方法及装置
CN110471923B (zh) 一种区块链交易记录的处理方法及装置
CN104794249A (zh) 一种数据库的实现方法和设备
CN108920105B (zh) 基于社区结构的图数据分布式存储方法及装置
CN107783980A (zh) 索引数据生成及数据查询方法及装置、存储和查询系统
CN106445677A (zh) 负载均衡方法及设备
CN108279943A (zh) 索引加载方法和装置
CN114077680A (zh) 一种图数据的存储方法、系统及装置
CN103236989A (zh) 一种内容分发网络中的缓存控制方法、设备及系统
CN107330094A (zh) 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN107391508B (zh) 数据加载方法和系统
CN113010570B (zh) 电网设备矢量数据查询方法、装置、计算机设备和介质
CN109542612A (zh) 一种热点关键字获取方法、装置及服务器
RU2760243C2 (ru) Система и способ улучшения запроса для создания распределяемой группы ресурсов на основании временной задержки
CN107273443A (zh) 一种基于大数据模型元数据的混合索引方法
CN116737370A (zh) 一种多资源调度方法、系统、存储介质及终端
CN110765073A (zh) 分布式存储系统的文件管理方法、介质、设备及装置
US20210149960A1 (en) Graph Data Storage Method, System and Electronic Device
CN112068948A (zh) 数据散列方法、可读存储介质和电子设备
CN107368512B (zh) 信息对象的查询和序列确定方法、装置及设备、可读介质
CN108052536A (zh) 一种IoT设备的文件系统
CN117149778B (zh) 稀疏张量运算加速方法、系统、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant