CN110647568B - 一种图数据库数据转化为编程语言数据方法及装置 - Google Patents
一种图数据库数据转化为编程语言数据方法及装置 Download PDFInfo
- Publication number
- CN110647568B CN110647568B CN201910873077.2A CN201910873077A CN110647568B CN 110647568 B CN110647568 B CN 110647568B CN 201910873077 A CN201910873077 A CN 201910873077A CN 110647568 B CN110647568 B CN 110647568B
- Authority
- CN
- China
- Prior art keywords
- data
- attribute
- key value
- target node
- programming language
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000006243 chemical reaction Methods 0.000 claims abstract description 51
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000013507 mapping Methods 0.000 claims description 13
- 230000006399 behavior Effects 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000018109 developmental process Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 238000009933 burial Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 206010039083 rhinitis Diseases 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种图数据库数据转化为编程语言数据方法,所述方法包括:获取图数据库中目标节点的属性数据;对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据;对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的编程语言对象。由于键值对形式的数据与编程语言编程语言对象均能够被服务器或计算机的内存所识别,因此,将图数据库中目标节点的属性数据转化为键值对数据后,可以对该键值对数据进行编程语言转化处理,得到该键值对数据对应的编程语言对象,从而实现了将图数据库中的数据转化为可被编程语言程序所使用的对象,进而提高了读取图数据库中的数据的便捷性,提高了图数据库的开发效率。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种图数据库数据转化为编程语言数据方法及装置。
背景技术
知识图谱(Knowledge Graph)在图书情报界称为知识域可视化或知识领域映射地图,是显示知识发展进程与结构关系的一系列各种不同的图形。知识图谱通过使用可视化技术描述了知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。由于图数据库是基于数学里图论的思想和算法而实现的高效处理复杂关系网络的非关系型数据库,它应用图形理论存储实体之间的关系信息且善于高效处理大量的、复杂的、互连的、多变的数据,其计算效率远远高于传统的关系型数据库。因此,知识图谱的数据和关系存储大多会用到图数据库。
在现有技术中,由于没有针对图数据库的类似关系型数据库中对象关系映射(Object Relational Mapping,简称ORM)框架一样的开发包,因此,现有技术中不可以将图数据库中的数据映射成可被编程语言程序所使用的对象,大大降低了图数据库的开发效率。故,亟需一种能够将图数据库中的数据映射为可被编程语言程序所使用的对象的方法。
发明内容
本发明提供一种图数据库数据转化为编程语言数据方法及装置,以实现将图数据库中的数据转化为可被编程语言程序所使用的对象,进而提高了读取图数据库中的数据的便捷性,提高了图数据库的开发效率。
第一方面,本发明提供了一种图数据库数据转化为编程语言数据方法,所述方法包括:
获取图数据库中目标节点的属性数据;
对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据;
对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的编程语言对象。
可选的,所述获取图数据库中目标节点的属性数据,包括:
接收数据读取指令,其中,所述数据读取指令包括所述图数据库中待读取的目标节点;
利用元数据读取所述目标节点的属性数据。
可选的,所述利用元数据读取所述目标节点的属性数据,包括:
利用元数据获取所述目标节点所在的关联路径,并从所述关联路径的节点列表中,读取所述目标节点的属性数据。
可选的,所述对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据,包括:
根据所述目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义,得到所述目标节点对应的键值对数据。
可选的,所述目标节点对应的键值对数据包括键和所述键对应的值;所述根据所述目标节点的属性数据中的图数据库中属性名、键值对类型属性名和属性含义,得到所述目标节点对应的键值对数据,包括:
将所述键值对类型属性名对应的值作为所述键;
将所述图数据库中属性名对应的值作为所述值的内容列表中的一项数据;
将所述内容列表和所述属性含义作为所述值。
可选的,所述对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的编程语言对象,包括:
根据预设规则对所述键值对数据进行转化,得到所述键值对数据对应的实体类对象;
根据预设逻辑对所述实体类对象进行转化,得到所述键值对数据对应的实体视图类对象;
根据预设的实体视图类和编程语言对象映射策略进行转化,得到所述键值对数据对应的编程语言对象。
可选的,所述键值对数据为Map数据,所述编程语言对象为Java语言对象。
第二方面,本发明提供了一种图数据库数据转化为编程语言数据装置,其特征在于,所述装置包括:
获取模块,用于获取图数据库中目标节点的属性数据;
第一转化模块,用于对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据;
第二转化模块,用于对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的编程语言对象。
可选的,所述获取模块,具体用于:
接收数据读取指令,其中,所述数据读取指令包括所述图数据库中待读取的目标节点;
利用元数据读取所述目标节点的属性数据。
可选的,所述获取模块,还具体用于:
利用元数据获取所述目标节点所在的关联路径,并从所述关联路径的节点列表中,读取所述目标节点的属性数据。
可选的,所述第一转化模块,具体用于:
根据所述目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义,得到所述目标节点对应的键值对数据。
可选的,所述目标节点对应的键值对数据包括键和所述键对应的值;所述第一转化模块,还具体用于:
将所述键值对类型属性名对应的值作为所述键;
将所述图数据库中属性名对应的值作为所述值的内容列表中的一项数据;
将所述内容列表和所述属性含义作为所述值。
可选的,所述第二转化模块,具体用于:
根据预设规则对所述键值对数据进行转化,得到所述键值对数据对应的实体类对象;
根据预设逻辑对所述实体类对象进行转化,得到所述键值对数据对应的实体视图类对象;
根据预设的实体视图类和编程语言对象映射策略进行转化,得到所述键值对数据对应的编程语言对象。
可选的,所述键值对数据为Map数据,所述编程语言对象为Java语言对象。
第三方面,本发明提供了一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面中任一所述的方法。
第四方面,本发明提供了一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面中任一所述的方法。
由上述技术方案可以看出,本发明通过对图数据库中目标节点的属性数据进行键值对转化处理,得到该目标节点对应的键值对数据,以使得图数据库中的数据可以转化为键值对形式的数据;由于键值对形式的数据与编程语言编程语言对象均能够被服务器或计算机的内存所识别,因此,将图数据库中目标节点的属性数据转化为键值对数据后,可以对该键值对数据进行编程语言转化处理,得到该键值对数据对应的编程语言对象,从而实现了将图数据库中的数据转化为可被编程语言程序所使用的对象,进而提高了读取图数据库中的数据的便捷性,提高了图数据库的开发效率。
上述的非惯用的优选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种图数据库数据转化为编程语言数据方法的流程示意图;
图2为本发明一实施例提供的另一种图数据库数据转化为编程语言数据方法的流程示意图;
图3为本发明一实施例提供的一种图数据库数据转化为编程语言数据装置的结构示意图;
图4为本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中由于不能够将图数据库中的数据映射成可被编程语言程序所使用的对象,导致图数据库的开发效率大大降低的问题。本发明提供了一种图数据库数据转化为编程语言数据方法,在本方法中,可以先获取图数据库中目标节点的属性数据,并将该目标节点的属性数据进行键值对转化处理,得到该目标节点对应的键值对数据,以使得该目标节点的属性数据由图数据库数据转化为能够被服务器或计算机的内存所识别的键值对形式的数据。这样,便可以对该目标节点对应的键值对数据进行编程语言转化处理,得到该目标节点对应的编程语言对象,从而将该目标节点的属性数据由图数据库数据转化为可被编程语言程序所使用的编辑语言对象。
下面结合附图,详细说明本发明的各种非限制性实施方式。
参见图1,示出了本发明实施例中的一种图数据库数据转化为编程语言数据方法。在本实施例中,所述方法例如可以包括以下步骤:
S101:获取图数据库中目标节点的属性数据。
图数据库是使用图的结构来表现和存储具有图语义的数据,图数据库中所存储的是图的数据,图的数据通常包括节点以及节点间的关系,即图数据库可以直接将节点与节点之间的关系也保存下来,这样使得在图数据库中查询数据时,两个相邻的节点的数据可以进行直接的关联。举例来说,假设图数据库中存在两个相邻节点,即节点“张三”和节点“鼻炎”,且这两个节点之间的关系为“患有”,则可以从该图数据库中读取到数据“张三患有鼻炎”。
在本实施例中,图数据库中的目标节点可以理解为图数据库中需要读取的节点,即图数据库中待读取的节点。举例来说,假设图数据库中包括节点“张三”和节点“鼻炎”,用户需要读取节点“鼻炎”的属性数据,则可以将该节点作为目标节点。
需要说明的是,目标节点的属性数据可以理解为用于反映目标节点的本质的数据。例如,目标节点的属性数据可以包括目标节点对应的图数据库中属性名、键值对类型的属性名和属性含义;其中,图数据库中属性名可以为图数据库中属性的键,用于获取值;键值对类型的属性名可以为图数据库中的属性名映射为键值对数据中的属性名;属性含义可以为属性本身的意义,需要说明的是,同一个节点的同一个属性,在节点所属的不同类型中含义可能会不同。
为了便于理解目标节点的属性数据,举例说明,假设目标节点“男性”的属性数据可以包括数据库中属性名“S--男性”、键值对类型的属性名“sex”和属性含义“性别”,其中,数据库中属性名“S--男性”在图数据库中对应的属性值为“男”。
在本实施例中,可以先根据用户的操作,例如输入文字信息或语音信息,在图数据库的多个节点中确定目标节点,接着,获取该目标节点对应的属性数据,例如,可以通过元数据读取目标节点的属性信数据。
S102:对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据。
键值对是一种把键(键对象)和值(即值对象)进行关联的容器,即将键和值进行了关联形成了键值对,这样,可以利用键得到与键对应的值。例如可以用pub(Object key,Object value),将一个键与一个值相关联,用get(Object key)可得到与此key对象(即键)所对应的值。
在获取到目标节点的属性数据后,可以对该目标节点的属性数据进行键值对转化处理,即将该目标节点中的属性数据转化为键值对形式的数据,从而得到所该目标节点对应的键值对数据,其中,该键值对数据可以为Map数据格式,即该键值对数据可以为Map数据。
作为一种示例,可以根据目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义,得到所述目标节点对应的键值对数据。也就是说,将目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义进行键值对转化处理,可以得到该目标节点对应的键值对数据。
S103:对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的编程语言对象。
在将目标节点的属性数据进行键值对转化处理,得到该目标节点对应的键值对数据之后,由于该目标节点对应的键值对数据能够被服务器或计算机的内存所识别,因此,可以对该目标节点对应的键值对数据进行编程语言转化处理,得到该键值对数据对应的编程语言对象,即目标节点对应的编程语言对象,例如,可以通过预设的转换规则将该目标节点对应的键值对数据转化为该目标节点对应的编程语言对象。
需要说明的是,在本实施例中,编程语言对象可以为任意一种编程语言能够使用的对象,例如,该编程语言对象可以为Java语言能够使用的对象,即Java语言对象,又例如,该编程语言对象可以为C语言能够使用的对象,即C语言对象。
由上述技术方案可以看出,本发明通过对图数据库中目标节点的属性数据进行键值对转化处理,得到该目标节点对应的键值对数据,以使得图数据库中的数据可以转化为键值对形式的数据;由于键值对形式的数据与编程语言编程语言对象均能够被服务器或计算机的内存所识别,因此,将图数据库中目标节点的属性数据转化为键值对数据后,可以对该键值对数据进行编程语言转化处理,得到该键值对数据对应的编程语言对象,从而实现了将图数据库中的数据转化为可被编程语言程序所使用的对象,进而提高了读取图数据库中的数据的便捷性,提高了图数据库的开发效率。
图1所示仅为本发明所述方法的基础实施例,在其基础上进行一定的优化和拓展,还能够得到所述方法的其他优选实施例。
如图2所示,为本发明所述图数据库数据转化为编程语言数据方法的另一个具体实施例。本实施例在图1对应实施例的基础上,对S101、S102、S103进行进一步阐述。在本实施例中,所述方法具体包括以下步骤:
S201:接收数据读取指令。
在本实施例中,所述数据读取指令可以包括图数据库中待读取的目标节点。举例来说,例如,终端可以设置有用于用户选择待读取的目标节点的选择页面,当用户在该选择页面中选择待读取的目标节点之后,终端可以响应用户在该选择页面中的选择操作,生成数据读取指令,并将该数据读取指令向设置有图数据库的服务器发送。
S202:利用元数据读取所述目标节点的属性数据。
在本实施例中,在接收到数据读取指令之后,可以根据该数据读取指令中的目标节点,利用元数据读取图数据库中该目标节点的属性数据。其中,元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能,并且,元数据为一种电子式目录。
在本实施例的一种实现方式中,可以先利用元数据获取目标节点所在的关联路径,接着,从该关联路径的节点列表中,读取该目标节点的属性数据。接下来,结合代码1进行举例说明:
接下来,结合代码1进行说明。代码1为读取到目标节点(即关联路径的节点列表中的第三个节点(:Resource:s__Text))的属性数据的元数据,具体地,先利用该元数据获取目标节点(:Resource:s__Text)所在的关联路径(n:Resource:s__NsfcProject)-[:s__isProject]->(:Resource:s__Project)-[:s__name]->(:Resource:s__Text),接着,从该关联路径的节点列表propertyMetadataList中,读取该目标节点的属性数据"prop":"s__text"(图数据库中属性名),"key":"name"(键值对类型的属性名),"name":"项目名称"(属性含义)。
其中,代码1对应的元数据中各个字段的含义如下:
1)元数据名称:元数据信息的唯一标识;
2)主节点的属性列表:在图数据库中,要将多个节点聚合为一个类型,必须选取一个节点,其可以唯一标示这个类型的一个对象,此节点即主节点,节点下所需访问的属性都在该列表中;
3)数据库中属性名:即数据库中属性的键,用于获取属性的键对应的值;
4)键值对类型属性名:即数据库中的属性名映射为Map格式数据中的属性名;
5)属性含义:即属性本身的意义;
6)节点所在关联路径列表:主节点和其关联节点构成一个类型,此列表用于枚举所需的关联关系路径;
7)节点的一条关联路径:用于从图数据库中查询路径上的所有节点;
8)路径的节点列表:用户获取路径上每一个节点中所需的属性数据。
需要说明的是,S101可以包括S201-S202。
S203:根据所述目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义,得到所述目标节点对应的键值对数据。
其中,目标节点对应的键值对数据包括键(即键对象)和所述键对应的值(即值对象),即通过将目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义进行键值对转化处理,可以得到该目标节点对应的键值对数据。
作为一种示例,在读取到目标节点的属性数据之后,可以将该属性数据中的键值对类型属性名对应的值作为该目标节点对应的键值对数据中的键;将该属性数据中的图数据库中属性名对应的值作为该键值对数据中的值的内容列表中一项数据;将该属性数据中的内容列表和属性含义作为该键值对数据中的值。
继续以步骤S202中的代码1为例进行举例说明,根据代码1中的目标节点的属性数据进行键值对转化处理,可以得到代码2(即键值对数据),
其中,代码1的属性数据中的键值对类型属性名对应的值"name"作为该目标节点对应的键值对数据中的键"name";将该属性数据中的图数据库中属性名"s__text"对应的值"20000"作为该键值对数据中的值的内容列表中一项数据"value":"20000";将该键值对数据中的值的内容列表"value":"20000"和该属性数据中的属性含义"name":"项目名称"作为该键值对数据中的值(即"name"的值)。
需要说明的是,S102可以包括S203。
S204:根据预设规则对所述键值对数据进行转化,得到所述键值对数据对应的实体类对象。
在本实施例中,可以根据预设规则将目标节点对应的键值对数据由键值对数据格式转化为可被编程语言使用的实体类对象,例如,当编程语言为Java语言时,该实体类对象可以Entity类对象。其中,该预设规则可以包括限制属性值的类型、属性值的范围、值的个数以及是否有额外信息等。
继续以S203中的代码2为例,假设编程语言为Java语言,根据预设规则对代码2(即键值对数据)进行转化,可得到代码3对应的Entity类对象(即实体类对象),其中,该Entity类对象如代码3所示,
代码3“
public class DomainEntity{
private String metadata;//代码2的元数据
private String id;//转化过程中额外获取的数据
private String uri;//代码2的uri
private List<String>labels;//转化过程中额外获取的数据
private Map<String,DomainStruct>uriDomainStructMap;//对应代码2的map}”。
S205:根据预设逻辑对所述实体类对象进行转化,得到所述键值对数据对应的实体视图类对象。
在本实施例中,可以根据预设逻辑将目标节点对应的实体类对象由键值对数据格转化为可被编程语言使用的实体视图类对象,例如,当编程语言为Java语言时,该实体视图类对象可以EntityVO类对象。其中,该预设逻辑可以为对实体类对象的一些固定的属性定义一些固定的行为,例如代码1中的“资助经费”属性,可以定义一预设逻辑:如果“资助经费”对应的值为20000,则经过预设逻辑处理后展示的值就成为“两万元”。
继续以S204中的代码3为例,假设编程语言为Java语言,根据预设逻辑对代码3(即Entity类对象)进行转化,可得到代码4对应的EntityVO类对象(即实体视图类对象),其中,该EntityVO类对象如代码4所示,
代码4“public class DomainEntityVO{
private String metadata;//Entity中的元数据
private String id;//Entity中的id
private String uri;////Entity中的uri
private List<String>labels;////Entity中的labels
private Map<String,List<DomainPropValue>>properties;//由DomainEntity中的uriDomainStructMap转化来}
”。
S206:根据预设的实体视图类和编程语言对象映射策略进行转化,得到所述键值对数据对应的编程语言对象。
在本实施例中,可以根据预设的实体视图类和编程语言对象映射策略,将目标节点对应的实体视图类转化为可被编程语言使用的编程语言对象,例如,可以将EntityVO类对象直接转化成编程语言中的其他类型,以便于用户在代码开发时更方便的使用。其中,该映射策略可以使元数据和编程语言中的类型形成映射关系。
继续以S205中的代码4为例,假设编程语言为Java语言,根据预设逻辑对代码4(即EntityVO类对象)进行转化,可得到代码5对应的Java语言对象(即编程语言对象),其中,该Java语言对象如代码5所示,
代码5“public class BuryingPointEventDTO{
private String action;//埋点动作,由DomainEntityVO中的properties中数据转化来
private Map payload;//埋点动作的数据,由DomainEntityVO中的properties中数据转化来
private String optime;//埋点时间,由DomainEntityVO中的properties中数据转化来}
”。
需要说明的是,S103可以包括S204-S205,这样,用户可以根据不同需求将图数据库中的数据转化到不同类型的对象,例如,可以只转化到实体类对象(即仅进行到S204),也可以只转化到实体视图类对象(即仅进行到S205),还可以只转化到编程语言对象(即仅进行到S206),从而可以简化了代码整体的难易度。
至此,本实施例结合具体的应用场景实现了对于图数据库数据转化为编程语言数据的处理过程。当然应该认为,上述场景仅仅为示例性场景,并不对本发明提供的方法构成限定。本发明提供的方法可延申的应用在其他相同原理的图数据库数据转化为编程语言数据方法处理过程当中。
如图3所示,为本发明所述图数据库数据转化为编程语言数据装置的一个具体实施例。本实施例所述装置,即用于执行上述实施例所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本实施例中所述装置包括:
获取模块301,用于获取图数据库中目标节点的属性数据;
第一转化模块302,用于对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据;
第二转化模块303,用于对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的编程语言对象。
可选的,所述获取模块301,具体用于:
接收数据读取指令,其中,所述数据读取指令包括所述图数据库中待读取的目标节点;
利用元数据读取所述目标节点的属性数据。
可选的,所述获取模块301,还具体用于:
利用元数据获取所述目标节点所在的关联路径,并从所述关联路径的节点列表中,读取所述目标节点的属性数据。
可选的,所述第一转化模块302,具体用于:
根据所述目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义,得到所述目标节点对应的键值对数据。
可选的,所述目标节点对应的键值对数据包括键和所述键对应的值;所述第一转化模块302,还具体用于:
将所述键值对类型属性名对应的值作为所述键;
将所述图数据库中属性名对应的值作为所述值的内容列表中的一项数据;
将所述内容列表和所述属性含义作为所述值。
可选的,所述第二转化模块303,具体用于:
根据预设规则对所述键值对数据进行转化,得到所述键值对数据对应的实体类对象;
根据预设逻辑对所述实体类对象进行转化,得到所述键值对数据对应的实体视图类对象;
根据预设的实体视图类和编程语言对象映射策略进行转化,得到所述键值对数据对应的编程语言对象。
可选的,所述键值对数据为Map数据,所述编程语言对象为Java语言对象。
图4是本发明实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry StandardArchitecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended IndustryStandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成图数据库数据转化为编程语言数据装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本发明任一实施例中提供的图数据库数据转化为编程语言数据方法。
上述如本发明图2所示实施例提供的图数据库数据转化为编程语言数据装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被电子设备的处理器执行时,能够使该电子设备执行本发明任一实施例中提供的图数据库数据转化为编程语言数据方法,并具体用于执行上述图数据库数据转化为编程语言数据所述的方法。
前述各个实施例中所述的电子设备可以为计算机。
本领域内的技术人员应明白,本发明的实施例可提供为方法或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (7)
1.一种图数据库数据转化为编程语言数据方法,其特征在于,所述方法包括:
利用元数据读取图数据库中目标节点的属性数据;所述元数据中包括:元数据名称、主节点的属性列表、图数据库中属性名、键值对类型属性名、属性含义、节点所在关联路径列表、节点的一条关联路径和路径的节点列表;
对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据,所述目标节点对应的键值对数据包括键和所述键对应的值;
对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的实体类对象、实体视图类对象、编程语言对象,具体的:根据预设规则对所述键值对数据进行转化,得到所述键值对数据对应的实体类对象,所述预设规则包括限制属性值的类型、属性值的范围、值的个数以及是否有额外信息;根据预设逻辑对所述实体类对象进行转化,得到所述键值对数据对应的实体视图类对象,所述预设逻辑为对实体类对象的一些固定的属性定义一些固定的行为;根据预设的实体视图类和编程语言对象映射策略进行转化,得到所述键值对数据对应的编程语言对象;
所述对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据,包括:
根据所述目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义,将所述键值对类型属性名对应的值作为所述键,将所述图数据库中属性名对应的值作为所述值的内容列表中的一项数据,将所述内容列表和所述属性含义作为所述值。
2.根据权利要求1所述的方法,其特征在于,所述利用元数据读取图数据库中目标节点的属性数据之前,包括:
接收数据读取指令,其中,所述数据读取指令包括所述图数据库中待读取的目标节点。
3.根据权利要求2所述的方法,其特征在于,所述利用元数据读取所述目标节点的属性数据,包括:
利用元数据获取所述目标节点所在的关联路径,并从所述关联路径的节点列表中,读取所述目标节点的属性数据。
4.根据权利要求1-3中任一所述的方法,其特征在于,所述键值对数据为Map数据,所述编程语言对象为Java语言对象。
5.一种图数据库数据转化为编程语言数据装置,其特征在于,所述装置包括:
获取模块,用于利用元数据读取图数据库中目标节点的属性数据;所述元数据中包括:元数据名称、主节点的属性列表、图数据库中属性名、键值对类型属性名、属性含义、节点所在关联路径列表、节点的一条关联路径和路径的节点列表;
第一转化模块,用于对所述目标节点的属性数据进行键值对转化处理,得到所述目标节点对应的键值对数据,所述目标节点对应的键值对数据包括键和所述键对应的值;
第二转化模块,用于对所述键值对数据进行编程语言转化处理,得到所述键值对数据对应的实体类对象、实体视图类对象、编程语言对象;具体的:根据预设规则对所述键值对数据进行转化,得到所述键值对数据对应的实体类对象,所述预设规则包括限制属性值的类型、属性值的范围、值的个数以及是否有额外信息;根据预设逻辑对所述实体类对象进行转化,得到所述键值对数据对应的实体视图类对象,所述预设逻辑为对实体类对象的一些固定的属性定义一些固定的行为;根据预设的实体视图类和编程语言对象映射策略进行转化,得到所述键值对数据对应的编程语言对象;
第一转化模块具体用于:根据所述目标节点的属性数据中的图数据库中属性名、键值对类型的属性名和属性含义,将所述键值对类型属性名对应的值作为所述键,将所述图数据库中属性名对应的值作为所述值的内容列表中的一项数据,将所述内容列表和所述属性含义作为所述值。
6.一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如权利要求1至4中任一所述的方法。
7.一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如权利要求1至4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910873077.2A CN110647568B (zh) | 2019-09-16 | 2019-09-16 | 一种图数据库数据转化为编程语言数据方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910873077.2A CN110647568B (zh) | 2019-09-16 | 2019-09-16 | 一种图数据库数据转化为编程语言数据方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647568A CN110647568A (zh) | 2020-01-03 |
CN110647568B true CN110647568B (zh) | 2023-12-12 |
Family
ID=68992070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910873077.2A Active CN110647568B (zh) | 2019-09-16 | 2019-09-16 | 一种图数据库数据转化为编程语言数据方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647568B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296832A (zh) * | 2021-05-31 | 2021-08-24 | 广州探途网络技术有限公司 | 数据处理方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980213A (zh) * | 2010-11-23 | 2011-02-23 | 中国科学院软件研究所 | 一种基于j2ee的数据持久化方法及系统 |
CN108804510A (zh) * | 2017-04-26 | 2018-11-13 | 三星电子株式会社 | 键值文件系统 |
WO2019015364A1 (zh) * | 2017-07-20 | 2019-01-24 | 华为技术有限公司 | 执行结构化查询语言sql指令的方法和装置 |
CN109446362A (zh) * | 2018-09-05 | 2019-03-08 | 北京费马科技有限公司 | 基于外存的图数据库结构、图数据存储方法、装置 |
-
2019
- 2019-09-16 CN CN201910873077.2A patent/CN110647568B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980213A (zh) * | 2010-11-23 | 2011-02-23 | 中国科学院软件研究所 | 一种基于j2ee的数据持久化方法及系统 |
CN108804510A (zh) * | 2017-04-26 | 2018-11-13 | 三星电子株式会社 | 键值文件系统 |
WO2019015364A1 (zh) * | 2017-07-20 | 2019-01-24 | 华为技术有限公司 | 执行结构化查询语言sql指令的方法和装置 |
CN109446362A (zh) * | 2018-09-05 | 2019-03-08 | 北京费马科技有限公司 | 基于外存的图数据库结构、图数据存储方法、装置 |
Non-Patent Citations (3)
Title |
---|
Java中的Class类说明及用法;Damocles;《CSDN》;20190610;1-2 * |
Neo4j属性图模型简单介绍;星朝;《博客园》;20190730;1-5 * |
实体类转为Map键值对;大卫不加班;《CSDN》;20180801;1-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN110647568A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111160012B (zh) | 医学术语识别方法、装置和电子设备 | |
CN109684607B (zh) | Json数据解析方法、装置、计算机设备和存储介质 | |
CN109582909A (zh) | 网页自动生成方法、装置、电子设备和存储介质 | |
CN108037967A (zh) | 一种基于多父子结构的菜单加载方法以及电子设备 | |
CN113535817B (zh) | 特征宽表生成及业务处理模型的训练方法和装置 | |
CN104320312A (zh) | 网络应用安全测试工具及模糊测试用例生成方法和系统 | |
CN111026753A (zh) | 基于树形结构的标签存储方法及装置 | |
CN111563199B (zh) | 一种数据处理方法及装置 | |
CN110543450A (zh) | 电子文档生成方法、装置、计算机设备及存储介质 | |
CN110717050B (zh) | 一种知识图谱数据库的访问方法及装置 | |
CN109240679A (zh) | 脚本文件的图形化方法及装置 | |
CN110647568B (zh) | 一种图数据库数据转化为编程语言数据方法及装置 | |
CN115098062A (zh) | 一种代码生成方法及装置 | |
CN111078773B (zh) | 一种数据处理方法及装置 | |
CN104123393A (zh) | 一种短信文本的分类方法和系统 | |
CN108196921B (zh) | 单据开发方法、装置、计算机设备和存储介质 | |
CN112948474A (zh) | 数据导出方法、装置、设备及计算机可读存储介质 | |
CN114840634B (zh) | 信息存储方法、装置、电子设备和计算机可读介质 | |
CN109800273A (zh) | 一种数据处理的方法、装置、计算机存储介质及终端 | |
CN112069267A (zh) | 一种数据处理方法和装置 | |
CN114490651A (zh) | 数据存储方法及装置 | |
CN113126981B (zh) | 一种基于Excel的医疗数据处理方法及装置 | |
CN111881220B (zh) | 列表存储下的数据操作方法、装置、电子设备和存储介质 | |
CN115114321A (zh) | 一种动态查询方法及系统 | |
CN113515703A (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 |