CN112765197A - 数据查询方法、装置、计算机设备和存储介质 - Google Patents
数据查询方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112765197A CN112765197A CN202011608863.9A CN202011608863A CN112765197A CN 112765197 A CN112765197 A CN 112765197A CN 202011608863 A CN202011608863 A CN 202011608863A CN 112765197 A CN112765197 A CN 112765197A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- target
- nested
- metadata
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000006243 chemical reaction Methods 0.000 claims description 72
- 238000013507 mapping Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000008520 organization Effects 0.000 description 9
- 238000013499 data model Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001755 vocal effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据查询方法、装置、计算机设备和存储介质。所述方法包括:当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件;将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到;根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象;根据所述目标查询数据输出与所述目标元数据对应的查询结果。上述方案在保证分布式系统正常运行的情况下能借助嵌套型数据库快速得到元数据的查询结果。
Description
技术领域
本申请涉及网络技术领域,特别是涉及一种数据查询方法、装置、计算机设备和存储介质。
背景技术
随着网络技术的发展,在很多应用场景下需要进行信息的查询。
在业务复杂度高的情况下,待查询的数据实体数量通常很多。而对业务进行处理的系统往往是分布式系统。在待查询的数据量大时,分布式系统下的数据查询效率是非常低的。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
基于此,有必要针对上述技术问题,提供一种数据查询方法、装置、计算机设备和存储介质。
一种数据查询方法,所述方法包括:当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件;将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到;根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象;根据所述目标查询数据输出与所述目标元数据对应的查询结果。
在一个实施例中,所述将所述第一查询条件转化为针对嵌套型数据库的第二查询条件,包括:确定所述目标元数据中的共有元数据和特有元数据;所述共有元数据用于被所述关系型数据库中的各个数据实体引用,所述特有元数据为所述关系型数据库中的各个数据实体中特有的元数据;将所述共有元数据对应的第一查询条件转化为针对嵌套型数据库的共有查询条件;获取所述特有元数据对应的主从数据实体关系,根据主从数据实体关系将所述特有元数据对应的第一查询条件转化为针对嵌套型数据库的特有查询条件;根据所述共有查询条件和所述特有查询条件得到所述第二查询条件。
在一个实施例中,所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据,包括:根据所述第二查询条件从所述嵌套型数据库中获取对应的查询文档;从所述查询文档中确定所述共有元数据对应的共有字段以及所述特有元数据对应的特有字段;确定所述共有字段对应的编码,得到共有编码;从所述关系型数据库中获取编码与共有元数据之间的映射关系,根据所述映射关系确定与所述共有编码对应的目标共有元数据;确定所述特有字段对应的目标特有元数据;将所述目标共有元数据和目标特有元数据合并得到所述目标查询数据。
在一个实施例中,所述获取所述特有元数据对应的主从数据实体关系,包括:控制终端界面显示所述特有元数据对应的数据实体;接收针对所述特有元数据对应的数据实体的主实体选择信息和从实体选择信息;根据所述主实体选择信息和所述从实体选择信息确定所述特有元数据对应的数据实体之间的主从关系,得到所述主从数据实体关系。
在一个实施例中,所述嵌套型数据库中的嵌套对象包含对查询权限进行限制的权限控制嵌套对象;所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据,包括:从嵌套型数据库中获取所述权限控制嵌套对象;根据所述权限控制嵌套对象确定与所述第二查询条件对应的目标查询权限;依照所述目标查询权限从所述嵌套型数据库中获取与所述目标嵌套对象对应的目标查询数据。
在一个实施例中,所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据之前,还包括:当接收到全量数据转化指令时,获取预先配置的转化规则,根据所述转化规则将关系型数据库中的各个数据实体对应的数据转化为嵌套型数据库中的数据;当接收到增量数据转化指令时,获取所述关系型数据库中发生变化的目标增量数据实体,从所述关系型数据库中获取与所述目标增量数据存在关联关系的目标关联数据实体,将所述目标增量数据实体和所述目标关联数据实体对应的数据整合为待转化数据,根据所述转化规则将所述待转化数据转化为嵌套型数据库中的数据。
在一个实施例中,所述根据所述转化规则将所述待转化数据转化为嵌套型数据库中的数据,包括:获取所述目标增量数据实体和所述目标关联数据实体之间的目标主从关系;根据所述目标主从关系确定所述待转化数据对应的主对象和从对象,得到待转化嵌套对象;确定所述待转化嵌套对象之间的关联字段;根据所述关联字段和所述目标主从关系确定嵌套型数据库的数据框架;将所述待转化数据进行格式转化,得到已转化数据;将所述已转化数据嵌入到所述数据框架中,得到嵌套型数据库中的数据。
一种数据查询装置,所述装置包括:查询条件确定模块,用于当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件;查询条件转化模块,用于将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到;查询数据获取模块,用于根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象;查询结果输出模块,用于根据所述目标查询数据输出与所述目标元数据对应的查询结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件;将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到;根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象;根据所述目标查询数据输出与所述目标元数据对应的查询结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件;将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到;根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象;根据所述目标查询数据输出与所述目标元数据对应的查询结果。
上述数据查询方法、装置、计算机设备和存储介质,根据目标元数据确定对应的查询条件;将查询条件转化为针对嵌套型数据库的查询条件,基于转化后的查询条件从嵌套型数据库中获取与目标元数据对应的目标查询数据并输出对应的查询结果。在保证分布式系统正常运行的情况下能借助嵌套型数据库快速得到元数据的查询结果。
附图说明
图1为一个实施例中数据查询方法的流程示意图;
图2为一个实施例中查询界面;
图3为一个实施例中关系型数据库的数据实体的结构示意图;
图4为一个实施例中嵌套型数据库的嵌套对象的结构示意图;
图5为一个实施例中关系型数据库中的数据转化为ES中的数据的流程示意图;
图6为另一个实施例中数据查询方法的流程示意图;
图7为再一个实施例中数据查询方法的流程示意图;
图8为一个实施例中数据查询装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种数据查询方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本实施例中,该方法包括以下步骤:
S101,当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件。
其中,元数据(也称为页面元数据)指的是对页面的样式、内容和数据库关联关系进行描述的XML(Extensible Markup Language,可扩展标记语言)文件。在一个实施例中,元数据对应有页面元素。页面元素指的是在页面中显示的文字、图片、音频、动画、视频等。根据页面元数据的类型以及排布方式就可以确定出页面中各个页面元素的展示形式,经过渲染之后即得到对应的页面。
在一个实施例中,终端可以在界面中显示页面元数据对应的页面元素。用户可以基于页面元素触发对页面元数据的操作,所触发的页面元数据即为目标元数据,进而在终端生成查询请求。终端将查询请求发送给服务器。
元数据对应的查询条件可以根据对元数据对应页面元素的选择信息确定。可以将所选择的页面元素确定为查询关键词,此时可以将查询关键词作为查询条件从搜索引擎中搜索到对应的查询结果。因此,根据目标元数据就可以确定出其对应的查询条件,作为第一查询条件。
在一个实施例中,终端在界面上显示的元数据对应的页面元素可以如图2中的查询界面201所示。图2中包含有人事业务单元、挂靠行政组织、人事人员组织、档案类型、档案状态、用工关系类型、任职类型等查询内容,各个查询内容对应有至少一个页面元素,而每一页面元素对应有一个查询条件(筛选条件)。终端可以接收针对各个页面元素的触发信息,进而判定接收到针对对应元数据的查询请求。终端根据查询请求可以分析出对应的查询条件。图2中,任务业务单元对应的“A公司”和档案状态的“生效中”被选中,这两个信息为查询条件。
在一个实施例中,一个目标元数据可以对应有至少一个第一查询条件。
S102,将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到。
嵌套型数据库指的是通过嵌套的方式对数据对象进行存储的数据库,该嵌套型数据库可以为非关系型数据库。在一个实施例中,嵌套型数据库可以为Elastic Search(简称为ES)对应的数据库,ES对数据的记录方式不同于关系型数据库。
数据实体可以指关系型数据库中存储的各个数据表。在多数据表的查询场景中,这些数据表之间存在一对一或者一对多的关系,通常来说,会存在一个主数据实体(主实体)和多个从数据实体(从实体),而这些主实体和从实体之间的关系就可以称为主从关系。每个数据实体可以对应有至少一个字段,而各个字段的字段内容可以为具体的数据库数据。以数据实体为任职经历表为例,该任职经历表中包含有岗位、所属行政组织、级别以及上级行政组织这几个字段,而这几个字段对应的字段内容可以为具体的数据库数据,以某个员工为例,假设其岗位为软件工程师,所属行政组织为软件部,级别为高级,上级行政组织为技术部。则“软件工程师”、“软件部”、“高级”以及“技术部”就为关系型数据库中的具体数据。
在一个实施例中,将第一查询条件转化为针对嵌套型数据库的第二查询条件的实现过程可以为:将第一查询条件进行格式转化,以转化为嵌套型数据库能够识别的信息,得到第二查询条件。
服务器可以根据第二查询条件从嵌套型数据库中获取对应的目标查询数据。
S103,根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象。
其中,嵌套对象为嵌套型数据库中的存储单元。嵌套对象之间存在嵌套关系,例如:A嵌套对象内部嵌套有B嵌套对象,此时,A嵌套对象可以称为大嵌套对象,B嵌套对象可以称为小嵌套对象或者被嵌套对象。某些嵌套对象也可以与其他嵌套对象不存在嵌套或者被嵌套的关系。进一步的,各个嵌套对象记录有对应的数据。在一个实施例中,在进行数据查询时,可以定位到根节点的嵌套对象,将根节点的嵌套对象对应的数据确定为查询到的数据。
每个嵌套对象可以对应有至少一个字段,而各个字段的字段内容可以为具体的数据库数据。以嵌套对象为任职经历嵌套对象为例,该任职经历嵌套对象包含有岗位、所属行政组织、级别以及上级行政组织这几个字段,而这几个字段对应的字段内容可以为具体的数据库数据,以某个员工为例,假设其岗位为软件工程师,所属行政组织为软件部,级别为高级,上级行政组织为技术部。则“软件工程师”、“软件部”、“高级”以及“技术部”就为嵌套型数据库中的具体数据。
在一个实施例中,S103的实现过程可以为:服务器按照嵌套型数据库的转化规则将目标元数据转化为对应的目标嵌套对象,根据第二查询条件从嵌套型数据库中获取与目标嵌套对象中大嵌套对象的第一查询数据以及与大嵌套对象对应的小嵌套对象的第二查询数据,将第一查询数据和第二查询数据确定为目标查询数据。
S104,根据所述目标查询数据输出与所述目标元数据对应的查询结果。
在控制终端在界面中显示对应的查询结果。具体地,可以通过图2中202的搜索结果显示界面显示查询结果。
目前,为了保证多业务的正常运行,许多场景都采用分布式系统,同时将数据存储在关系型数据库中。在关系型数据库中,数据被存储在多个数据库中。如果所要查询的数据量较大时,需要从不同的数据库中分别进行数据查询,遮这样的查询效率是非常低的。发明人发现,如果打破原有的系统架构会无法保证业务的正常运行。上述数据查询方法中,根据目标元数据确定对应的查询条件;将查询条件转化为针对嵌套型数据库的查询条件,基于转化后的查询条件从嵌套型数据库中获取与目标元数据对应的目标查询数据并输出对应的查询结果。嵌套型数据库是旁路于关系型数据库的,不会影响分布式系统往关系型数据库中存储数据,将关系型数据库中的数据同步到嵌套型数据库中即可。本发明实施例是通过旁路的方式实现数据的快捷查询,并不影响原来业务逻辑的实现。在保证分布式系统正常运行的情况下能借助嵌套型数据库快速得到元数据的查询结果。
在一个实施例中,要从嵌套型数据库中进行数据的查询,就需要构造基于嵌套型数据库符合嵌套型数据库的数据格式的查询条件,通过这样的方式才能快速便捷地在嵌套型数据库中定位到所要查询的数据。
在一个实施例中,所述将所述第一查询条件转化为针对嵌套型数据库的第二查询条件,包括:确定所述目标元数据中的共有元数据和特有元数据;所述共有元数据用于被所述关系型数据库中的各个数据实体引用,所述特有元数据为所述关系型数据库中的各个数据实体中特有的元数据;将所述共有元数据对应的第一查询条件转化为针对嵌套型数据库的共有查询条件;获取所述特有元数据对应的主从数据实体关系,根据主从数据实体关系将所述特有元数据对应的第一查询条件转化为针对嵌套型数据库的特有查询条件;根据所述共有查询条件和所述特有查询条件得到所述第二查询条件。
其中,共有元数据也可以称为基础资料,指的是对数据字典或者静态化数据的一种描述,能够被关系型数据库中各个数据实体引用。举例而言,共有元数据指可以是学校信息(如:学校名称、类别、等级等)、专业基础信息(如:专业的学习年限)、公司信息(如:公司名称、类别、是否上市等)等,这些信息会被教育经历、社会经历等数据实体引用。特有元数据指的是各个数据实体特有的数据,例如:教育经历表特有的入学时间、学历等数据,员工档案表特有的所在部门、职位等。
在一个实施例中,在获取到查询请求时,服务器确定对应的目标元数据,对目标元数据进行识别,以确定其中的共有元数据和特有元数据,将共有元数据按照嵌套型数据库的格式进行转化,此时,可以将转化得到的数据确定为针对嵌套型数据库的共有查询条件,将特有元数据按照嵌套型数据库的格式进行转化,此时可以将转化得到的数据确定为针对嵌套型数据库的特有查询条件。进一步地,将共有查询条件和特有查询条件进行合并,就得到第二查询条件。
在一个实施例中,也可以直接将共有查询条件或者特有查询条件作为第二查询条件,以从嵌套型数据库中获取共有元数据或者特有元数据。
在一个实施例中,共有元数据不能作为嵌套对象直接到同步到嵌套型数据库中,因为如果共有元数据发生变更,则在更新嵌套型数据库时会导致所有的数据都需要重新建立索引,这就使得数据的更新工作量特别巨大。因此,可以在嵌套型数据库中记录共有元数据对应的标识信息,而不是记录共有元数据对应的完整数据。基于此,在对共有元数据对应的第一查询条件进行转化时,可以将共有元数据对应的第一查询条件转化为对应的标识信息,将转化得到的标识信息确定为共有查询条件。在一个实施例中,标识信息可以为编码、编号等能起到标识作用的信息。
在一个实施例中,进行查询条件转化的实现过程可以为:1)从查询请求中识别基础资料和主从实体的查询条件;2)将基础资料的查询条件转化成基础资料ID(即基础资料对应的编码);3)将主从实体的查询条件转化成嵌套型数据库对应的查询条件;4)用基础资料ID和主从实体对应的查询条件来在嵌套型数据库中进行数据的查询。
上述实施例中,嵌套型数据库通过不同的方式来区分记录关系型数据库中的共有元数据和特有元数据,即使关系型数据库中的共有元数据发生变更,也不会给嵌套型数据库中的其他嵌套对象造成重大影响,能够保证嵌套型数据库中数据的稳定性和有序性。另外,通过查询条件的转化能够将基于关系型数据库的查询条件转化为基于嵌套型数据库的查询条件,进而保证在嵌套型数据库中数据的有效查询,保证数据的查询效率。
在一个实施例中,所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据,包括:根据所述第二查询条件从所述嵌套型数据库中获取对应的查询文档;从所述查询文档中确定所述共有元数据对应的共有字段以及所述特有元数据对应的特有字段;确定所述共有字段对应的编码,得到共有编码;从所述关系型数据库中获取编码与共有元数据之间的映射关系,根据所述映射关系确定与所述共有编码对应的目标共有元数据;确定所述特有字段对应的目标特有元数据;将所述目标共有元数据和目标特有元数据合并得到所述目标查询数据。
在一个实施例中,可以根据共有查询条件获取对应的嵌套对象,作为共有嵌套对象,根据特有查询条件获取对应的嵌套对象,作为特有嵌套对象,调用嵌套型数据库对应的接口,以根据共有嵌套对象和特有嵌套对象分别从嵌套型数据库的文档中获取到对应的文档信息并整合得到与第二查询条件对应的查询文档。
在一个实施例中,在获取到查询文档后,服务器对查询文档进行字段解析,从解析得到的字段中确定共有字段和特有字段。
在一个实施例中,嵌套型数据库中记录的是共有元数据对应的编码。在获取到共有字段后,共有字段对应的字段内容即为编码,也即共有编码,而该共有编码对应有共有元数据。进一步地,通过编码与共有元数据之间的映射关系可以确定出共有编码对应的共有元数据,作为目标共有元数据。该映射关系可以预先记录在关系型数据库中。在一个实施例中,关系型数据库可以通过独立的数据实体来记录编码与共有元数据之间的映射关系。具体地,关系型数据库可以通过映射表的方式来记录各种共有元数据对应的编码。例如,可以通过映射表来记录行政组织、岗位、用工类型、用工关系、学历等共有元数据对应的编码。
在一个实施例中,将特有字段的字段内容转化为关系型数据库的数据格式,就可以得到对应的特有元数据,作为目标特有元数据。
进一步地,将所得到的目标共有元数据和目标特有元数据按照关系型数据库中元数据之间的关联关系进行合并,合并得到的结果就可以作为目标查询数据。
在一个实施例中,基于嵌套型数据库获取目标查询数据的过程可以为:在获取到嵌套型数据库返回的查询文档后执行以下步骤:1)解析查询文档;2)识别主从实体的模型字段和基础资料的字段;3)从关系型数据库的基础资料模型中查询基础资料字段对应的详细字段;4)从嵌套型数据库中搜索主从实体的模型字段对应的数据;5)将嵌套型数据库的搜索结果和基础资料的详细字段合并,得到目标查询数据。
上述实施例中,根据嵌套型数据库中获取的查询文件对共有字段和特有字段进行区分处理,以针对性地转化得到目标共有元数据和目标特有元数据,进而得到目标查询数据。
在一个实施例中,可以直接由服务器访问所配置的嵌套型数据库以获取目标查询数据。也可以由服务器触发能够访问嵌套型数据库的搜索引擎,由搜索引擎访问嵌套型数据库以获取目标查询数据。进一步地,服务器或者搜索引擎可以调用嵌套型数据库的搜索接口(API,Application Programming Interface,应用程序接口),进而在嵌套型数据库中定位符合第二查询条件的数据,作为所查询的结果。
在一个实施例中,所述获取所述特有元数据对应的主从数据实体关系,包括:控制终端界面显示所述特有元数据对应的数据实体;接收针对所述特有元数据对应的数据实体的主实体选择信息和从实体选择信息;根据所述主实体选择信息和所述从实体选择信息确定所述特有元数据对应的数据实体之间的主从关系,得到所述主从数据实体关系。
其中,主实体选择信息的产生过程可以为:接收对某个或某些数据实体的选中信息并将所选中的数据实体确定为主实体,据此得到主实体选择信息。同理,从实体选择信息的产生过程可以为:接收对某个或某些数据实体的选中信息并将所选中的数据实体确定为从实体,据此得到从实体选择信息。基于主实体选择信息和从实体选择信息,服务器能区分出数据实体中的主实体和从实体,同时,能够获知这些数据实体之间的主从关系,例如:能够获知A数据实体为B数据实体的从实体。
在一个实施例中,服务器可以控制终端显示对多个数据实体进行查询配置的界面,这个界面上会配置查询列表页面。假设关系型数据库中的数据实体为任职经历表、员工档案表和教育经历表,则根据用户对界面的选择触发操作可以确定主实体是员工档案表,从实体是教育经历表和任职资格表。
在一个实施例中,关系型数据库中的主从数据实体关系可以对应为嵌套型数据库中的嵌套关系。主实体转化到嵌套型数据库中的嵌套对象可以称为主对象,从实体转化到嵌套型数据库中的嵌套对象可以称为从对象。
在一个实施例中,主从关系包括一对一(1:1)和一对多(1:N)的关系,其中,N为大于1的自然数,其大小可以根据实际情况确定。在进行数据转化的过程中,需要对主对象、1:1的从对象以及1:N的从对象做区分。假设关系型数据库中,员工档案表和任职经历表之间是1:1的关系,而员工档案表和教育经历表之间是1:N的关系,这些表之间的对应关系如图3所示。依照主从关系将这些表转化到嵌套型数据库得到的各个嵌套对象之间的结构示意图如图4所示。图4中员工档案嵌套对象嵌套有N个教育经历嵌套对象和1个任职经历嵌套对象,实现了对主对象、1:1的从对象以及1:N的从对象的区分。
上述实施例中,根据所接收的选择信息来确定特有元数据对应的数据实体之间的主从关系,能够使得关系型数据库中各个数据实体的排布更为有序,也便于后续向嵌套型数据库的转化。
在一个实施例中,可以在进行元数据查询之前确定关系型数据库中各个数据实体之间的主从关系,进而基于该主从关系完成数据向嵌套型数据库的转化。进一步地,控制终端界面显示关系型数据库中的各个元数据;接收针对各个元数据的主实体选择信息和从实体选择信息;根据主实体选择信息和从实体选择信息确定关系型数据库中各个元数据对应的数据实体之间的主从关系,基于该主从关系将关系型数据库中的数据转化为嵌套型数据库中的数据。
在一个实施例中,服务器可以根据需要设置特定数据的查询权限,以保证数据的安全性。因此,在从嵌套型数据库中获取目标查询数据时,也需要基于所配置的权限来进行。
在一个实施例中,所述嵌套型数据库中的嵌套对象包含对查询权限进行限制的权限控制嵌套对象;所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据,包括:从嵌套型数据库中获取所述权限控制嵌套对象;根据所述权限控制嵌套对象确定与所述第二查询条件对应的目标查询权限;依照所述目标查询权限从所述嵌套型数据库中获取与所述目标嵌套对象对应的目标查询数据。
在一个实施例中,根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据之前,还包括:获取关系型数据库中的权限控制表,将所述权限控制表中的权限控制字段转化为针对嵌套型数据库的数据,以得到权限控制嵌套对象。将关系型数据库中的权限控制表转化为嵌套型数据库中的权限控制嵌套对象的过程可以如图3和图4所示。
上述实施例中,基于权限控制嵌套对象从嵌套型数据库中获取有权限访问的数据,进而将所获取的结果确定为目标查询数据。能够有效保证目标查询数据是终端有权限查询的数据,不会造成敏感数据的泄露,保证数据查询的安全可靠。
在一个实施例中,所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据之前,还包括:当接收到全量数据转化指令时,获取预先配置的转化规则,根据所述转化规则将关系型数据库中的各个数据实体对应的数据转化为嵌套型数据库中的数据。
其中,转化规则指的是将关系型数据库中的数据转化为嵌套型数据库中的数据所要遵循的规则。该转化规则可以通过关系型数据库中的数据与嵌套型数据库中的数据之间的映射关系来实现。
上述实施例中,在全量数据转化指令的触发下,确定关系型数据库的所有存量数据,将这些存量数据转化为嵌套型数据库中的数据。可以应用于嵌套型数据库的初始化过程,能够将关系型数据库中的数据同步到嵌套型数据库中。
在一个实施例中,所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据之前,还包括:当接收到增量数据转化指令时,获取所述关系型数据库中发生变化的目标增量数据实体,从所述关系型数据库中获取与所述目标增量数据存在关联关系的目标关联数据实体,将所述目标增量数据实体和所述目标关联数据实体对应的数据整合为待转化数据,根据所述转化规则将所述待转化数据转化为嵌套型数据库中的数据。
上述实施例中,在增量数据转化指令的触发下,确定关系型数据库中与变化数据实体相关联的数据实体,进而将这些数据实体一起转化为嵌套型数据库中的数据,由于嵌套型数据库是将关系型数据库中存在关联的数据实体作为一个整体嵌套对象进行记录的,因此,能在关系型数据库发生数据变化时,针对性地调整嵌套型数据库中完整的嵌套对象。
在一个实施例中,嵌套型数据库通过ES集群(ES Cluster)来记录数据。将关系型数据库中的数据转化为ES中的数据的过程可以如图5所示。具体的实现过程可以为:
在对ES集群进行初始化时,服务器触发ES处理器(ES Notifier)从关系型数据库(DB,data base)中获取所有数据。关系型数据库将所获取的全量数据整合为消息文件(Message File),并将消息文件导入到ES处理器中,由ES处理器将消息文件进行转化后批量插入到ES集群中。
完成初始化后,如果发生新的事件(Action/Event Message)导致关系型数据库中的数据发生变化时,服务器通过MQ(Message Queue,消息队列)的方式向ES处理器进行消息通知,以触发ES处理器从关系型数据库中获取发生的增量数据以及与该增量数据相关的数据,根据这些数据的关联关系整合得到待转化数据,对待转化数据进行转化后作为一个整体更新到ES集群中。
在一个实施例中,所述根据所述转化规则将所述待转化数据转化为嵌套型数据库中的数据,包括:获取所述目标增量数据实体和所述目标关联数据实体之间的目标主从关系;根据所述目标主从关系确定所述待转化数据对应的主对象和从对象,得到待转化嵌套对象;确定所述待转化嵌套对象之间的关联字段;根据所述关联字段和所述目标主从关系确定嵌套型数据库的数据框架;将所述待转化数据进行格式转化,得到已转化数据;将所述已转化数据嵌入到所述数据框架中,得到嵌套型数据库中的数据。
其中,关联字段指的是同时存在于至少两个待转化嵌套对象中的某个字段,也可以是存在于至少两个待转化嵌套对象中存在关联关系的至少两个字段。
在一个实施例中,待转化嵌套对象之间的关联字段可以由关系型数据库中各个数据实体之间的关联字段确定。以员工档案表和教育经历表这两个数据实体为例,可以将员工姓名和学生姓名作为这两个数据实体之间的关联字段,进一步地,可以将这两个字段作为对应的待转化嵌套对象之间的关联字段。
在一个实施例中,根据所述转化规则将关系型数据库中的各个数据实体对应的数据转化为嵌套型数据库中的数据,包括:获取关系型数据库中的各个数据之间的目标主从关系;根据目标主从关系确定关系型数据库中的各个数据对应的主对象和从对象,得到待转化嵌套对象;确定待转化嵌套对象之间的关联字段;根据关联字段和目标主从关系确定嵌套型数据库的数据框架;将关系型数据库中的各个数据进行格式转化,得到已转化数据;将已转化数据嵌入到所述数据框架中,得到嵌套型数据库中的数据。
上述实施例中,根据关系型数据库中数据实体之间的主从关系以及关联字段确定嵌套型数据库的数据框架,该数据框架能够表征各个嵌套对象在嵌套型数据库中的位置关系,使得在填充上已转化数据后的嵌套型数据库处于较为有序的状态,可以提高数据的查询效率。
在一个实施例中,如图6所示,提供了一种数据查询方法,以该方法应用于服务器为例进行说明,包括以下步骤:
S601,控制终端界面显示关系型数据库中的各个元数据。
S602,接收针对关系型数据库中的各个元数据的主实体选择信息和从实体选择信息。
S603,根据主实体选择信息和从实体选择信息确定关系型数据库中的各个元数据对应的数据实体之间的主从关系。
S604,当接收到全量数据转化指令时,获取预先配置的转化规则,根据转化规则和数据实体之间的主从关系将关系型数据库中的各个数据转化为嵌套型数据库中的数据。具体包括:获取关系型数据库中的各个数据之间的第一目标主从关系;根据第一目标主从关系确定关系型数据库中的各个数据对应的主对象和从对象,得到第一待转化嵌套对象;确定第一待转化嵌套对象之间的第一关联字段;根据第一关联字段和第一目标主从关系确定嵌套型数据库的第一数据框架;将关系型数据库中的各个数据进行格式转化,得到第一已转化数据;将第一已转化数据嵌入到第一数据框架中,得到嵌套型数据库中的数据。
S605,获取关系型数据库中发生变化的目标增量数据实体,从关系型数据库中获取与目标增量数据存在关联关系的目标关联数据实体,将目标增量数据实体和目标关联数据实体对应的数据整合为待转化数据。
S606,当接收到增量数据转化指令时,根据转化规则和数据实体之间的主从关系将待转化数据转化为嵌套型数据库中的数据。具体包括:获取目标增量数据实体和目标关联数据实体之间的第二目标主从关系;根据第二目标主从关系确定待转化数据对应的主对象和从对象,得到第二待转化嵌套对象;确定第二待转化嵌套对象之间的第二关联字段;根据第二关联字段和第二目标主从关系确定嵌套型数据库的第二数据框架;将待转化数据进行格式转化,得到第二已转化数据;将第二已转化数据嵌入到第二数据框架中,得到嵌套型数据库中的数据。
S607,获取关系型数据库中的权限控制表,将权限控制表中的权限控制字段转化为针对嵌套型数据库的数据,以得到权限控制嵌套对象。
S608,当获取到针对目标元数据的查询请求时,根据目标元数据确定对应的第一查询条件。
S609,确定目标元数据中的共有元数据和特有元数据。
S610,将共有元数据对应的第一查询条件转化为针对嵌套型数据库的共有查询条件。
S611,将特有元数据对应的第一查询条件转化为针对嵌套型数据库的特有查询条件。
S612,根据共有查询条件和特有查询条件得到第二查询条件。
S613,从嵌套型数据库中获取权限控制嵌套对象;根据权限控制嵌套对象确定与第二查询条件对应的目标查询权限。
S614,依照目标查询权限从嵌套型数据库中获取第二查询条件对应的查询文档。
S615,从查询文档中确定共有元数据对应的共有字段以及特有元数据对应的特有字段。
S616,确定共有字段对应的编码,得到共有编码;根据关系型数据库中的映射关系确定与共有编码对应的目标共有元数据。
S617,确定特有字段对应的目标特有元数据。
S618,将目标共有元数据和目标特有元数据合并得到目标查询数据。
S619,根据目标查询数据输出与目标元数据对应的查询结果。
上述数据查询方法中,根据目标元数据确定对应的查询条件;将查询条件转化为针对嵌套型数据库的查询条件,基于转化后的查询条件从嵌套型数据库中获取与目标元数据对应的目标查询数据并输出对应的查询结果。在保证分布式系统正常运行的情况下能借助嵌套型数据库快速得到元数据的查询结果。
本申请还提供一种应用场景,该应用场景应用上述的数据查询方法。具体地,该数据查询方法在该应用场景的应用如下:
服务器通过动态元数据模型构建列表页面的查询条件、查询展示的列字段,能够搭建具有响应拖、拉、拽等操作能力的查询列表页面。用户可以基于该查询列表页面输入查询条件并查看到与查询条件匹配的数据查询结果。
在进行数据查询之前,服务器可以先对关系型数据库中的数据实体进行配置。具体地,服务器控制终端显示对多个实体的查询配置关系进行配置的配置界面,通过该配置界面,终端接收对关系型数据库中的部分或全部数据实体的主从关系的配置信息,并据此得到对应的主从数据实体关系。服务器还可以预先配置主从实体之间的关联字段。另外,服务器可以控制终端显示查询结果字段配置页面,通过该配置页面,终端可以接收对查询结果字段等的配置信息,以控制查询结果的展示方式。
在完成对关系型数据库中的数据实体的配置之后,服务器可以将查询结果字段、基础资料ID、权限控制字段等对应的数据实体作为用于Elastic Search建模的元数据。Elastic Search客户端按照字段转化规则,关系型数据库中的元数据转换成ElasticSearch的数据模型。
模型建好之后,就可以把关系型数据库中主从实体的数据实时同步到ElasticSearch中。具体的同步流程如下:
在对ES集群进行初始化时,服务器触发ES处理器从关系型数据库中获取所有数据。关系型数据库将所获取的全量数据整合为消息文件,并将消息文件导入到ES处理器中,由ES处理器将消息文件进行转化后批量插入到ES集群中。
完成初始化后,如果发生新的事件导致关系型数据库中的数据发生变化时,服务器通过MQ的方式向ES处理器进行消息通知,以触发ES处理器从关系型数据库中获取发生的增量数据以及与该增量数据相关的数据,根据这些数据的关联关系整合得到待转化数据,对待转化数据进行转化后作为一个整体更新到ES集群中。
图7在一个实施例中数据查询方法的流程示意图,其中,ES SDK指的是ES客户端。在某些实施例中,元数据转换引擎、ES SDK以及ES存储空间可以通过一个服务器实现。以下以元数据转换引擎、ES SDK以及ES存储空间通过独立的计算机设备实现为例将具体过程描述如下:
1、终端(也可以称为前端)在接收到输入的查询条件时,向元数据转换引擎发送查询请求。触发元数据转换引擎执行以下步骤:
1.1查询条件对应的元数据中识别基础资料、主从实体的查询条件;
1.2将基础资料的查询条件转换成基础资料ID;
1.3将主从实体的查询条件转换成ES模型对应的查询条件。
2、转换引擎转化查询条件和权限控制条件,并触发ES SDK执行以下步骤:
2.1根据基础资料ID和主从实体对应的查询条件构造ES的查询条件;
2.2识别主实体对应的模型;
2.3识别从实体对应的嵌套对象模型。
3、ES SDK调用ES存储空间的搜索API并触发ES存储空间执行以下步骤:
3.1查找倒排文件;
3.2排序;
3.3分页。
在一个实施例中,在完成数据实体转换后,ES会进行倒排、排序、分页等格式上的处理,以提高搜索效率。
4、ES存储空间向ES SDK返回ES文档,并触发ES SDK执行以下步骤:
4.1解析ES文档;
4.2识别主从实体的模型字段和基础资料的字段;
4.3从关系型数据库的基础资料模型中查询基础资料字段对应的详细字段;
4.4从嵌套型数据库中搜索主从实体的模型字段对应的数据;
4.5将嵌套型数据库的搜索结果和基础资料的详细字段合并,得到查询结果。
5、元数据转化引擎转化查询结果。
6、元数据转化引擎将转化后的查询结果传送给终端,以触发终端在界面中显示查询结果。
在HR(人事)等系统中,有很多列表查询的页面,这些列表查询对应的实体数量,随着业务的复杂,这些实体数量通常很多。另外,这些系统往往是分布式系统,这些查询对应的实体可能存储在不同的数据库中。用户在列表查询页面输入这些实体的查询条件,获得和这些查询条件匹配的结果。目前主要采用以下两种方式来进行数据的查询:
1、后端开发人员根据每一个需求的查询条件、多个实体的关系,开发一个实现查询的接口。因为涉及到跨数据库的多实体查询、跨数据库的基础资料查询,为每一个查询列表去开发这样一个功能,开发成本较高,可扩展性比较差。
2、借助一些计算框架把跨数据的多实体数据,加载到内存或者磁盘,通过计算引擎来查询数据。这种方式在数据规模大、实体数据比较多的时候,出现了性能瓶颈,一次查询耗时比较长,影响用户体验。
上述实施例提供的数据查询方法有效解决了上述技术问题,同时至少具有以下有益效果:
1)多数据表的关联查询效率高,在实体数量比较多、数据规模比较大时,能在几百毫秒内返回查询结果。
2)扩展性强,因为列表的查询配置的能力通过动态元数据模型的方式使得系统构建过程具有低代码的优势,能够通过简单拖拉拽的方式配置一个复杂的查询列表页面,极大的提高了开发效率。
3)把存储在多个关系型数据库的多实体数据同步到Elastic Search中,选用Elastic Search作为数据存储的载体,借助Elastic Search强大的搜索能力来做复杂查询条件的搜索。
4)借助从元数据模型到Elastic Search模型的转换引擎,能够把关系型数据库汇总的元数据转换成Elastic Search的建模元数据,也能够把Elastic Search搜索的结果转换成动态领域模型,即通过元数据实现对多类型的页面元素的显示。
5)仅将基础资料的标识信息同步多实体的模型数据中,在基础资料变更时不需要对所有数据重新建立索引,有效保证了Elastic Search中数据的稳定性和有序性。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于与上述实施例中的数据查询方法相同的思想,本发明还提供数据查询装置,该装置可用于执行上述数据查询方法。为了便于说明,数据查询装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在一个实施例中,如图8所示,提供了一种数据查询装置800,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:查询条件确定模块801、查询条件转化模块802、查询数据获取模块803和查询结果输出模块804,其中:
查询条件确定模块801,用于当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件。
查询条件转化模块802,用于将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到。
查询数据获取模块803,用于根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象。
查询结果输出模块804,用于根据所述目标查询数据输出与所述目标元数据对应的查询结果。
上述数据查询装置中,在保证分布式系统正常运行的情况下能借助嵌套型数据库快速得到元数据的查询结果。
在一个实施例中,查询条件转化模块,包括:元数据确定子模块,用于确定所述目标元数据中的共有元数据和特有元数据;所述共有元数据用于被所述关系型数据库中的各个数据实体引用,所述特有元数据为所述关系型数据库中的各个数据实体中特有的元数据;共有查询条件转化子模块,用于将所述共有元数据对应的第一查询条件转化为针对嵌套型数据库的共有查询条件;特有查询条件转化子模块,用于获取所述特有元数据对应的主从数据实体关系,根据主从数据实体关系将所述特有元数据对应的第一查询条件转化为针对嵌套型数据库的特有查询条件;查询条件确定子模块,用于根据所述共有查询条件和所述特有查询条件得到所述第二查询条件。
在一个实施例中,查询数据获取模块,包括:查询文档获取子模块,用于根据所述第二查询条件从所述嵌套型数据库中获取对应的查询文档;字段确定子模块,用于从所述查询文档中确定所述共有元数据对应的共有字段以及所述特有元数据对应的特有字段;编码确定子模块,用于确定所述共有字段对应的编码,得到共有编码;映射关系获取子模块,用于从所述关系型数据库中获取编码与共有元数据之间的映射关系,根据所述映射关系确定与所述共有编码对应的目标共有元数据;特有元数据确定子模块,用于确定所述特有字段对应的目标特有元数据;元数据合并子模块,用于将所述目标共有元数据和目标特有元数据合并得到所述目标查询数据。
在一个实施例中,特有查询条件转化子模块,包括:元数据显示单元,用于控制终端界面显示所述特有元数据对应的数据实体;选择信息接收单元,用于接收针对所述特有元数据对应的数据实体的主实体选择信息和从实体选择信息;主从关系确定单元,用于根据所述主实体选择信息和所述从实体选择信息确定所述特有元数据对应的数据实体之间的主从关系,得到所述主从数据实体关系。
在一个实施例中,所述嵌套型数据库中的嵌套对象包含对查询权限进行限制的权限控制嵌套对象;查询数据获取模块,包括:权限对象获取子模块,用于从嵌套型数据库中获取所述权限控制嵌套对象;查询权限确定子模块,用于根据所述权限控制嵌套对象确定与所述第二查询条件对应的目标查询权限;查询数据获取子模块,用于依照所述目标查询权限从所述嵌套型数据库中获取与所述目标嵌套对象对应的目标查询数据。
在一个实施例中,装置还包括:全量转化模块,用于当接收到全量数据转化指令时,获取预先配置的转化规则,根据所述转化规则将关系型数据库中的各个数据实体对应的数据转化为嵌套型数据库中的数据;增量转化模块,用于当接收到增量数据转化指令时,获取所述关系型数据库中发生变化的目标增量数据实体,从所述关系型数据库中获取与所述目标增量数据存在关联关系的目标关联数据实体,将所述目标增量数据实体和所述目标关联数据实体对应的数据整合为待转化数据,根据所述转化规则将所述待转化数据转化为嵌套型数据库中的数据。
在一个实施例中,增量转化模块,包括:主从关系确定子模块,用于获取所述目标增量数据实体和所述目标关联数据实体之间的目标主从关系;嵌套对象确定子模块,用于根据所述目标主从关系确定所述待转化数据对应的主对象和从对象,得到待转化嵌套对象;关联字段确定子模块,用于确定所述待转化嵌套对象之间的关联字段;数据框架确定子模块,用于根据所述关联字段和所述目标主从关系确定嵌套型数据库的数据框架;格式转化子模块,用于将所述待转化数据进行格式转化,得到已转化数据;数据嵌入子模块,用于将所述已转化数据嵌入到所述数据框架中,得到嵌套型数据库中的数据。
关于数据查询装置的具体限定可以参见上文中对于数据查询方法的限定,在此不再赘述。上述数据查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据实体、嵌套对象等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据查询方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据查询方法,其特征在于,所述方法包括:
当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件;
将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到;
根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象;
根据所述目标查询数据输出与所述目标元数据对应的查询结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一查询条件转化为针对嵌套型数据库的第二查询条件,包括:
确定所述目标元数据中的共有元数据和特有元数据;所述共有元数据用于被所述关系型数据库中的各个数据实体引用,所述特有元数据为所述关系型数据库中的各个数据实体中特有的元数据;
将所述共有元数据对应的第一查询条件转化为针对嵌套型数据库的共有查询条件;
获取所述特有元数据对应的主从数据实体关系,根据主从数据实体关系将所述特有元数据对应的第一查询条件转化为针对嵌套型数据库的特有查询条件;
根据所述共有查询条件和所述特有查询条件得到所述第二查询条件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据,包括:
根据所述第二查询条件从所述嵌套型数据库中获取对应的查询文档;
从所述查询文档中确定所述共有元数据对应的共有字段以及所述特有元数据对应的特有字段;
确定所述共有字段对应的编码,得到共有编码;
从所述关系型数据库中获取编码与共有元数据之间的映射关系,根据所述映射关系确定与所述共有编码对应的目标共有元数据;
确定所述特有字段对应的目标特有元数据;
将所述目标共有元数据和目标特有元数据合并得到所述目标查询数据。
4.根据权利要求2所述的方法,其特征在于,所述获取所述特有元数据对应的主从数据实体关系,包括:
控制终端界面显示所述特有元数据对应的数据实体;
接收针对所述特有元数据对应的数据实体的主实体选择信息和从实体选择信息;
根据所述主实体选择信息和所述从实体选择信息确定所述特有元数据对应的数据实体之间的主从关系,得到所述主从数据实体关系。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述嵌套型数据库中的嵌套对象包含对查询权限进行限制的权限控制嵌套对象;所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据,包括:
从嵌套型数据库中获取所述权限控制嵌套对象;
根据所述权限控制嵌套对象确定与所述第二查询条件对应的目标查询权限;
依照所述目标查询权限从所述嵌套型数据库中获取与所述目标嵌套对象对应的目标查询数据。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据之前,还包括:
当接收到全量数据转化指令时,获取预先配置的转化规则,根据所述转化规则将关系型数据库中的各个数据实体对应的数据转化为嵌套型数据库中的数据;
当接收到增量数据转化指令时,获取所述关系型数据库中发生变化的目标增量数据实体,从所述关系型数据库中获取与所述目标增量数据存在关联关系的目标关联数据实体,将所述目标增量数据实体和所述目标关联数据实体对应的数据整合为待转化数据,根据所述转化规则将所述待转化数据转化为嵌套型数据库中的数据。
7.根据权利要求6所述的方法,其特征在于,所述根据所述转化规则将所述待转化数据转化为嵌套型数据库中的数据,包括:
获取所述目标增量数据实体和所述目标关联数据实体之间的目标主从关系;
根据所述目标主从关系确定所述待转化数据对应的主对象和从对象,得到待转化嵌套对象;
确定所述待转化嵌套对象之间的关联字段;
根据所述关联字段和所述目标主从关系确定嵌套型数据库的数据框架;
将所述待转化数据进行格式转化,得到已转化数据;
将所述已转化数据嵌入到所述数据框架中,得到嵌套型数据库中的数据。
8.一种数据查询装置,其特征在于,所述装置包括:
查询条件确定模块,用于当获取到针对目标元数据的查询请求时,根据所述目标元数据确定对应的第一查询条件;
查询条件转化模块,用于将所述第一查询条件转化为针对嵌套型数据库的第二查询条件;所述嵌套型数据库中的数据为根据关系型数据库中数据实体之间的主从关系将数据转化得到;
查询数据获取模块,用于根据所述第二查询条件从所述嵌套型数据库中获取与目标嵌套对象对应的目标查询数据;所述目标嵌套对象为由所述目标元数据转化得到的针对所述嵌套型数据库的查询对象;
查询结果输出模块,用于根据所述目标查询数据输出与所述目标元数据对应的查询结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011608863.9A CN112765197B (zh) | 2020-12-30 | 2020-12-30 | 数据查询方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011608863.9A CN112765197B (zh) | 2020-12-30 | 2020-12-30 | 数据查询方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765197A true CN112765197A (zh) | 2021-05-07 |
CN112765197B CN112765197B (zh) | 2024-04-30 |
Family
ID=75695858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011608863.9A Active CN112765197B (zh) | 2020-12-30 | 2020-12-30 | 数据查询方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765197B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420050A (zh) * | 2021-06-28 | 2021-09-21 | 平安普惠企业管理有限公司 | 数据查询管理方法、装置、计算机设备及可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054812A1 (en) * | 2011-08-22 | 2013-02-28 | Don DeCoteau | System and method for dynamically assembling an application on a client device |
CN103810275A (zh) * | 2014-02-13 | 2014-05-21 | 清华大学 | 用于非关系与关系型数据库间数据交互的方法和装置 |
CN105681477A (zh) * | 2016-04-08 | 2016-06-15 | 四川师范大学 | 一种数据访问方法和一种服务器 |
CN105868411A (zh) * | 2016-04-27 | 2016-08-17 | 国网上海市电力公司 | 一种非关系型与关系型数据库一体化数据查询方法与系统 |
CN106126543A (zh) * | 2016-06-15 | 2016-11-16 | 清华大学 | 一种关系型数据库到MongoDB的模型转换和数据迁移方法 |
CN106372176A (zh) * | 2016-08-30 | 2017-02-01 | 东华大学 | 一种支持对嵌套文档进行统一sql查询的方法 |
CN106897322A (zh) * | 2015-12-21 | 2017-06-27 | 中国移动通信集团山西有限公司 | 一种数据库和文件系统的访问方法和装置 |
CN110532247A (zh) * | 2019-08-28 | 2019-12-03 | 北京皮尔布莱尼软件有限公司 | 数据迁移方法和数据迁移系统 |
US20200226182A1 (en) * | 2014-02-07 | 2020-07-16 | Amazon Technologies, Inc. | Forming a document collection in a document management and collaboration system |
CN112084403A (zh) * | 2020-08-26 | 2020-12-15 | 深圳市华曦达科技股份有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-30 CN CN202011608863.9A patent/CN112765197B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054812A1 (en) * | 2011-08-22 | 2013-02-28 | Don DeCoteau | System and method for dynamically assembling an application on a client device |
US20200226182A1 (en) * | 2014-02-07 | 2020-07-16 | Amazon Technologies, Inc. | Forming a document collection in a document management and collaboration system |
CN103810275A (zh) * | 2014-02-13 | 2014-05-21 | 清华大学 | 用于非关系与关系型数据库间数据交互的方法和装置 |
CN106897322A (zh) * | 2015-12-21 | 2017-06-27 | 中国移动通信集团山西有限公司 | 一种数据库和文件系统的访问方法和装置 |
CN105681477A (zh) * | 2016-04-08 | 2016-06-15 | 四川师范大学 | 一种数据访问方法和一种服务器 |
CN105868411A (zh) * | 2016-04-27 | 2016-08-17 | 国网上海市电力公司 | 一种非关系型与关系型数据库一体化数据查询方法与系统 |
CN106126543A (zh) * | 2016-06-15 | 2016-11-16 | 清华大学 | 一种关系型数据库到MongoDB的模型转换和数据迁移方法 |
CN106372176A (zh) * | 2016-08-30 | 2017-02-01 | 东华大学 | 一种支持对嵌套文档进行统一sql查询的方法 |
CN110532247A (zh) * | 2019-08-28 | 2019-12-03 | 北京皮尔布莱尼软件有限公司 | 数据迁移方法和数据迁移系统 |
CN112084403A (zh) * | 2020-08-26 | 2020-12-15 | 深圳市华曦达科技股份有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
AARON SCHRAM 等: "MySQL to NoSQL: data modeling challenges in supporting scalability", 《SPLASH \'12: PROCEEDINGS OF THE 3RD ANNUAL CONFERENCE ON SYSTEMS, PROGRAMMING, AND APPLICATIONS: SOFTWARE FOR HUMANITY》, 19 October 2012 (2012-10-19), pages 191 * |
薛皓: "基于分布式数据库中间件的混合类型数据管理研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 05, 15 May 2017 (2017-05-15), pages 138 - 718 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420050A (zh) * | 2021-06-28 | 2021-09-21 | 平安普惠企业管理有限公司 | 数据查询管理方法、装置、计算机设备及可读存储介质 |
CN113420050B (zh) * | 2021-06-28 | 2023-08-25 | 深圳华科讯通科技有限公司 | 数据查询管理方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112765197B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2014233672B2 (en) | System for metadata management | |
US10180984B2 (en) | Pivot facets for text mining and search | |
CN110674228A (zh) | 数据仓库模型构建和数据查询方法、装置及设备 | |
CN108052618B (zh) | 数据管理方法及装置 | |
JP5939123B2 (ja) | 実行制御プログラム、実行制御方法および情報処理装置 | |
CN112949276A (zh) | 报表生成方法、装置、电子设备及存储介质 | |
CN112182045B (zh) | 元数据管理方法、装置、计算机设备及存储介质 | |
Qureshi et al. | Towards efficient big data and data analytics: a review | |
CN114385620A (zh) | 数据处理方法、装置、设备及可读存储介质 | |
CN111090803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
KR20160117965A (ko) | NoSQL 모델 생성 방법 및 그 장치 | |
CN112765197B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN111881660A (zh) | 报表生成方法、装置、计算机设备和存储介质 | |
US7657528B2 (en) | Method, computer program product and article of manufacture for providing service-to-role assignment to launch application services in role-based computer system | |
CN114637866B (zh) | 数字化新媒体的信息管理方法及装置 | |
CN110879799A (zh) | 管理技术元数据的方法和装置 | |
US11874849B2 (en) | Systems and methods for creating a data layer based on content from data sources | |
CN105426541B (zh) | 一种通用数据的存储方法和装置 | |
Gašpar et al. | Integrating Two Worlds: Relational and NoSQL | |
Tovernić et al. | Solution for detecting sensitive data inside a data lake | |
CN114553954B (zh) | 信息推送方法、非易失性存储介质及电子设备 | |
JP7209127B1 (ja) | 経営情報システム | |
Harvey et al. | Transplant2mongo: Python scripts that insert organ procurement and transplantation network (optn) data in mongodb | |
McCarthy et al. | Looking beyond the archive: Utilizing encoded archival context in a broader societal context | |
CN117251458A (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 |