CN112925952A - 数据查询方法、装置、计算设备及存储介质 - Google Patents
数据查询方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN112925952A CN112925952A CN202110244425.7A CN202110244425A CN112925952A CN 112925952 A CN112925952 A CN 112925952A CN 202110244425 A CN202110244425 A CN 202110244425A CN 112925952 A CN112925952 A CN 112925952A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- partition
- partitions
- database
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (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)
Abstract
提供了一种数据查询方法、装置、计算设备及存储介质。方法可以包括:将包括多个数据的数据集加载到分布式计算引擎的内存中;对多个数据进行分区,使得多个数据被分布到分布式计算引擎的内存的多个分区中;为每一个分区建立到图数据库的连接;通过多个分区中的每一个分区到图数据库的连接,针对多个分区中的多个数据,在图数据库中执行查询;以及将查询结果存储到目标数据库中。
Description
技术领域
本公开涉及数据处理技术领域,特别是涉及一种数据查询方法、装置、计算设备及存储介质。
背景技术
图数据库(Graph Database,GDB)是一种以图结构进行语义查询,并使用顶点、边与属性来表示和存储数据的数据库。图数据库可以存储知识图谱,并且可以从图数据库中查询所需的知识。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
在针对图数据库的数据查询时,尤其是在存在大量数据的应用场景下,会导致处理效率低下,难以满足业务需求。提供一种缓解、减轻或甚至消除上述问题中的一个或多个的机制将是有利的。
根据本公开的一方面,提供了一种数据查询方法,包括:将包括多个数据的数据集加载到分布式计算引擎的内存中;对多个数据进行分区,使得多个数据被分布到分布式计算引擎的内存的多个分区中;为每一个分区建立到图数据库的连接;通过多个分区中的每一个分区到图数据库的连接,针对多个分区中的多个数据,在图数据库中执行查询;以及将查询结果存储到目标数据库中。
根据本公开的另一方面,提供了一种数据查询装置,包括:数据加载单元,被配置成将包括多个数据的数据集加载到分布式计算引擎的内存中;数据分区单元,被配置成对多个数据进行分区,使得多个数据被分布到分布式计算引擎的内存的多个分区中;连接建立单元,被配置成为每一个分区建立到图数据库的连接;数据查询单元,被配置成通过多个分区中的每一个分区到图数据库的连接,针对多个分区中的多个数据,在图数据库中执行查询;以及结果存储单元,被配置成将查询结果存储到目标数据库中。
根据本公开的又另一方面,提供了一种计算设备,包括:存储器、处理器以及存储在存储器上的计算机程序,处理器被配置为执行计算机程序以实现根据本公开的实施例的数据查询方法的步骤
根据本公开的又另一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现根据本公开的实施例的数据查询方法的步骤
根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现根据本公开的实施例的数据查询方法的步骤。
根据在下文中所描述的实施例,本公开的这些和其它方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的更多细节、特征和优点被公开,在附图中:
图1是图示出根据示例性实施例的可以在其中实施本文描述的各种方法的示例系统的示意图;
图2是图示出根据示例性实施例的数据查询方法的流程图;
图3是根据本公开的示例性实施例的数据查询方法的数据流示意图;
图4是根据本公开的另一示例性实施例的数据查询方法的流程图;
图5是根据本公开的示例性实施例的数据查询方法的配置方法的流程图;
图6是图示出根据示例性实施例的数据查询装置的示意性框图;
图7是图示出能够应用于示例性实施例的示例性计算机设备的框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
下面结合附图详细描述本公开的示例性实施例。
图1是图示出根据示例性实施例的可以在其中实施本文描述的各种方法的示例系统100的示意图。
参考图1,该系统100包括客户端设备110、服务器120、以及将客户端设备110与服务器120通信地耦合的网络130。
客户端设备110包括显示器114和可经由显示器114显示的客户端应用(APP)112。客户端应用112可以为运行前需要下载和安装的应用程序或者作为轻量化应用程序的小程序(liteapp)。在客户端应用112为运行前需要下载和安装的应用程序的情况下,客户端应用112可以被预先安装在客户端设备110上并被激活。在客户端应用112为小程序的情况下,用户102可以通过在宿主应用中搜索客户端应用112(例如,通过客户端应用112的名称等)或扫描客户端应用112的图形码(例如,条形码、二维码等)等方式,在客户端设备110上直接运行客户端应用112,而无需安装客户端应用112。在一些实施例中,客户端设备110可以是任何类型的移动计算机设备,包括移动计算机、移动电话、可穿戴式计算机设备(例如智能手表、头戴式设备,包括智能眼镜,等)或其他类型的移动设备。在一些实施例中,客户端设备110可以替换地是固定式计算机设备,例如台式机、服务器计算机或其他类型的固定式计算机设备。
服务器120典型地为由互联网服务提供商(ISP)或互联网内容提供商(ICP)部署的服务器。服务器120可以代表单台服务器、多台服务器的集群、分布式系统、或者提供基础云服务(诸如云数据库、云计算、云存储、云通信)的云服务器。将理解的是,虽然图1中示出服务器120与仅一个客户端设备110通信,但是服务器120可以同时为多个客户端设备提供后台服务。
网络130的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)、和/或诸如互联网之类的通信网络的组合。网络130可以是有线或无线网络。在一些实施例中,使用包括超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来处理通过网络130交换的数据。此外,还可以使用诸如安全套接字层(SSL)、传输层安全(TLS)、虚拟专用网络(VPN)、网际协议安全(IPsec)等加密技术来加密所有或者一些链路。在一些实施例中,还可以使用定制和/或专用数据通信技术来取代或者补充上述数据通信技术。
为了本公开实施例的目的,在图1的示例中,客户端应用112可以为数据处理应用程序,包括数据查询应用程序或数据库管理应用程序,该数据处理应用程序可以提供用于数据处理的各种功能,例如,数据选取、数据查询、命令配置、运行环境配置、查询结果的显示等等。尤其是,客户端应用112可以是如下文所述的任务管理平台或者运行平台等。与此相应,服务器120可以是与数据处理应用程序或数据查询应用程序一起使用的服务器。该服务器120可以从客户端设备110中运行的客户端应用112接收用户指令,并且向客户端设备110中运行的客户端应用112提供各种数据处理服务,例如数据读取、数据写入、数据查询、数据分析、模型建立、子图生成、知识图谱展示等。替换地,服务器120也可以将数据提供给客户端设备110,由客户端设备110中运行的客户端应用112根据数据提供处理服务例如数据处理任务的管理或执行结果的展示等。
图2是图示出根据示例性实施例的数据查询方法200的流程图。方法200可以在客户端设备(例如,图1中所示的客户端设备110)处执行。在一些实施例中,方法200可以在服务器(例如,图1中所示的服务器120)处执行。在一些实施例中,方法200可以由客户端设备(例如,客户端设备110)和服务器(例如,服务器120)相组合地执行。在下文中,以执行主体为服务器120为例,详细描述数据处理方法200的各个步骤。
参考图2,在步骤S201处,将包括多个数据的数据集加载到分布式计算引擎的内存中。这里的数据集也可以被称为数据源名单,接下来的数据查询将针对该数据集数据源名单来执行。
在步骤S202处,对多个数据进行分区,使得多个数据被分布到分布式计算引擎的内存的多个分区中。
在步骤S203处,为每一个分区建立到图数据库的连接。
在步骤S204处,通过多个分区中的每一个分区到图数据库的连接,针对多个分区中的多个数据,在图数据库中执行查询。
在步骤S205处,将查询结果存储到目标数据库中。
根据上述方法200,通过将数据分区到分布式计算引擎的内存中,每个分区单独建立连接来对图数据库进行查询,从而能够实现针对多个数据(也即查询目标)对图数据库的分布式查询,提高数据处理尤其是数据查询的效率。可以理解的是,数据查询方法200也可以被称作图数据库查询方法、子图生成方法、知识图谱分析方法或者知识图谱建模方法等,并且本公开不限于此。
方法200可以应用于在已经有构建好的知识图谱、尤其是蕴含海量数据的知识图谱之后,从中建立模型的场景,例如针对需要分析的数据生成子图。
图数据库适于存储以边与顶点的形式维护的知识图谱。知识图谱是知识工程中以图的形式组织的知识集群,其由不同类型的实体作为节点,关系作为连接节点的边所构成的。为了解决通过知识图谱对海量数据进行业务分析,需要对相关的业务场景进行图谱建模,并且分析出相关业务场景中的实体之间的关系,有助于监管人员更好的监管和风控。由于通过单机模式运行知识图谱的业务模型,效率往往不能达到想要的预期,为了能够在较短的时间内分析出监管人员想要的图谱模型,对现有的模型进行快速分析。例如,在使用现有的知识图谱分析模型微服务,在数据量过大的情况下,效率往往不能达到想要的预期,为了能够在较短的时间内分析出监管人员想要的图谱模型,对现有的模型进行快速分析,期望采用分布式多进程的方式提高图谱模型大批量分析的效率。
下面描述根据本公开的一些其他实施例的数据处理方法的变型示例。
根据一些实施例,针对多个分区中的多个数据,在图数据库中执行的查询可以是并行查询。由此,能够利用分布式计算引擎的优点,实现不同内存分区中对图数据库的并行查询,增加数据处理的效率。可以采用各种形式的图数据库来实现这里的方法,并且一种示例可以是HBase。HBase是一种分布式的、面向列的开源数据库,并且支持高并发特性,因而有利于本公开的实施例的方法的分布式查询尤其是并行查询。
根据一些实施例,为每一个分区建立到图数据库的连接可以包括:在每一个分区中建立到图数据库的连接实例,其中,每个连接实例能够调用图数据库的查询接口;并且其中,针对多个分区中的多个数据,在图数据库中执行查询可以包括:通过在每一个分区中建立的连接实例调用图数据库的查询接口,以从图数据库中查询与分区中的数据相关联的信息作为针对分区的查询结果。通过每一个图数据库连接分别调用图数据库的计算引擎进行查询,能够实现对图数据库的并行查询。图数据库例如可以支持TinkerPop Gremlin查询语言,可以帮助用户快速构建基于高度连接的数据集的应用程序。例如,查询接口可以是使用Gremlin查询语言来编写的查询接口。
根据一些实施例,方法200还可以包括在每一个分区中建立到目标数据库的连接。在这样的实施例中,将查询结果存储到目标数据库中可以包括:将与每一个分区中的数据相关联的信息作为针对分区的查询结果保存到分区中;以及通过分区到目标数据库的连接,将针对分区的查询结果存储到目标数据库中。由此,能够通过每一个分区单独建立目标数据库的连接和写入目标数据库,实现数据的分布式查询和分布式写入。可以理解的是,将将针对分区的查询结果存储到目标数据库中也可以是并行完成的,或者取决于分区数量和并行度等设置,可以是先并行再串行等。
根据一些实施例,在每一个分区中建立到目标数据库的连接可以发生在针对多个分区中的多个数据在图数据库中执行查询之前。通过先确定建立到目标数据库的连接再执行查询,可以确保连接可靠性,避免无效计算。例如,可以在确定到目标数据库的连接建立成功后才执行查询。如果到目标数据库的连接不成功,可以在等待一定时间后再次重复建立连接,或者在一定次数的失败后报错或者结束任务,并且本公开不限于此。
根据一些实施例,在将与每一个分区中的数据相关联的信息作为针对分区的查询结果保存到分区中之后,方法200还可以包括:在分布式计算引擎的主节点中,对针对多个分区的多个查询结果进行汇总计算;在主节点中建立到目标数据库的连接;以及通过主节点到目标数据库的连接,将汇总计算的结果存储到目标数据库中。由此,可以在生成简单的子图快照之外,还可以对各个分区的结果进行汇总计算。例如,在分布式计算引擎是ApacheSpark计算引擎的情况下,主节点可以是Spark中的Driver端(main函数)。
根据一些实施例,对针对多个分区的多个查询结果进行汇总计算可以包括:对多个查询结果进行统计分析。统计分析可以包括计算子图数量、实体数量、关系数量等。例如,统计计算的结果可以是本次任务共计查询到多少满足要求的子图、满足要求的实体、满足要求的关系等。
根据一些实施例,对针对多个分区的多个查询结果进行汇总计算可以包括:对多个查询结果进行业务指标分析。业务指标分析可以包括是否满足业务人员预先设定的业务要求,例如,是否查询到符合特定要求的一定数量的公司实体等,或者一千个人组成的名单里有多少人满足具有3个朋友的要求,等等。
根据一些实施例,对多个数据进行分区使得多个数据被分布到分布式计算引擎的内存的多个分区中可以包括:基于多个数据中的每个数据的原始存储地址,将每个数据哈希映射到分布式计算引擎的内存的相应分区中。基于数据原始存储地址的哈希分区,相当于利用数据原始存储地址对映射进行监督,有利于哈希分区的均匀性。例如,在采用基于内存的分布式计算引擎Spark作为分布式计算引擎的情况下,对多个数据进行分区可以例如使用Spark内部的hash分区算法。
根据一些实施例,多个数据可以是从分布式存储数据库加载的,并且每个数据的原始存储地址可以包括每个数据在分布式存储数据库中的原始分区地址。具体地,基于数据原始存储分片地址,在分布式计算引擎中进行哈希分区,这样分区使得数据分布更均匀,分布式性能更优。例如,当从中加载数据的源数据库是分布式存储数据库(例如,Hive)的情况下,可以根据数据之前所在数据块地址(即,在Hive里的分片)进行分区。例如,在分布式计算引擎的内存被分割为50个分区的情况下,可以将数据之前所在数据块地址对50进行取模,并且由此被划分到内存的不同分区。Hive是基于Hadoop构建的数据仓库分析系统,其能够提供丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据,能够为数据操作提供良好的伸缩性和可扩展性。可以理解的是,源数据库可以采用其他的形式,只要能够实现数据从源数据库的加载即可。甚至,可以不需要这样的源数据库,而通过用户手动输入多个数据或者上传数据文件的形式,来载入需要进行查询分析的多个数据的数据集。
根据一些实施例,分布式计算引擎的内存的多个分区的数量可以是根据数据集的数据量和分布式计算引擎的集群运算能力而确定的。可以基于数据量和运算能力来调整分区数,以达到最优的效果。
根据一些实施例,多个分区的数量可以被设定为等于分布式计算引擎的并行度。分区数量与并行度相同,使得最大化并行计算能力。下面给出一个分区数量的示例。在加载的数据集或者称为源数据量为500条、集群机器数量为25台、每个机器有两个核(也即,并行数50)并且集群内存为50T的示例场景下,可以选取典型的分区数量50个。
在其他示例中,例如在分区数大于并行度的数量下,可以先并行再串行运行分区的计算,并且本公开不限于此。例如,在集群内只有较少例如10台机器的情况下,也可以选用较大的分区数量。分区数量可以是10个、100个等。在这种情况下增加分区的目的是让每个分区单次计算的数据量少,减少计算错误,使得性能更稳定。
根据一些实施例,多个数据可以是结构化存储的数据。由此,可以实现利用结构化存储的数据利用简单的表单来调用对图数据库中的非结构化存储的信息进行分析。例如,业务人员可以简单地输入一些要分析的数据(或者指定这些数据的读取位置),并且由此能够生成与这些源数据相关联的子图数据。
根据一些实施例,多个数据中的每个数据可以对应于知识图谱中的实体。数据列表是实体(顶点)的列表,由此能够获取与知识图谱中的一系列实体相关联的信息。知识图谱是知识工程中以图的形式组织的知识集群,其由不同类型的实体作为节点,关系作为连接节点的边所构成的,为了解决通过知识图谱对海量数据进行业务分析,需要对相关的业务场景进行图谱建模,并且分析出相关业务场景中的实体之间的关系,有助于监管人员更好的监管和风控。
根据一些实施例,查询结果可以包括与多个数据相关联的实体的信息和关系的信息。查询结果可以包括与数据列表中的数据相关联的实体的明细数据和关系的明细数据。例如,数据集中的多个数据的示例可以是张三、李四、王五等,并且获取的查询结果可以包括这些数据张三、李四、王五的相关联的人名(作为实体的示例)以及与这些实体之间的关系(例如,朋友关系、亲戚关系、借贷关系等,作为关系的示例),或其他能够从知识图谱中获取的知识等,并且本公开不限于此。
虽然各个操作在附图中被描绘为按照特定的顺序,但是这不应理解为要求这些操作必须以所示的特定顺序或者按顺行次序执行,也不应理解为要求必须执行所有示出的操作以获得期望的结果。例如,上述的实施例的步骤可以采取不同的顺序执行或者并行执行,或者其中的一个或多个步骤可以被省略。
下面结合图3描述根据本公开的实施例的数据处理方法(例如,方法200或其变体)中的数据流。例如,系统可以包括数据库(其可以被称为源数据库)310、分布式计算引擎320和图数据库(或者称为目标数据库)330。
数据流S3-1指示分布式计算引擎320从源数据库310读取包括多个数据的数据集或称为源数据(例如,对应于步骤S201)。如上所述,这里加载的数据集可以是需要分析的业务模型数据源,例如可以是由多个人名、企业名称或银行卡账户构成的名单等。例如,分布式计算引擎320可以是Spark计算引擎,并且源数据库310可以是Hive或者MySQL等。
随后,数据流S3-2指示分布式计算引擎320例如使用哈希算法或其他的数据分区方法,将数据划分成多个部分并且分别存储到多个内存分区321-325(例如,对应于步骤S202)。可以理解的是,虽然这里示出了5个内存分区,但这仅仅是示例,并且本公开不限于此,分布式内存可以被设定为具有更少或者更多的分区数量。
在每个分区321-325中,在分区中获得相关的图连接。例如,可以每个分区分配一个执行器,并且分别建立到图数据库的连接。该步骤可以例如通过读取目标图数据库的配置文件,例如已经存储在HDFS上的配置文件来完成。数据流S3-3-1至S3-3-5指示各个分区基于连接实例向图数据库330的查询。例如,可以将查询分析语句提交到图数据库(例如,HBase存储集群)。在图数据库是分布式存储数据库的情况下,不同的内存对应的图连接可以对图数据库的不同存储区域(例如,331-333)中存储的数据进行查询和读取。在图数据库支持并发操作的实施例中,这些查询操作(例如,数据流S3-3-1至S3-3-5)可以是并发进行的。可以理解的是,虽然图3中作为示例示出了分布式计算引擎的5个内存与图数据库的3个存储区域之间的查询关系,但这并不是限制性的。例如,图数据库可以具有更多或更少的存储区域,或者不具有分开的存储区域而是进行汇总存储。不同的分区可以对图数据库的相同存储区域进行查询,或者同一个分区中的查询可能涉及图数据库中的两个或更多个存储区域。此外,即使在图数据库是分布式存储的情况下,对不同存储区域的查询可能对外部是不透明的。例如,分布式计算引擎侧不需要知道这样的内部区域分割和对应方式,并且S3-3-1至S3-3-5等可以调用图数据库的相同的接口,而图数据库可以通过查询条件定位到需要分析的数据被存储在其存储集群的位置(例如,在图数据库是HBase的情况下,可以使用HBase的自动分区查询机制等将查询语句映射到对应的Region)。
随后,如数据流S3-4-1至S3-4-5所指示的,在图数据库中的分析挖掘处理完成后,HBase会把分析得到的结果数据集返回到对应的分区。在某些情况下,例如在将来要被生成为可视化子图的情况下,结果数据可以被称为子图数据或子图快照数据,其可以采用json的数据结构等,并且里面可以包含顶点明细数据和关系明细数据。
数据流S3-5-1至S3-5-5指示针对每个分区(例如,由为每个分区分配的执行器),将获取的子图数据写入到目标数据库340中。获取的数据可以是结构化(例如,以链表的形式)存储的数据。目标数据库可以是MySQL或TiDB等。例如,TiDB是一种云原生的分布式关系型数据库,适合高可用、强一致要求较高、数据规模较大等各种应用场景。在目标数据库340支持并发的情况下,数据流S3-5-1至S3-5-5可以是并行进行写入的。
如前文在方法200的一些变型例中所叙述地,可选地还可以包括数据流S3-6和S3-7。数据流S3-6指示分布式计算引擎的不同内存分区中的子图数据进行汇总,例如汇总到计算引擎的主节点进行统一计算。在分布式计算引擎是Spark的情况下,汇总节点可以是Driver端。在主节点中可以对来自不同内存分区的子图数据进行聚合统计分析,例如计算一共有多少个子图、多少个实体关系等。最后,如数据流S3-7所指示的,汇总后的结果被写入到目标数据库340’中。在某些情况下,汇总结果可以被称为明细数据。目标数据库340’也可以是MySQL或TiDB等数据库,并且对目标数据库340’的写入也可以是并发的。可以理解的是,虽然图3将子图数据的目标数据库340和汇总结果的目标数据库340’绘制为不同的数据库,但其可以是同一个数据库,例如同一数据库的相同存储区域或不同存储区域等。
下面结合图4来描述根据本公开的另一实施例的数据查询方法400。可以将数据处理方法400视为大致由四个阶段组成,分别是数据源的分区、图连接的建立、各个分区中的查询以及存储过程。下面进行更加详细的说明。
参考图4,在步骤401处,将包括多个数据的数据集加载到分布式计算引擎的内存中。由分布式计算引擎将需要分析的数据集(例如,表单数据)加载进分布式计算引擎的内存中。例如,可以基于建模请求或者数据分析请求等,在分布式计算引擎中加载用于建模或数据分析的数据列表。分布式计算引擎可以是Spark计算框架。
在步骤402处,对多个数据进行分区,使得多个数据被分布到分布式计算引擎的内存的多个分区中。由此,能够对需要分析的数据列表进行分区,例如在分布式计算引擎中对需要分析的名单数据源数据进行分区。例如,可以采用Spark的哈希算法进行分区。例如,可以根据数据之前所在数据块地址(在Hive里的分片等)进行分区。典型分区数的一个示例可以是50,并且并行度可以是50。相对于可能只是毫秒级别的操作例如单纯写入操作等,此处的查询可能涉及复杂计算,单次运行时间长(例如,单次运行可能需要10s的数量级),因而更高的分区可以是有利的。在50个分区的示例情形中,可以将地址对50进行取模,以将数据映射到对应的内存分区。
在步骤403处,为每一个分区建立到图数据库的连接。例如,可以每个分区同时开启到需要分析的图库数据源连接实例。
在步骤404处,为每一个分区建立到目标数据库的连接。例如,可以在每个不同的分区中同时开启需要输出的MySQL和TiDB库的连接。
在步骤405处,通过多个分区中的每一个分区到图数据库的连接,针对多个分区中的多个数据,在图数据库中执行查询。也即,能够通过当前图库的实例连接去该分析模型的建模分析语句并进行查询分析。针对每个分区中的数据:开启一个到图数据库的连接,并且调用图数据库的查询API。例如,可以在每个分区中拿到该任务模型的建模分析语句Gremlin,并通过Gremlin从图数据库(例如,底层为HBase)中分析挖掘出用户想要的数据。查询分析操作可以基于janusgraph的查询语句。根据一些示例,可以仅在步骤404中成功正常获取到连接时候才执行查询,以避免无效查询,提高计算效率。
在步骤406处,将与每一个分区中的数据相关联的信息作为针对分区的查询结果保存到分区中。例如,返回结果可以是链表形式的单条数据(例如边和点组成)或其路径。
在步骤S407处,通过分区到目标数据库的连接,将针对分区的查询结果存储到目标数据库中。例如,可以将每个分区得到的子图快照数据解析成MySQL/TiDB适合的格式,例如json格式,并且存储进目标数据库例如MySQL或者TiDB。例如,在50个分区的情况下,就可以获取50个子图。子图在这里不是可视化形式的。直接存储适用于例如业务人员不关心明细而只想看一些子图数据快照的情况。子图的可视化形式可以以后调用并且利用关系图谱应用来生成。
可选地,在步骤408处,在分布式计算引擎的主节点中,对针对多个分区的多个查询结果进行汇总计算。由此,能够针对多个分区生成汇总数据。汇总计算和汇总数据已经在上文中进行了说明,例如判断有多少数据满足业务模型要求、有多少个实体、边等,并且在此不再赘述。例如,在分布式计算引擎是Spark的情况下,可以将各个分区中的数据汇总到Spark的Driver中,例如从每个分区获取到当前分区的实体数量和关系数量,并且在Driver端进行累加等计算,由此生成汇总数据.
在步骤409处,在主节点中建立到目标数据库的连接。
在步骤410中,通过主节点到目标数据库的连接,将汇总计算的结果存储到目标数据库中。由此,实现存储针对多个分区生成的汇总数据。按照上述方法,在需要汇总计算的情况下,各个分区分别写将直接读取出来的查询结果进行写入,并且Spark的Driver再另外地向目标数据库(例如,相同的目标数据库或不同的目标数据库)写入汇总数据。
还可以向目标数据库写入任务的明细数据,例如采用结构化数据的形式,并且指示该任务(模型建立任务)的明细数据。任务的示例可以是从包含海量数据的大的知识图谱中计算出想要的子图,例如从巨大的数据库中寻找张三的三度朋友的结构图。并且在这种情况下明细数据可以包括:目标实体(人):张三;任务:寻找三度朋友等。
之后,可以结束任务,关闭分布式计算引擎的内存。
可以理解的是,虽然各个操作在附图中被描绘为按照特定的顺序,但是这不应理解为要求这些操作必须以所示的特定顺序或者按顺行次序执行,也不应理解为要求必须执行所有示出的操作以获得期望的结果。例如,步骤S404可以在步骤S403之前被执行,或者与步骤S403并发地执行。又例如,步骤S406可以在步骤S405之前被执行,或者与步骤S405并发地执行。又例如,步骤S407-S408甚至可以被省略。
表1给出了根据本公开的实施例的数据查询方法对图数据库查询的加速效果。其中加速比是单机数据查询对分布式数据查询的时间比值,并且由此是效果对比的直观参考值。
表1
案例 | 数据量大小 | 单机数据查询(hour) | 分布式数据查询(hour) | 加速比 |
1 | 1W | 15 | 1.5 | 10 |
2 | 10W | 80 | 3 | 26.67 |
3 | 5k | 5 | 0.3 | 16.67 |
4 | 5w | 20 | 1 | 20 |
上述案例1-4均采用Spark作为分布式计算引擎,Spark内存分区个数设定为50,集群中分配25个执行器,每个执行器启动2个CPU核进行处理,并且由此并发量与分区的个数均为50,即执行器数量numExecutors=25,执行器核数executorCores=2,并且有并发量=executorCores*numExecutors=50=分区数。
在方法200或400开始前,可以先对方法的运行环境和输入参数进行配置。这样的配置可以例如在客户端侧(例如,结合图1描述的客户端110)上完成。例如,配置输入可以包括:
·数据来源参数:指示要分析的数据集或源数据的来源。数据来源参数可以包括例如源数据库类型、数据库标识(例如,在有多个数据库的情况下,哪个数据库)、地址、端口和相应的数据ID等。例如,数据来源参数可以指示要分析的名单(例如,实体列表)被保存在Hive或MySQL中。又例如,输入可以是包括若干个数据的数据列表或数据集,例如要分析的“个人”实体名单{张三,李四,王五……}等。在源数据库是MySQL的情况下,数据来源参数还可以包括MySQL地址、用户名、密码等。或者,在源数据库是Hive的情况下,数据来源参数还可以包括Hive地址等。典型的源数据量或者数据集大小可以是几百、几千、几万条数据等。
·目标存储参数:目标存储位置可以包括目标数据库(例如,MySQL或TiDB等)地址以及对应的数据库端口等基本配置。
·业务逻辑参数:用于描述要查询、分析或建模的逻辑。业务逻辑参数可以采用SQL语句或指令的形式,并且作为更具体的示例,可以采用Gremlin语句的形式。业务逻辑的示例可以是描述“查询名单中人名的三度朋友关系”“查询年龄大于20岁的实体列表”等业务需求的逻辑语句。
·运行参数:运行参数可以例如包括Spark分区数量,并行数(分配多少个执行器以及执行器核数)等。例如,当方法所对应的程序包在数据工厂(DataFactory)上运行的情况下,运行参数可以被称为DataFactory配置。已经在上文中列举了一些典型的运行参数,并且本公开不限于此。
可以使用以任何方式设定的文件配置管理器或者配置管理中心来输入这些参数。也可以采用其他方式,例如上传配置文件的形式进行设定。例如,当方法所对应的程序包在DataFactory上运行的情况下,可以先在DataFactory中对上述参数进行配置,参数可以包括模型的数据源;需要分析的数据源列表;分析模型的建模分析语句Gremlin;输出结果集对应的字段映射(即,图数据库里面实体的属性对应的值和MySQL对应的表的字段名的映射,也就是说值应该放在MySQL的哪个字段中)等。
例如,在上述配置完成之后,方法200或400可以由服务器侧执行。替选地,方法200或400可以由服务器与客户端共同执行,或者上述配置可以发生在方法200或400开始之后的任何适当的时间节点。
下面结合图5描述根据本公开的实施例的数据处理方法的配置与运行方法500。
方法500可以包括每次运行前的预配置步骤:可以将上文步骤中的程序文件打包成jar包,例如称为分布式模型建立jar包或称为分布式模型追踪jar包,并且将相关数据库的信息(名称、端口、地址等)写入配置文件,然后将其上传到文件系统HDFS上,并且在任务管理平台上配置任务,由此开始任务的执行。方法500可以在客户端侧执行,例如在图1所示出的客户端应用112上执行。替选地,方法500可以部分在客户端侧执行,并且部分在服务器侧执行。
在S501处,获取数据库配置信息。具体地,可以由用户生成、自动生成、或者读取预先生成的配置文件,或者以其他形式存储的配置信息,其中存储要从中读取数据进行模型分析的图数据库基础配置。例如,配置文件可以包括以下信息:
·storage.hostname存储后端HBase的域名地址;
·storage.HBase.table存储后端HBase对应的表名;
·index.search.hostname索引存储后端ES的域名地址;以及
·index.search.index-name索引存储后端ES对应的表名。
在S502处,加载配置信息和程序包。例如,可以将配置文件和程序包(例如,生成的jar包)上传到HDFS上。
在S503处,配置任务的执行参数,包括输入参数、输出参数、业务分析的Gremlin建模语句、字段的映射关系等。例如,可以在运行环境或者任务管理平台中对任务的执行进行配置。任务可以是用于执行上文所述的方法200或400或其变体。例如,运行环境可以是数据工厂DataFactory。
在这一步,可以对如前文所述的运行参数进行设置。运行参数可以包括
·数据库参数:例如,表示Spark的输出结果和输入源的taskParam参数,需要从中进行数据分析挖掘的图数据库graphdb的属性relationgraph.properties,Spark的输出结果的存储介质MySQL.url和TiDB.url,参数表示输出结果需要存储的表的表名graphPersistTable,以及相关的字段映射等。例如,这些参数可以利用分布式注册中心Nacos进行输入。
·建模分析语句,例如Gremlin参数。作为一个示例,命令可以是查找张三等人名的3度以内的朋友。
·需要分析的数据源(或数据集):例如,可以使用sourceSql参数表示需要分析的名单,可以是一批人,一批企业,或者一系列的银行账号等。
·运行参数:可以包括针对分布式计算引擎中的分区所需的参数(例如,每个执行器的执行内存大小Spark.repartitionNum.executorMemory、每个执行器的核数executorCores、执行进程的数量numExecutors,并且通过这些参数,可以计算并行度parallel=executorCores*numExecutors)。
在S504处,调用配置好的任务,以执行数据查询和子图的生成,包括实现上文所述的方法200或400或其变体的步骤等。
图6是图示出根据示例性实施例的数据查询装置600的示意性框图。数据查询装置600可以包括:数据加载单元601、数据分区单元602、连接建立单元603、数据查询单元604和结果存储单元605。数据加载单元601可以被配置成将包括多个数据的数据集加载到分布式计算引擎的内存中。数据分区单元602可以被配置成对所述多个数据进行分区,使得所述多个数据被分布到所述分布式计算引擎的内存的多个分区中。连接建立单元603可以被配置成为每一个分区建立到图数据库的连接。数据查询单元604可以被配置成通过所述多个分区中的每一个分区到所述图数据库的连接,针对所述多个分区中的多个数据,在所述图数据库中执行查询。结果存储单元605可以被配置成将查询结果存储到目标数据库中。
应当理解,图6中所示装置600的各个模块可以与参考图2描述的方法200中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于装置600及其包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。例如,不同的模块在一些实施例中可以组合成单个模块,或者单个模块可以被拆分为不同的模块。如本文使用的,短语“实体A发起动作B”可以是指实体A发出执行动作B的指令,但实体A本身并不一定执行该动作B。
还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图6描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,数据加载单元601、数据分区单元602、连接建立单元603、数据查询单元604和结果存储单元605中的一个或多个可以一起被实现在片上系统(System on Chip,SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(Central Processing Unit,CPU)、微控制器、微处理器、数字信号处理器(DigitalSignal Processor,DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
根据本公开的一方面,提供了一种计算设备,其包括存储器、处理器以及存储在存储器上的计算机程序。该处理器被配置为执行计算机程序以实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
根据本公开的一方面,提供了一种计算机程序产品,其包括计算机程序,该计算机程序被处理器执行时实现上文描述的任一方法实施例的步骤。
在下文中,结合图7描述这样的计算机设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。
图7示出了可以被用来实施本文所描述的方法的计算机设备700的示例配置。举例来说,图1中所示的服务器120和/或客户端设备110可以包括类似于计算机设备700的架构。上述数据查询设备/装置也可以全部或至少部分地由计算机设备700或类似设备或系统实现。
计算机设备700可以是各种不同类型的设备,例如服务提供商的服务器、与客户端(例如,客户端设备)相关联的设备、片上系统、和/或任何其它合适的计算机设备或计算系统。计算机设备700的示例包括但不限于:台式计算机、服务器计算机、笔记本电脑或上网本计算机、移动设备(例如,平板电脑、蜂窝或其他无线电话(例如,智能电话)、记事本计算机、移动台)、可穿戴设备(例如,眼镜、手表)、娱乐设备(例如,娱乐器具、通信地耦合到显示设备的机顶盒、游戏机)、电视或其他显示设备、汽车计算机等等。因此,计算机设备700的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持游戏控制台)。
计算机设备700可以包括能够诸如通过系统总线714或其他适当的连接彼此通信的至少一个处理器702、存储器704、(多个)通信接口706、显示设备708、其他输入/输出(I/O)设备710以及一个或更多大容量存储设备712。
处理器702可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器702可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器702可以被配置成获取并且执行存储在存储器704、大容量存储设备712或者其他计算机可读介质中的计算机可读指令,诸如操作系统716的程序代码、应用程序718的程序代码、其他程序720的程序代码等。
存储器704和大容量存储设备712是用于存储指令的计算机可读存储介质的示例,所述指令由处理器702执行来实施前面所描述的各种功能。举例来说,存储器704一般可以包括易失性存储器和非易失性存储器二者(例如RAM、ROM等等)。此外,大容量存储设备712一般可以包括硬盘驱动器、固态驱动器、可移除介质、包括外部和可移除驱动器、存储器卡、闪存、软盘、光盘(例如CD、DVD)、存储阵列、网络附属存储、存储区域网等等。存储器704和大容量存储设备712在本文中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,所述计算机程序代码可以由处理器702作为被配置成实施在本文的示例中所描述的操作和功能的特定机器来执行。
多个程序模块可以存储在大容量存储设备712上。这些程序包括操作系统716、一个或多个应用程序718、其他程序720和程序数据722,并且它们可以被加载到存储器704以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):客户端应用112、方法200、方法400和/或方法500(包括方法200、400以及500的任何合适的步骤)、和/或本文描述的另外的实施例。
虽然在图7中被图示成存储在计算机设备700的存储器704中,但是模块716、718、720和722或者其部分可以使用可由计算机设备700访问的任何形式的计算机可读介质来实施。如本文所使用的,“计算机可读介质”至少包括两种类型的计算机可读介质,也就是计算机存储介质和通信介质。
计算机存储介质包括通过用于存储信息的任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,所述信息诸如是计算机可读指令、数据结构、程序模块或者其他数据。计算机存储介质包括而不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)、或其他光学存储装置,磁盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以被用来存储信息以供计算机设备访问的任何其他非传送介质。
与此相对,通信介质可以在诸如载波或其他传送机制之类的已调数据信号中具体实现计算机可读指令、数据结构、程序模块或其他数据。本文所定义的计算机存储介质不包括通信介质。
计算机设备700还可以包括一个或更多通信接口706,以用于诸如通过网络、直接连接等等与其他设备交换数据,正如前面所讨论的那样。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。通信接口706可以促进在多种网络和协议类型内的通信,其中包括有线网络(例如LAN、电缆等等)和无线网络(例如WLAN、蜂窝、卫星等等)、因特网等等。通信接口706还可以提供与诸如存储阵列、网络附属存储、存储区域网等等中的外部存储装置(未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备708,以用于向用户显示信息和图像。其他I/O设备710可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等等。
虽然在附图和前面的描述中已经详细地说明和描述了本公开,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本公开不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,并且词语“一”或“一个”不排除多个。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。
Claims (19)
1.一种数据查询方法,包括:
将包括多个数据的数据集加载到分布式计算引擎的内存中;
对所述多个数据进行分区,使得所述多个数据被分布到所述分布式计算引擎的内存的多个分区中;
为每一个分区建立到图数据库的连接;
通过所述多个分区中的每一个分区到所述图数据库的连接,针对所述多个分区中的多个数据,在所述图数据库中执行查询;以及
将查询结果存储到目标数据库中。
2.根据权利要求1所述的方法,其中,针对所述多个分区中的所述多个数据,在所述图数据库中执行的查询是并行查询。
3.根据权利要求1所述的方法,其中,为每一个分区建立到图数据库的连接包括:在每一个分区中建立到所述图数据库的连接实例,其中,每个连接实例能够调用所述图数据库的查询接口;并且
其中,针对所述多个分区中的所述多个数据,在所述图数据库中执行查询包括:通过在每一个分区中建立的连接实例调用所述图数据库的查询接口,以从所述图数据库中查询与所述分区中的数据相关联的信息作为针对所述分区的查询结果。
4.根据权利要求3所述的方法,还包括:在每一个分区中建立到所述目标数据库的连接,并且其中,将查询结果存储到目标数据库中包括:
将与每一个分区中的数据相关联的信息作为针对所述分区的查询结果保存到所述分区中;以及
通过所述分区到所述目标数据库的连接,将针对所述分区的查询结果存储到所述目标数据库中。
5.根据权利要求4所述的方法,其中,在每一个分区中建立到所述目标数据库的连接发生在针对所述多个分区中的所述多个数据在所述图数据库中执行查询之前。
6.根据权利要求4所述的方法,其中,在将与每一个分区中的数据相关联的信息作为针对所述分区的查询结果保存到所述分区中之后,所述方法还包括:
在所述分布式计算引擎的主节点中,对针对所述多个分区的多个查询结果进行汇总计算;
在所述主节点中建立到所述目标数据库的连接;以及
通过所述主节点到所述目标数据库的连接,将汇总计算的结果存储到所述目标数据库中。
7.根据权利要求6所述的方法,其中,对针对所述多个分区的多个查询结果进行汇总计算包括:对所述多个查询结果进行统计分析。
8.根据权利要求6所述的方法,其中,对针对所述多个分区的多个查询结果进行汇总计算包括:对所述多个查询结果进行业务指标分析。
9.根据权利要求1所述的方法,其中,对所述多个数据进行分区使得所述多个数据被分布到所述分布式计算引擎的内存的多个分区中包括:基于所述多个数据中的每个数据的原始存储地址,将每个数据哈希映射到所述分布式计算引擎的内存的相应分区中。
10.根据权利要求9所述的方法,其中,所述多个数据是从分布式存储数据库加载的,并且每个数据的所述原始存储地址包括每个数据在所述分布式存储数据库中的原始分区地址。
11.根据权利要求1-10中任一项所述的方法,其中,所述分布式计算引擎的内存的所述多个分区的数量是根据所述数据集的数据量和所述分布式计算引擎的集群运算能力而确定的。
12.根据权利要求11所述的方法,其中,所述多个分区的数量被设定为等于所述分布式计算引擎的并行度。
13.根据权利要求1-10中任一项所述的方法,其中,所述多个数据是结构化存储的数据。
14.根据权利要求1-10中任一项所述的方法,其中,所述多个数据中的每个数据对应于知识图谱中的实体。
15.根据权利要求1-10中任一项所述的方法,其中,所述查询结果包括与所述多个数据相关联的实体的信息和关系的信息。
16.一种数据查询装置,包括:
数据加载单元,被配置成将包括多个数据的数据集加载到分布式计算引擎的内存中;
数据分区单元,被配置成对所述多个数据进行分区,使得所述多个数据被分布到所述分布式计算引擎的内存的多个分区中;
连接建立单元,被配置成为每一个分区建立到图数据库的连接;
数据查询单元,被配置成通过所述多个分区中的每一个分区到所述图数据库的连接,针对所述多个分区中的多个数据,在所述图数据库中执行查询;以及
结果存储单元,被配置成将查询结果存储到目标数据库中。
17.一种计算设备,包括:
存储器、处理器以及存储在所述存储器上的计算机程序,
其中,所述处理器被配置为执行所述计算机程序以实现权利要求1-15中任一项所述方法的步骤。
18.一种非暂态计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1-15中任一项所述方法的步骤。
19.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1-15中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110244425.7A CN112925952A (zh) | 2021-03-05 | 2021-03-05 | 数据查询方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110244425.7A CN112925952A (zh) | 2021-03-05 | 2021-03-05 | 数据查询方法、装置、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112925952A true CN112925952A (zh) | 2021-06-08 |
Family
ID=76173423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110244425.7A Pending CN112925952A (zh) | 2021-03-05 | 2021-03-05 | 数据查询方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112925952A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017053904A1 (en) * | 2015-09-25 | 2017-03-30 | Microsoft Technology Licensing, Llc | Distributed graph database |
US20180039709A1 (en) * | 2016-08-05 | 2018-02-08 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and queries by reducing number of messages required to add a new edge by employing asynchronous communication |
CN110110108A (zh) * | 2019-04-09 | 2019-08-09 | 苏宁易购集团股份有限公司 | 一种图数据库的数据导入方法及装置 |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
EP3709188A1 (de) * | 2019-03-11 | 2020-09-16 | Fischer Information Technology AG | Rechnerarchitektur für eine schnittstelle zur aggregation von datenobjekten in einem verteilten system |
CN112363979A (zh) * | 2020-09-18 | 2021-02-12 | 杭州欧若数网科技有限公司 | 一种基于图数据库的分布式索引方法和系统 |
-
2021
- 2021-03-05 CN CN202110244425.7A patent/CN112925952A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017053904A1 (en) * | 2015-09-25 | 2017-03-30 | Microsoft Technology Licensing, Llc | Distributed graph database |
US20180039709A1 (en) * | 2016-08-05 | 2018-02-08 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and queries by reducing number of messages required to add a new edge by employing asynchronous communication |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
EP3709188A1 (de) * | 2019-03-11 | 2020-09-16 | Fischer Information Technology AG | Rechnerarchitektur für eine schnittstelle zur aggregation von datenobjekten in einem verteilten system |
CN110110108A (zh) * | 2019-04-09 | 2019-08-09 | 苏宁易购集团股份有限公司 | 一种图数据库的数据导入方法及装置 |
CN112363979A (zh) * | 2020-09-18 | 2021-02-12 | 杭州欧若数网科技有限公司 | 一种基于图数据库的分布式索引方法和系统 |
Non-Patent Citations (1)
Title |
---|
黄权隆;黄艳香;邵蓥侠;孟嘉;任鑫琦;崔斌;冯是聪;: "HybriG:一种高效处理大量重边的属性图存储架构", 计算机学报, no. 08 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074377B (zh) | 用于实时处理数据流的受管理功能执行 | |
US20170286190A1 (en) | Structural and temporal semantics heterogeneous information network (hin) for process trace clustering | |
US9875265B2 (en) | Database table format conversion based on user data access patterns in a networked computing environment | |
US8984516B2 (en) | System and method for shared execution of mixed data flows | |
US20160034547A1 (en) | Systems and methods for an sql-driven distributed operating system | |
US8751620B2 (en) | Validating deployment patterns in a networked computing environment | |
CN112905854A (zh) | 数据处理方法、装置、计算设备及存储介质 | |
US9451033B2 (en) | Enhanced command selection in a networked computing environment | |
WO2017105864A1 (en) | Maintaining consistent boundaries in parallel mesh simplification | |
US10372595B1 (en) | System and method to diagnose applications by accessing log files associated with different subsystems of a data center via a common interface | |
US20160292186A1 (en) | Dynamically maintaining data structures driven by heterogeneous clients in a distributed data collection system | |
US20200250587A1 (en) | Framework for multi-tenant data science experiments at-scale | |
EP4022427A1 (en) | Generating software artifacts from a conceptual data model | |
US20160378765A1 (en) | Concept expansion using tables | |
US20230206083A1 (en) | Optimizing gradient boosting feature selection | |
EP2980701B1 (en) | Stream processing with context data affinity | |
CN112925792B (zh) | 数据存储控制方法、装置、计算设备及介质 | |
CN112905596B (zh) | 数据处理的方法、装置、计算机设备以及存储介质 | |
US11704327B2 (en) | Querying distributed databases | |
US9342527B2 (en) | Sharing electronic file metadata in a networked computing environment | |
US11294901B1 (en) | Isolating the performance of functions included in queries | |
US9563687B1 (en) | Storage configuration in data warehouses | |
US10146791B2 (en) | Open file rebalance | |
US20230052612A1 (en) | Multilayer processing engine in a data analytics system | |
US20160277252A1 (en) | High performance topology resolution for non-instrumented nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |