CN115203490A - 图数据库中List列表容器数据类型的查询方法及装置 - Google Patents

图数据库中List列表容器数据类型的查询方法及装置 Download PDF

Info

Publication number
CN115203490A
CN115203490A CN202211125579.5A CN202211125579A CN115203490A CN 115203490 A CN115203490 A CN 115203490A CN 202211125579 A CN202211125579 A CN 202211125579A CN 115203490 A CN115203490 A CN 115203490A
Authority
CN
China
Prior art keywords
list
data
type
container
index
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
CN202211125579.5A
Other languages
English (en)
Other versions
CN115203490B (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.)
Fangtu Data Beijing Software Co ltd
State Grid Smart Grid Research Institute Co ltd
Original Assignee
Fangtu Data Beijing Software Co ltd
State Grid Smart Grid Research Institute 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 Fangtu Data Beijing Software Co ltd, State Grid Smart Grid Research Institute Co ltd filed Critical Fangtu Data Beijing Software Co ltd
Priority to CN202211125579.5A priority Critical patent/CN115203490B/zh
Publication of CN115203490A publication Critical patent/CN115203490A/zh
Application granted granted Critical
Publication of CN115203490B publication Critical patent/CN115203490B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions

Landscapes

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

Abstract

本发明公开了一种图数据库中List列表容器数据类型的查询方法及装置,属于图数据库技术领域,通过引入特定的predicate支持List列表容器数据类型的操作,用户在创建图数据库实例时,可为特定顶点或边类型创建List容器数据类型的属性元数据定义,为图数据库List列表容器数据类型引入索引支持,图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。本发明通过为List列表容器类型以定义了元数据的属性的方式存储,并在数据层面为List列表容器类型定义了索引规则且建立了索引数据,因而对于符合条件的查询场景可应用索引来加快查询过程。

Description

图数据库中List列表容器数据类型的查询方法及装置
技术领域
本发明涉及图数据库技术领域,具体涉及一种图数据库中List列表容器数据类型的查询方法及装置。
背景技术
现有的大多数图数据库产品在数据类型方面都支持常见的一些数据类型,如:布尔类型、整型(有可能包括8位、16位、32位、64位等各种不同数值范围)、浮点类型(单精度、双精度)、日期时间类型及字符串类型等。有些图数据库可能支持某一种或几种特定的数据类型,如:JSON类型。现有的图数据库产品对于更为复杂的容器类数据类型支持情况如下:
大部分图数据库不支持类似于List这样的复杂数据类型;某些图数据库以查询语句中的结果形式呈现,即作为结果集一次性呈现,无法多次复用,并未形成顶点或边的属性并保存下来;还存在某些图数据库支持有序的类似于“List”的数据类型,但有可能在图数据库操作过程这种数据中的有序性会在用户不知情的情况下被改变,因而其行为和常规的属性并不相同;基于以上可以看出,现有的图数据库对List列表容器类型的数据结果的支持在使用方面都存在不同方面的限制。
发明内容
因此,本发明为了解决现有图数据库对List列表容器类型的数据查询操作支持有限制的问题,提供一种图数据库中List列表容器数据类型的查询方法及装置,可以很好的支持图数据库中List列表容器数据类型的查询操作。
为达到上述目的,本发明提供如下技术方案:
第一方面,本发明实施例提供一种图数据库中List列表容器数据类型的查询方法,包括:
对Gremlin图数据查询语言进行扩充,引入特定的predicate支持List列表容器数据类型的操作;
基于扩充后的Gremlin图数据查询语言,进行图数据库实例元数据定义时,用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义;
应用程序在进行顶点、边数据的操作时,获取用户为List列表容器类型的属性指定List实例的值;
在进行数据添加、修改或删除时,对于元数据定义了索引的List列表容器类型创建索引;
图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。
进一步地,用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义时,通过系统默认比较算子或用户自定义比较算子,对两个List列表中数据类型值进行比较。
进一步地,所述引入特定的predicate支持List列表容器数据类型的操作,包括:
指定List列表数据长度等于、大于或小于预设值;
指定List列表数据类型属性为空;
指定List列表数据类型属性包含了预设元素;
指定List列表数据类型数据中index所指定的下标位置的值等于、大于或小于预设期望的值。
进一步地,通过系统默认比较算子对两个List列表容器类型值进行比较的过程,包括:
按List列表容器里元素先后顺序,把待比较的两个List列表容器里的元素按元素类型默认比较规则依次进行比较,当首次出现某List列表里的某一个元素大于另一个List列表里同样序号的元素时、或首次出现某个List列表里的元素多于另一个List列表里的元素时,此List列表大于另一个List列表。
进一步地,所述用户定义的比较算子以可运行代码形式存在于元数据文件中,并作为服务器端可编程代码上传至服务器端并完成注册。
进一步地,所述用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义的内容,包括:属性的名称、属性的值类型是List列表容器类型、List列表容器类型中所包含的单个元素的数据类型,属性值是否为空、是否唯一,并指定默认值。
进一步地,对于元数据定义了索引的List列表容器类型创建索引的过程,包括:采用B+树为List列表容器类型创建索引,此索引将根据某个被索引的List列表容器类型属性的值找到此属性对应的顶点或边的ID或者其存储的物理位置。
进一步地,所述图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询的步骤,包括:对于适用的操作直接定位到索引特定的位置,或利用索引的有序特性进行查询,或通过索引进行过滤并在过滤后再去读取符合条件的顶点、边的数据,无法应用的索引的,将直接在顶点或边的数据中进行过滤及查询。
第二方面,本发明实施例提供一种图数据库中List列表容器数据类型的查询装置,包括:
查询语言扩充单元,用于对Gremlin图数据查询语言进行扩充,引入特定的predicate支持List列表容器数据类型的操作;
元数据定义模块,用于基于扩充后的Gremlin图数据查询语言,进行图数据库实例元数据定义时,用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义;
实例值指定单元,用于在应用程序在进行顶点、边数据的操作时,获取用户为List列表容器类型的属性指定List实例的值;
索引单元,用于在进行数据添加、修改或删除时,对于元数据定义了索引的List列表容器类型创建索引;
查询单元,用于图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。
第三方面,本发明实施例提供一种计算机设备,包括:至少一个处理器,以及与至少一个处理器通信连接的存储器,其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行本发明实施例第一方面的图数据库中List列表容器数据类型的查询方法。
第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行本发明实施例第一方面的图数据库中List列表容器数据类型的查询方法。
本发明技术方案,具有如下优点:
本发明提供的图数据库中List列表容器数据类型的查询方法及装置,通过引入特定的predicate支持List列表容器数据类型的操作,用户在创建图数据库实例时,可为特定顶点或边类型创建List容器数据类型的属性元数据定义,为图数据库List列表容器数据类型引入索引支持,图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。本发明通过为List列表容器类型以定义了元数据的属性的方式存储,并在数据层面为List列表容器类型定义了索引规则且建立了索引数据,因而对于符合条件的查询场景可应用索引来加快查询过程。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的图数据库中List列表容器数据类型的查询方法的一个具体示例的流程图;
图2为本发明实施例中提供的图数据库中List列表容器数据类型的查询装置一示例的组成图;
图3为本发明实施例提供的计算机设备一个具体示例的组成图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供一种的图数据库中List列表容器数据类型的查询方法,如图1所示,该方法包括以下步骤:
步骤S1:对Gremlin图数据查询语言进行扩充,引入特定的predicate支持List列表容器数据类型的操作。
在实际应用中,在服务器端一般基于Java的Gremlin图数据库运行环境,在客户端一般基于python的Gremlin图数据库运行环境,本发明实施例以基于Java的Gremlin图数据库运行环境,对Gremlin语言进行了扩充,引入了collection predicate,用于对List列表容器数据类型的图数据类型进行操作的支持。
现有的Gremlin语言,在基于常规的属性键值对的访问条件方面提供了很多操作,尤其是基于has step的操作,例如:has(key, value), has(label, key, value), has(key, predicate)等等,其中的predicate包括基本数据类型常规操作predicate及专用于字符串的predicate,却并不适合本发明实施例新引入的List列表容器数据类型的一些操作,例如,如果想引入类似于“List列表长度等于指定数目”、或“List列表中包含了某个指定的元素”这样异于常规的基于“等值”的判断条件,已有的predicate就无法适用。基于此,本发明实施例对Gremlin的predicate(谓词)引入了新的适用于集合类型的collectionpredicate (CollectionP),其操作包括:
CollectionP.sizeEq(number):指定List列表数据长度(即列表中元素的个数)等于预设值;
CollectionP.sizeGt(number): 指定List列表数据长度(即列表中元素的个数)大于预设值;
CollectionP.sizeLt(number): 指定List列表数据长度(即列表中元素的个数)小于预设值;
CollectionP.isEmpty():指定List列表数据类型属性为空;
CollectionP.contains(value):指定List列表数据类型属性包含了指定的元素;
CollectionP.elementEq(index, expectedValue):指定List列表数据类型数据中index所指定的下标(从0开始)位置的值等于期望的值expectedValue;
CollectionP.elementGt(index, expectedValue):指定List列表数据类型数据中index所指定的下标(从0开始)位置的值大于期望的值expectedValue(使用元数据具指定的默认比较算子或用户自定义的比较算子);
CollectionP.elementLt(index, expectedValue):指定List列表数据类型数据中index所指定的下标(从0开始)位置的值小于期望的值expectedValue(使用元数据具指定的默认比较算子或用户自定义的比较算子);
需要说明的是,List列表数据是指List列表容器数据类型的一个具体实例的数据,即一个具体的List列表容器的数据。
基于以上对于Gremlin的扩充,用户应用程序可使用类似以下示例中的使用方式来访问新引入的List列表容器类型属性:
g.V().has(“listProp”, sizeEq(10)):返回属性listProp长度为10的顶点;
g.E().has(“listProp”, contains(“abc”)):返回listProp列表属性包含了“abc”值的边;
g.V().has(“listProp”, elementEq(1, 32)):返回listProp列表属性下标为1的元素值等于32的顶点。
步骤S2:基于扩充后的Gremlin图数据查询语言,进行图数据库实例元数据定义时,用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义。
在该步骤中,用户指定List列表数据类型属性的名称,在属性的元数据定义中指定此属性的值类型是List列表容器类型;为此List列表容器类型指定子类型(即列表类型所包含的单个元素的数据类型,应为基本的数据类型,如整型、短整形、长整型、字符数组类型、单个字符类型、单精度浮点类型、双精度浮点类型、日期时间类型等数据类型可以作为某个List列表元素的类型,并指定某一个具体的List列表容器类型所包含的元素类型是一致的,即此List列表中所含元素具有相同的数据类型);指定此List列表容器类型的属性值是否为空(此处的空指没有值即不指定值,而非空的一个List列表)、是否唯一,并指定默认值(比如默认值是NULL空值,或者一个不包含任何元素的空List列表)。
可选地,可为此List类型的容器复合数据类型指定比较算子,用户应用程序可使用系统默认的比较算子或用户自定义的比较算子;用户在进行元数据定义时,可以为指定了比较算子的List列表容器类型属性指定建立索引。
实际应用中,用户应用程序通过指定一段运行时的代码,对来自于两个不同的顶点或者边的同一属性的List值进行比较,得到大于、等于或小于的一个比较结果。通常情况下的数据库产品不支持类似List这样的复杂类型比较算子,本发明实施例引入的比较算子用于在图数据库层面指定两个同类型的List列表容器类型数据进行大小的比较,包括系统默认比较算子或用户自定义比较算子,其中:
系统提供默认的比较算子,按List列表容器里元素先后顺序,把待比较的两个List列表容器里的元素按元素类型默认比较规则依次进行比较,当首次出现某个List列表里的某一个元素大于另一个List列表里同样序号的元素时、或首次出现某个List列表里的元素多于另一个List列表里的元素时,此List列表大于另一个List列表。
用户自定义比较算子,为用户定义一段Java运行时比较算子代码,用于两个List列表容器类型值的比较。用户定义的比较算子以Java可运行代码形式存在于jar文件中,并作为服务器端可编程代码上传至服务器端并完成注册。上传注册完成后,此比较算子在List列表容器元数据定义部分进行指定。
步骤S3:应用程序在进行顶点、边数据的操作时,获取用户为List列表容器类型的属性指定List实例的值。
通过Gremlin在为顶点或边List列表容器类型属性指定值的时,用户通过应用程序可以为此属性指定List列表容器类型的值,例如:
g.addV(“person”).property(“listProp”, Arrays.asList(1, 2, 3));
g.addV('product').property('listProp1',Arrays.asList(1,2, 3)).property('listProp2', Arrays.asList(“abc”, “def”));
需要说明的是,此处涉及到的几个属性:listProp、listProp1、listProp2都已在上述步骤S2中定义为List列表容器类型。
步骤S4:在进行数据添加、修改或删除时,对于定义了索引的List列表容器类型创建索引。
该步骤中需要创建的索引仅适用于用户应用程序为某List列表属性在元数据定义时指定了索引且指定了比较算子(或使用默认的List列表比较算子)的情况来创建。
本发明实施例中涉及的List列表容器数据类型,其特性有:
相较图数据库产品中常见的基础数据类型,List列表容器类型支持一个有序的基础数据类型元素有限列表来提供一组元素形成的一个复合类型,作为图数据库一类顶点或边的某一个属性的值。从图数据库层面,这种List列表容器类型不同于常规基于单个数值的直接比较及判断操作,而是额外提供了类似于集合类型的查询操作,如可以将List列表的长度(即其内含元素的个数)作为判断条件、或以List列表是否内含指定元素作为判断条件,并以此形成图数据库库层面的顶点或边的查询、过滤或排序条件。
基于以上List列表容器类型的特性,本发明实施例采用B+树为List列表容器类型创建的索引(即对索引数据有序排列的索引),此索引将根据某个被索引的List列表容器类型属性的值找到此属性对应的顶点或边的ID或者其存储的物理位置。
步骤5:图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。
在进行查询时,对于适用的操作可直接定位到索引特定的位置(如等值操作、范围查询),或利用索引的有序特性进行查询(如有序的order by结果输出),或通过索引进行过滤以避免直接图数据的读取(如List类型的长度作为条件进行判断的)并在过滤后再去读取符合条件的点、边的数据。无法应用的索引的,将直接在顶点或边的数据中进行过滤及查询。
本发明中的List列表容器类型以定义了元数据的属性的方式存储并在数据层面为List列表容器类型定义了索引规则且建立了索引数据,区别于现有的图数据库仅以查询语句的结果集呈现,因而对于符合条件的查询过程可应用索引来加快查询过程。
查询过程中,以下示例说明可使用List列表容器类型索引的Gremlin语言查询场景:
1、等值查询(如指定一个具体的、期望的List列表容器类型值);
2、范围查询(如指定范围的上限或/及下限的List列表容器类型数据);
3、使用P.within来指定多个期望的List列表容器类型值的查询;
4、CollectionP.size按List列表容器类型的长度进行查询的;
5、使用CollectionP.isEmpty按List列表容器类型是否为空列表进行查询的。
实施例2
本发明实施例提供一种图数据库中List列表容器数据类型的查询装置,如图2所示,包括:
查询语言扩充单元1,用于对Gremlin图数据查询语言进行扩充,引入特定的predicate支持List列表容器数据类型的操作此模块执行实施例1中的步骤S1所描述的方法,在此不再赘述。
元数据定义单元2,用于基于扩充后的Gremlin图数据查询语言,创建图数据库实例时,获取用户为特定顶点或边类型创建List列表容器数据类型的元数据定义;模块执行实施例1中的步骤S2所描述的方法,在此不再赘述。
实例值指定单元3,用于在应用程序在进行顶点、边数据的操作时,获取用户为List列表容器类型的属性指定List实例的值;该模块执行实施例1中的步骤S3所描述的方法,在此不再赘述。
索引单元4,用于在进行数据添加、修改或删除时,对于元数据定义了索引的List列表容器类型创建索引;该模块执行实施例1中的步骤S4所描述的方法,在此不再赘述。
查询单元5,用于图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。该模块执行实施例1中的步骤S5所描述的方法,在此不再赘述。
本发明实施例提供的图数据库中List列表容器数据类型的查询装置,对Gremlin图数据查询语言进行扩充,引入特定的predicate支持List列表容器数据类型的操作,通过为List列表容器类型以定义了元数据的属性的方式存储,并在数据层面为List列表容器类型定义了索引规则且建立了索引数据,因而图数据库提供运行时对于符合条件的查询场景可应用索引来加快查询过程。
实施例3
本发明实施例提供一种计算机设备,如图3所示,包括:至少一个处理器401,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口403,存储器404,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,通信接口403可以包括显示屏(Display)、键盘(Keyboard),可选通信接口403还可以包括标准的有线接口、无线接口。存储器404可以是高速RAM存储器(Ramdom Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器404可选的还可以是至少一个位于远离前述处理器401的存储装置。其中处理器401可以执行实施例1的图数据库中List列表容器数据类型的查询方法。存储器404中存储一组程序代码,且处理器401调用存储器404中存储的程序代码,以用于执行实施例1的图数据库中List列表容器数据类型的查询方法。
其中,通信总线402可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器404可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固降硬盘(英文:solid-state drive,缩写:SSD);存储器404还可以包括上述种类的存储器的组合。
其中,处理器401可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic, 缩写:GAL)或其任意组合。
可选地,存储器404还用于存储程序指令。处理器401可以调用程序指令,实现如本申请执行实施例1中的图数据库中List列表容器数据类型的查询方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令可执行实施例1的图数据库中List列表容器数据类型的查询方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固降硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

Claims (11)

1.一种图数据库中List列表容器数据类型的查询方法,其特征在于,包括:
对Gremlin图数据查询语言进行扩充,引入特定的predicate支持List列表容器数据类型的操作;
基于扩充后的Gremlin图数据查询语言,进行图数据库实例元数据定义时,用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义;
应用程序在进行顶点、边数据的操作时,获取用户为List列表容器类型的属性指定List实例的值;
在进行数据添加、修改或删除时,对于元数据定义了索引的List列表容器数据类型创建索引;
图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。
2.根据权利要求1所述的图数据库中List列表容器数据类型的查询方法,其特征在于,所述用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义时,通过系统默认比较算子或用户自定义比较算子,对两个List列表中数据类型值进行比较。
3.根据权利要求1所述的图数据库中List列表容器数据类型的查询方法,其特征在于,所述引入特定的predicate支持List列表容器数据类型的操作,包括:
指定List列表数据长度等于、大于或小于预设值;
指定List列表数据类型属性为空;
指定List列表数据类型属性包含了预设元素;
指定List列表数据类型数据中index所指定的下标位置的值等于、大于或小于预设期望的值。
4.根据权利要求2所述的图数据库中List列表容器数据类型的查询方法,其特征在于,通过系统默认比较算子对两个List列表容器类型值进行比较的过程,包括:
按List列表容器里元素先后顺序,把待比较的两个List列表容器里的元素按元素类型默认比较规则依次进行比较,当首次出现某List列表里的某一个元素大于另一个List列表里同样序号的元素时、或首次出现某个List列表里的元素多于另一个List列表里的元素时,此List列表大于另一个List列表。
5.根据权利要求2所述的图数据库中List列表容器数据类型的查询方法,其特征在于,所述用户定义的比较算子以可运行代码形式存在于元数据文件中,并作为服务器端可编程代码上传至服务器端并完成注册。
6.根据权利要求1所述的图数据库中List列表容器数据类型的查询方法,其特征在于,所述用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义的内容,包括:属性的名称、属性的值类型是List列表容器类型、List列表容器类型中所包含的单个元素的数据类型,属性值是否为空、是否唯一,并指定默认值。
7.根据权利要求6所述的图数据库中List列表容器数据类型的查询方法,其特征在于,对于元数据定义了索引的List列表容器类型创建索引的过程,包括:采用B+树为List列表容器类型创建索引,此索引将根据某个被索引的List列表容器类型属性的值找到此属性对应的顶点或边的ID或者其存储的物理位置。
8.根据权利要求7所述的图数据库中List列表容器数据类型的查询方法,其特征在于,所述图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询的步骤,包括:对于适用的操作直接定位到索引特定的位置,或利用索引的有序特性进行查询,或通过索引进行过滤并在过滤后再去读取符合条件的顶点、边的数据,无法应用的索引的,将直接在顶点或边的数据中进行过滤及查询。
9.一种图数据库中List列表容器数据类型的查询装置,其特征在于,包括:
查询语言扩充单元,用于对Gremlin图数据查询语言进行扩充,引入特定的predicate支持List列表容器数据类型的操作;
元数据定义单元,用于基于扩充后的Gremlin图数据查询语言,进行图数据库实例元数据定义时,用户为特定顶点或边类型创建List列表容器数据类型的属性元数据定义;
实例值指定单元,用于在应用程序在进行顶点、边数据的操作时,获取用户为List列表容器类型的属性指定List实例的值;
索引单元,用于在进行数据添加、修改或删除时,对于元数据定义了索引的List列表容器类型创建索引;
查询单元,用于图数据库提供运行时对符合条件的查询场景基于List列表索引进行查询。
10.一种计算机设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-8中任一所述的图数据库中List列表容器数据类型的查询方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行1-8中任一所述的图数据库中List列表容器数据类型的查询方法。
CN202211125579.5A 2022-09-16 2022-09-16 图数据库中List列表容器数据类型的查询方法及装置 Active CN115203490B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211125579.5A CN115203490B (zh) 2022-09-16 2022-09-16 图数据库中List列表容器数据类型的查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211125579.5A CN115203490B (zh) 2022-09-16 2022-09-16 图数据库中List列表容器数据类型的查询方法及装置

Publications (2)

Publication Number Publication Date
CN115203490A true CN115203490A (zh) 2022-10-18
CN115203490B CN115203490B (zh) 2022-12-06

Family

ID=83571804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211125579.5A Active CN115203490B (zh) 2022-09-16 2022-09-16 图数据库中List列表容器数据类型的查询方法及装置

Country Status (1)

Country Link
CN (1) CN115203490B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033954A (zh) * 2010-12-24 2011-04-27 东北大学 关系数据库中可扩展标记语言文档全文检索查询索引方法
CN109101565A (zh) * 2018-07-16 2018-12-28 浪潮软件集团有限公司 一种基于图数据库的语义搜索实现方法
CN109271458A (zh) * 2018-09-14 2019-01-25 南威软件股份有限公司 一种基于图数据库的关系网查询方法及系统
CN111596921A (zh) * 2019-02-21 2020-08-28 丛林网络公司 支持基于图形的统一意图模型的编译和可扩展性
CN112818181A (zh) * 2021-01-25 2021-05-18 杭州绿湾网络科技有限公司 图数据库检索方法、系统、计算机设备和存储介质
US20220129461A1 (en) * 2020-10-26 2022-04-28 Oracle International Corporation Efficient compilation of graph queries including complex expressions on top of sql based relational engine

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033954A (zh) * 2010-12-24 2011-04-27 东北大学 关系数据库中可扩展标记语言文档全文检索查询索引方法
CN109101565A (zh) * 2018-07-16 2018-12-28 浪潮软件集团有限公司 一种基于图数据库的语义搜索实现方法
CN109271458A (zh) * 2018-09-14 2019-01-25 南威软件股份有限公司 一种基于图数据库的关系网查询方法及系统
CN111596921A (zh) * 2019-02-21 2020-08-28 丛林网络公司 支持基于图形的统一意图模型的编译和可扩展性
US20220129461A1 (en) * 2020-10-26 2022-04-28 Oracle International Corporation Efficient compilation of graph queries including complex expressions on top of sql based relational engine
CN112818181A (zh) * 2021-01-25 2021-05-18 杭州绿湾网络科技有限公司 图数据库检索方法、系统、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JERMY LI: "《图数据库入门教程-深入学习Gremlin(1):图基本概念与操作》", 《HTTPS://BLOG.CSDN.NET/JAVEME/ARTICLE/DETAILS/82501797》 *
王丽娟等: "知识图谱数据管理系统设计", 《电脑与信息技术》 *

Also Published As

Publication number Publication date
CN115203490B (zh) 2022-12-06

Similar Documents

Publication Publication Date Title
US20210125144A1 (en) Bill of material conversion method, electronic apparatus and non-transitory computer-readable storage medium
CN108694158A (zh) 用于检查bim模型文件是否变化的方法
CN108228799B (zh) 对象索引信息的存储方法及装置
CN108776678B (zh) 基于移动端NoSQL数据库的索引创建方法及装置
CN111443912A (zh) 基于组件的页面渲染方法、装置、计算机设备和存储介质
CN105653716A (zh) 一种基于分类-属性-值的数据库构造方法和构造系统
AU2017268599A1 (en) Method, device, server and storage medium of searching a group based on social network
CN109815231A (zh) 数据分片方法、装置、计算机设备和存储介质
CN111813744A (zh) 文件的搜索方法、装置、设备及存储介质
CN106557307B (zh) 业务数据的处理方法及处理系统
CN113918605A (zh) 数据查询方法、装置、设备以及计算机存储介质
CN111475511A (zh) 基于树状结构的数据存储方法、访问方法、装置及设备
CN111026765A (zh) 严格平衡二叉树的动态处理方法、设备、存储介质及装置
CN109388644B (zh) 一种数据更新方法及装置
CN108664505B (zh) 一种数据库表结构的导出方法及装置
CN111506573B (zh) 数据库表分区方法、装置、计算机设备及存储介质
CN115203490B (zh) 图数据库中List列表容器数据类型的查询方法及装置
CN113792026B (zh) 数据库脚本的部署方法、装置及计算机可读存储介质
CN111666278A (zh) 数据存储、检索方法、电子设备及存储介质
CN116010345A (zh) 一种实现流批一体数据湖的表服务方案的方法、装置及设备
CN115145552A (zh) 规则引擎的执行方法、装置、设备及计算机可读存储介质
US10977282B2 (en) Generating device, generating method, and non-transitory computer-readable recording medium
JP2018109898A (ja) データマイグレーションシステム
CN109725982B (zh) 数据对象构建方法及装置
CN113098961A (zh) 组件上传方法、装置、系统、计算机设备及可读存储介质

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
GR01 Patent grant
GR01 Patent grant