CN116010521A - 一种数据服务方法及相关设备 - Google Patents
一种数据服务方法及相关设备 Download PDFInfo
- Publication number
- CN116010521A CN116010521A CN202211741461.5A CN202211741461A CN116010521A CN 116010521 A CN116010521 A CN 116010521A CN 202211741461 A CN202211741461 A CN 202211741461A CN 116010521 A CN116010521 A CN 116010521A
- Authority
- CN
- China
- Prior art keywords
- metadata
- query
- target
- metadata model
- model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000005457 optimization Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 229910021532 Calcite Inorganic materials 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供了一种数据服务方法及相关设备,应用于元数据服务系统,所述元数据服务系统中分布式存储了元数据模型以及与所述元数据模型对应的索引信息。该数据服务方法包括:获取与待更新的第一元数据模型对应的第二元数据模型;基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息。
Description
技术领域
本说明书一个或多个实施例涉及元数据技术领域,尤其涉及一种数据服务方法及相关设备。
背景技术
元数据是一种描述数据的数据,在企业中,无论哪里有数据,都有相应的元数据。只有存在完整而准确的元数据,才能更好地理解数据并充分利用数据的价值。大部分互联网业务以及决策往往依赖数据服务的支撑,并且,伴随着如今愈发复杂的业务发展,对不同平台的数据的组织与应用有着更高的要求。
因此,如何针对不同平台的海量数据,向用户提供高效、便捷的数据服务是亟待解决的问题。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据服务方法及相关设备。
为实现上述目的,本说明书一个或多个实施例提供了一种数据服务方法,应用于元数据服务系统,所述元数据服务系统中分布式存储了元数据模型以及与所述元数据模型对应的索引信息;所述方法包括:
获取与待更新的第一元数据模型对应的第二元数据模型;
基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息。
在又一示出的实施方式中,所述元数据服务系统在分布式存储元数据模型以及与所述元数据模型对应的索引信息时所采用的数据库类型为Key-value数据库。
在又一示出的实施方式中,所述基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息,包括:
基于分布式锁的控制,在所述元数据服务系统中新增所述第二元数据模型,删除所述第一元数据模型,并对所述第二元数据模型进行加锁,以禁止为所述第二数据模型匹配索引信息;以及,
在所述元数据服务系统中新增与所述第二元数据模型对应的所述第二索引信息,删除与所述第一元数据模型对应的所述第一索引信息,并对所述第二元数据模型进行解锁,以允许为所述第二元数据模型匹配索引信息。
在又一示出的实施方式中,还包括:
基于所述元数据服务系统中存储的多个元数据模型,通过拓扑配置生成与所述多个元数据模型对应的拓扑图;其中,所述拓扑图包含多个节点,每一个节点对应一个元数据模型,节点之间的连线对应元数据模型之间的关联关系。
在又一示出的实施方式中,还包括:
获取目标查询语句,所述目标查询语句中包括查询对象和查询条件;其中,所述查询对象包括所述元数据服务系统中存储的目标元数据模型,所述查询条件包括所述元数据服务系统中存储的一个或多个索引信息;
基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程;
基于所述目标查询流程,在所述元数据服务系统存储的多个元数据模型中进行查询,获得查询结果;所述查询结果包括所述目标元数据模型。
在又一示出的实施方式中,所述基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程,包括:
基于所述目标查询语句,确定与所述一个或多个索引信息对应的一个或多个元数据模型;
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的目标查询路径,以生成所述目标查询流程;其中,
所述目标查询路径包括依次相连的多个查询节点,所述多个查询节点中的最后一个查询节点为所述目标元数据模型,所述多个查询节点还包括所述一个或多个元数据模型中的至少部分。
在又一示出的实施方式中,所述多个查询节点中还包括在所述拓扑图中与所述目标元数据模型和/或所述一个或多个元数据模型关联的元数据模型。
在又一示出的实施方式中,所述基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的目标查询路径,包括:
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的原始查询路径;
基于预设的路径优化规则,对所述原始查询路径进行优化,得到所述目标查询路径;其中,所述目标查询路径包含的查询节点少于所述原始查询路径包含的查询节点。
在又一示出的实施方式中,所述路径优化规则包括递归优化,所述递归优化包括基于关联推导的优化和基于索引区分度的优化中的一种或多种。
在又一示出的实施方式中,还包括:
解析所述目标查询语句,以确定所述目标查询语句是否合法;若所述目标查询语句合法,则基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程。
在又一示出的实施方式中,所述目标查询语句为TQL语言的查询语句或者SQL语言的查询语句。
相应地,本说明书还提供了一种数据服务装置,应用于元数据服务系统,所述元数据服务系统中分布式存储了元数据模型以及与所述元数据模型对应的索引信息;所述装置包括:
模型获取单元,用于获取与待更新的第一元数据模型对应的第二元数据模型;
更新单元,用于基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息。
在又一示出的实施方式中,所述元数据服务系统在分布式存储元数据模型以及与所述元数据模型对应的索引信息时所采用的数据库类型为Key-value数据库。
在又一示出的实施方式中,所述更新单元,具体用于:
基于分布式锁的控制,在所述元数据服务系统中新增所述第二元数据模型,删除所述第一元数据模型,并对所述第二元数据模型进行加锁,以禁止为所述第二数据模型匹配索引信息;以及,
在所述元数据服务系统中新增与所述第二元数据模型对应的所述第二索引信息,删除与所述第一元数据模型对应的所述第一索引信息,并对所述第二元数据模型进行解锁,以允许为所述第二元数据模型匹配索引信息。
在又一示出的实施方式中,所述装置还包括:
拓扑配置单元,用于基于所述元数据服务系统中存储的多个元数据模型,通过拓扑配置生成与所述多个元数据模型对应的拓扑图;其中,所述拓扑图包含多个节点,每一个节点对应一个元数据模型,节点之间的连线对应元数据模型之间的关联关系。
在又一示出的实施方式中,所述装置还包括:
查询语句获取单元,用于获取目标查询语句,所述目标查询语句中包括查询对象和查询条件;其中,所述查询对象包括所述元数据服务系统中存储的目标元数据模型,所述查询条件包括所述元数据服务系统中存储的一个或多个索引信息;
查询流程生成单元,用于基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程;
查询单元,用于基于所述目标查询流程,在所述元数据服务系统存储的多个元数据模型中进行查询,获得查询结果;所述查询结果包括所述目标元数据模型。
在又一示出的实施方式中,所述查询流程生成单元,具体用于:
基于所述目标查询语句,确定与所述一个或多个索引信息对应的一个或多个元数据模型;
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的目标查询路径,以生成所述目标查询流程;其中,
所述目标查询路径包括依次相连的多个查询节点,所述多个查询节点中的最后一个查询节点为所述目标元数据模型,所述多个查询节点还包括所述一个或多个元数据模型中的至少部分。
在又一示出的实施方式中,所述多个查询节点中还包括在所述拓扑图中与所述目标元数据模型和/或所述一个或多个元数据模型关联的元数据模型。
在又一示出的实施方式中,所述查询流程生成单元,具体用于:
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的原始查询路径;
基于预设的路径优化规则,对所述原始查询路径进行优化,得到所述目标查询路径;其中,所述目标查询路径包含的查询节点少于所述原始查询路径包含的查询节点。
在又一示出的实施方式中,所述路径优化规则包括递归优化,所述递归优化包括基于关联推导的优化和基于索引区分度的优化中的一种或多种。
在又一示出的实施方式中,所述装置还包括:
解析单元,用于解析所述目标查询语句,以确定所述目标查询语句是否合法;若所述目标查询语句合法,则基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程。
在又一示出的实施方式中,所述目标查询语句为TQL语言的查询语句或者SQL语言的查询语句。
相应地,本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述各实施方式所述的数据服务方法。
相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述各实施方式所述的数据服务方法。
综上所述,本申请在分布式存储了元数据模型的基础上,又分布式存储了元数据模型对应的索引信息,从而构建了既包含元数据模型又包含索引信息的元数据服务系统。如此,本申请不仅可以基于分布式存储极强的扩展能力,保证海量元数据模型和其对应索引信息的存储,还保证了针对海量元数据模型仍然可以实现较强的索引能力,满足用户的查询需求。进一步地,本申请还通过分布式锁的控制,使得元数据模型的更新与其对应的索引信息的更新保持一致,从而保证索引的准确性,保证数据查询的效率。
此外,本申请还通过拓扑配置生成了元数据服务系统中所包含的多个元数据模型对应的拓扑图,该拓扑图中包含了多个元数据模型之间的关联关系,为后续实现更加灵活、便捷、高效的数据查询服务提供了有效支撑。
附图说明
图1是一示例性实施例提供的一种元数据服务系统的架构示意图;
图2是一示例性实施例提供的另一种元数据服务系统的架构示意图;
图3是一示例性实施例提供的一种数据服务方法的流程示意图;
图4是一示例性实施例提供的一种数据更新示意图;
图5是一示例性实施例提供的一种数据查询方法的流程示意图;
图6是一示例性实施例提供的一种数据服务装置的结构示意图;
图7是一示例性实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方
法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。5此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而
本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
此外,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经
过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区0的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先,对本说明书中的部分用语进行解释说明,以便于本邻域技术人员理解。
(1)元数据,其定义是“关于数据的数据”,简单来说,只要能够用来描述某个数据的,都可以认为是元数据。企业需要按照科学、有效的机制对元数据进行管理,并面向开发人员、最终用户提供元数据服务,以满足用户的业务需求。示例性的,元数据可以是技术风险视角5下系统运行的基础数据,该基础数据例如可以包括底层基础设施、应用层数据、服务层数据,
等等。所谓技术风险例如可以包括高可用(High Availability,HA),其中,高可用是分布式系统架构设计中通常需要考虑的因素之一,它一般是指通过设计,减少系统不能提供服务的时间。假设系统一直能够提供服务,则系统的可用性是100%,若系统每运行100个时间单位,会有1个时间单位无法提供服务,则系统的可用性是99%。
(2)分布式存储,是指将数据分散存储在多台独立的设备上。分布式存储大多利用多台
存储服务器分担存储负荷,利用位置服务器定位存储信息,这不但提高了系统的可靠性、可用性和存取效率,还易于扩展,可以实现上亿级的数据存储。
如上所述,伴随着愈发复杂的互联网业务发展,对不同平台的数据的组织和应用有着更
高的要求,尤其是对技术风险领域下数据的组织与应用有着更高的要求。然而,常用的非关5系型数据库存储,例如hbase、mangodb等,虽然可以灵活变更数据属性,且可分布式存储海
量数据,性能较强。但是,由于其分布式存储的特点,其数据索引能力受限,无法提供灵活多样的数据查询服务。
因此,为了提供灵活、高效、准确的元数据服务,本说明书提供了一种数据服务方法,可以应用于本说明书提供的元数据服务系统中。
请参阅图1,图1是一示例性实施例提供的一种元数据服务系统的架构示意图。如图1所示,该元数据服务系统可以包括元数据模型的存储和与所述元数据模型对应的索引存储。应理解,元数据模型可以是元数据的一个实例。进一步地,该元数据服务系统中可以通过分布式存储的方式存储大量元数据模型以及与该大量元数据模型对应的索引信息。
进一步地,元数据服务系统在分布式存储元数据模型以及与该元数据模型对应的索引信息时所采用的数据库类型可以为键值对(Key-value)数据库。可选地,该元数据服务系统可以由多台服务器构成,从而通过多台独立的服务器分布式存储各个平台的元数据模型及其相应的索引信息。如此,基于分布式存储极强的扩展能力,可以有效保证海量元数据模型和其对应索引信息的存储。此外,如上所述,本申请在分布式存储了元数据模型的基础上,又分布式存储了元数据模型对应的索引信息,相当于在原有的元数据模型存储层之上又构建了一个索引存储层,从而可以保证针对海量元数据模型仍然可以实现较强的索引能力,满足用户的查询需求。
可选地,本申请中索引的存储可以是基于内存的数据库,由于内存较强的读写性能,可以有效保证读写索引数据时的速度与准确性。
如图1所示,元数据服务系统的元数据模型存储中可以包含元数据模型1、元数据模型2、元数据模型3,等等,索引存储中可以包含索引信息1、索引信息2、索引信息3,等等。其中,元数据模型1、元数据模型2、元数据模型3可以为不同平台的数据,可以分布式存储在不同的服务器中。其中,索引信息1可以是元数据模型1对应的索引信息,索引信息2可以是元数据模型2对应的索引信息,等等。可选地,每个元数据模型对应的索引信息可以包括多个索引条件,通过该多个索引条件中的任意一个均可以查询到该元数据模型。例如,索引信息1中可以包括年龄为25岁,未婚,男性等多个索引条件,索引信息2中可以包括年龄为27岁,已婚,男性等多个索引条件,索引信息3中可以包括工号为X456,工龄为5年等多个索引条件,等等,此处不再展开例举。
进一步地,请参阅图2,图2是一示例性实施例提供的另一种元数据服务系统的架构示意图。需要说明的是,图2所示的架构为软件层面的架构,主要用于表示该系统的各项配置、特性以及能力等。如图2所示,该元数据服务系统可以包括配置层、服务层和存储层。
如图2所示,配置层提供了元数据模型配置与拓扑视图配置的能力。本申请采用了配置语言描述元数据模型和拓扑图,使得元数据模型和拓扑图可灵活动态变更,并实现了元数据模型快速构建和热发布的能力,从而可以保证整体元数据拓扑组织的灵活与高效。结合图1所示的元数据服务系统,所谓拓扑视图配置的能力可以包括基于元数据服务系统中存储的多个元数据模型(例如元数据模型1、元数据模型2、元数据模型3等),通过拓扑配置自动推导多个元数据模型之间的关联关系,从而生成与该多个元数据模型对应的拓扑图。其中,该拓扑图可以包含多个节点,每一个节点对应一个元数据模型,节点之间的连线可以对应元数据模型之间的关联关系。
如图2所示,元数据模型配置中可以包括配置项1、配置项2、配置项3等多个配置项。示例性的,该多个配置项具体可以包括模型域、字段配置、模型函数、字段映射、管道配置、生命周期(Time To Live,TTL)配置,等等,本说明书对此不做具体限定。如图2所示,拓扑视图配置中可以包括配置项4、配置项5、配置项6等多个配置项。示例性的,该多个配置项具体可以包括模型列表、关联关系、关联权重和视图生成,等等,本说明书对此不做具体限定。
如图2所示,服务层主要是基于底层的存储能力与模型配置,提供了统一的数据服务,例如包括元数据模型的变更、索引信息的变更,以及二者数据变更的一致性保障等。可选地,可以通过分布式锁的控制,保证元数据模型和其对应的索引信息的变更的一致性,从而可以有效避免在一段时间内(例如20分钟或者30分钟等)元数据模型无法对应准确的索引,用户输入一个索引无法得到准确数据的问题,此处不再展开详述,具体可参见后续图3对应实施例的描述。如图2所示,服务层中可以包括服务项1、服务项2、服务项3、服务项4等多个服务项。示例性的,该多个服务项具体可以包括数据初始化、多通道增量订阅、服务路由、模型变更消息、分布式锁管控、索引构建、拓扑服务、沙箱环境、校验任务和变更识别,等等,本说明书对此不做具体限定。
如图2所示,存储层主要包括元数据模型存储与索引存储。如图2所示,元数据模型存储可以包括特性1、特性2和特性3等多个特性,该多个特性描述的是本申请的底层存储能力,或者说存储的逻辑特性。示例性的,该多个特性具体可以包括弱schema、版本控制和动态列,等等,本说明书对此不做具体限定。相应的,如图2所示,与元数据模型存储对应的索引存储也可以包括特性4、特性5和特性6等多个特性,同样的,该多个特性描述的是本申请的底层存储能力,或者说存储的逻辑特性。示例性的,该多个特性具体可以包括索引配置、索引分段、并发更新、热点识别、性能监控和主备同步,等等,本说明书对此不做具体限定。如图2所示,可以通过分布式锁的控制保证元数据模型存储与其对应的索引存储的数据一致性,即保证元数据模型与其索引的变更的一致性。
基于上述图1和图2描述的元数据服务系统,本申请还相应提供了一种元数据服务方法。请参阅图3,图3是一示例性实施例提供的一种数据服务方法的流程示意图。该方法可以应用于图1和图2所示的系统架构中,具体可以应用于计算机设备中,该计算机设备例如可以为笔记本电脑、台式电脑、服务器、车载计算机等等,本说明书对此不做具体限定。可选地,该计算机设备可以为该元数据服务系统中的一个设备,可以存储有部分元数据模型或者索引信息,或者,该计算机设备也可以是独立于该元数据服务系统的一个设备,该计算机设备可以通过有线或者无线的方式与该系统建立通信连接。如图3所示,该方法具体可以包括如下步骤S101-步骤S102。
步骤S101,获取与待更新的第一元数据模型对应的第二元数据模型。
具体地,获取与待更新的第一元数据模型对应的第二元数据模型。其中,该第一元数据模型为元数据服务系统中原本存储的元数据模型,当前需要对该第一元数据模型进行更新。该第二元数据模型为该第一元数据模型更新后的元数据模型。
可选地,计算机设备可以直接从本地获取该第二元数据模型,也可以通过网络连接等无线方式从外部设备中获取该第二元数据模型。
步骤S102,基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息。
具体地,基于分布式锁的控制,在元数据服务系统中新增所述第二元数据模型,删除所述第一元数据模型,并对所述第二元数据模型进行加锁,以禁止为所述第二数据模型匹配索引信息,从而使得该第二元数据模型不能被索引。相应的,基于分布式锁的控制,在所述元数据服务系统中新增与所述第二元数据模型对应的所述第二索引信息,删除与所述第一元数据模型对应的所述第一索引信息,并对所述第二元数据模型进行解锁,以允许为所述第二元数据模型匹配索引信息,从而使得该第二元数据模型能够成功被该第二索引信息索引。
如此,在更新后的元数据模型对应的索引信息未完成更新前,该更新后的元数据模型一直处于加锁状态,只有当索引信息完成更新时,该更新后的元数据模型才能正常生效。从而实现了元数据模型与其索引信息的同步构建与更新,保证了元数据模型与其索引信息的数据一致性,保障了后续数据查询服务的准确性,满足用户的业务需求。
示例性的,请参阅图4,图4是一示例性实施例提供的一种数据更新示意图。如图4所示,第二元数据模型例如为R(即更新后的数据(after-data)),第一元数据模型例如为R’(即更新前的数据(before-data))。如图4所示,当一条数据更新实例Record-R进入元数据服务系统后,可以先将原本存储在元数据服务系统内的元数据模型R’取出来,然后将新的元数据模型R存储进元数据服务系统中。
如图4所示,对于原本的元数据模型R’来说,其F0字段的内容为X,其F1字段的内容为M。而当该元数据模型R’更新为元数据模型R后,相应的,其F0字段的内容更新为Y,其F1字段的内容更新为N。其中,字段F0和字段F1可以用于表达元数据模型的一种属性,例如为其工号、时间节点、商品类别,等等。如图4所示,对原本的元数据模型R’来说,其
索引信息可以包括F0=X,F1=M等,即用户可以通过输入F0=X,F1=M等索引条件查询到5该元数据模型R’。如图4所示,对元数据模型R来说,其索引信息可以包括F0=Y,F1=N等
索引条件,即用户可以通过输入F0=Y,F1=N等索引条件查询到该元数据模型R。
如图4所示,本申请通过分布式锁的控制,在将新的元数据模型R存储进元数据服务系统后,就对该元数据模型R进行加锁。然后,在索引存储中插入新的索引,例如包括插入F0=Y
对元数据模型R的索引,以及F1=N对元数据模型R的索引,等等,并在索引存储中删除旧0的索引,例如包括删除F0=X对元数据模型R’的索引,以及F1=M对元数据模型R’的索引,
等等。最后,再对该元数据模型R进行解锁,实现了元数据模型与其对应的索引信息的更新的一致性,从而保障后续数据查询的准确性。
如图4所示,在完成元数据模型与索引信息的更新后,用户输入查询条件F0=Y进行数
据查询,可以查询得到该元数据模型R。此时若用户输入查询条件F0=X,则无法查询到任何5元数据模型,保证了数据查询的准确性。
进一步地,基于上述元数据服务系统,为了提升用户的数据查询服务,本说明书还提供了一种数据查询协议。请参阅图5,图5是一示例性实施例提供的一种数据查询方法的流程示意图。如图5所示,该方法包括以下步骤S11-步骤S16。
0步骤S11,获取目标查询语句。
具体地,计算机设备获取目标查询语句,该目标查询语句采用的语言可以是本申请的拓扑查询语言(topo query language,TQL),也可以是常规的结构化查询语言(Structured QueryLanguage,SQL),还可以是SQL方言或者其他任何可能的语言,等等,本说明书对此不做具体限定。
5可选地,目标查询语句可以包括查询对象和查询条件,其中,所述查询对象可以包括上
述元数据服务系统中存储的目标元数据模型(例如为图1所示的元数据模型1,或者为图4所示的元数据模型R,等等),所述查询条件可以包括所述元数据服务系统中存储的一个或多个索引信息(例如为图1所示的索引信息1、索引信息2等)。该一个或多个索引信息中
可以包括该目标元数据模型(即查询对象)对应对的索引信息,或者,该一个或多个索引信0息也可以完全是其他元数据模型对应的索引信息,本说明书对此不做具体限定。
如图5所示,在采用TQL语言的情况下,该目标查询语句可以为“Query:A JOINDCondition:A.x=$0&&B.y=$1”。在该目标查询语句中,其查询对象为A和D,查询条件为A.x=$0&&B.y=$1,即A的x字段为$0,B的y字段为$1这两个索引信息。
如图5所示,在采用SQL语言的情况下,该目标查询语句可以为“select from A,Dwhere A.x=$0and B.y=$1”。在该目标查询语句中,其查询对象同样为A和D,查询条件同样包含A的x字段为$0,B的y字段为$1这两个索引信息。
应理解,TQL是本申请定义的查询语言,但是考虑到大部分用户更加熟悉传统的SQL语言,因此,为了降低接入成本,本申请对SQL语言也进行了移植适配,主要通过引入图5所示的兼容工具calcite,使得SQL语言下的目标查询语句最后也能生成符合本申请逻辑的查询流程。如此,保证用户可以根据自己的实际需求选用任意一种语言进行数据查询,提升用户的使用体验。
步骤S12,解析与验证目标查询语句。
具体地,解析目标查询语句,验证该目标查询语句是否合法,若该目标查询语句合法,则执行步骤S13,若该目标查询语句不合法,则可以停止查询并提示用户。
可选地,如图5所示,若用户采用的是传统的SQL语言,则可以通过calcite对该目标查询语句进行解析,并验证其合法性。
可选地,通过解析该目标查询语句还可以检查语句中是否存在冗余的重复内容,从而提升数据查询效率。
步骤S13,基于目标查询语句,生成原始的查询流程。
具体地,基于该目标查询语句,生成对应的原始查询流程,或者称之为查询计划。
可选地,基于该目标查询语句,确定与该目标查询语句包含的一个或多个索引信息对应的一个或多个元数据模型。然后,基于该一个或多个元数据模型,在预先配置的拓扑图中确定出针对该目标元数据模型的原始查询路径,以生成所述原始查询流程。
其中,该原始查询路径相当于拓扑图中的一部分,该原始查询路径可以包括依次相连的多个查询节点,每个查询节点为相应的元数据模型。可选地,该多个查询节点中的最后一个查询节点可以为所该目标元数据模型,该多个查询节点中还可以包括与该一个或多个索引信息对应的所述一个或多个元数据模型中的至少部分。可选地,所述多个查询节点中还包括在拓扑图中与该目标元数据模型和/或该一个或多个元数据模型关联的元数据模型。
示例性的,以“Query:A JOIN D Condition:A.x=$0&&B.y=$1”这一目标查询语句为例。如图5所示,该查询路径中可以包括元数据模型A,元数据模型B,元数据模型C和元数据模型D,其中,元数据模型A为满足A.x=$0这一条件的元数据模型A,元数据模型B为满足B.y=$1这一条件的元数据模型B。如图5所示,元数据模型D通过元数据模型C与元数据模型B关联。如图5所示,在该查询路径下,相当于在查询到满足A.x=$0这一条件的元数据模型A,以及满足B.y=$1这一条件的元数据模型B后,可以通过与元数据模型B关联的元数据模型C,最终查询得到元数据模型D。
可选地,如图5所示,本申请移植适配了SQL语言,通过兼容工具calcite,使得SQL语言下的目标查询语句也能生成所述原始查询流程。
步骤S14,对原始查询流程进行优化,得到目标查询流程。
具体地,基于预设的路径优化规则,对所述原始查询流程中的原始查询路径进行优化,得到目标查询路径,以对原始查询流程进行优化,得到目标查询流程。其中,所述目标查询路径包含的查询节点可以少于上述原始查询路径包含的查询节点。
如图5所示,路径优化规则可以包括递归优化,所述递归优化可以包括基于关联推导的优化和基于索引区分度的优化中的一种或多种,还可以包括其他任何可能的优化方式,本说明书对此不做具体限定。
示例性的,若查询对象仅包含元数据模型D,查询条件依然为A.x=$0和B.y=$1,则在元数据模型A与元数据模型B存在某一字段相同时(例如A.n=B.m=$2),可以优化掉元数据模型A,直接从元数据模型B开始查询,即优化后得到的目标查询路径中仅包含元数据模型B,元数据模型C和元数据模型D这3个查询节点。进一步地,若元数据模型B与元数据模型C也存在某一字段相同(例如B.k=C.t=$3),则可以进一步优化掉元数据模型B,直接从元数据模型C开始查询,即优化后得到的目标查询路径中仅包含元数据模型C和元数据模型D这2个查询节点,从而进一步缩短了查询路径,简化了查询流程,缩短了查询时间,极大程度上提升了数据查询效率。
步骤S15,生成对应的物理查询计划。
具体地,生成与该目标查询流程对应的物理查询计划。
如图5所示,在查询得到满足A.x=$0这一条件的元数据模型A(例如包括A0、A1、A2),以及满足B.y=$1这一条件的元数据模型B(例如包括B0和B1)后,可以进一步限定与满足B.y=$1这一条件的元数据模型B相关联的元数据模型C。示例性的,如图5所示,与满足B.y=$1这一条件的元数据模型B相关联的元数据模型C都满足C.z=$0这一条件。应理解,元数据模型C可能存在多个,例如C1、C2、C3、C4等,但是满足C.z=$0这一条件的元数据模型C可能仅包括C1和C2。如此,最终的物理查询计划只需要查询满足C.z=$0这一条件的元数据模型C,即图5所示的“Query C with Condition C.z=$0”,进一步地,再查询与满足C.z=$0这一条件的元数据模型C相关联的元数据模型D就可以了。
步骤S16,执行物理查询计划并返回查询结果。
具体地,计算机设备执行物理查询计划,在元数据服务系统中进行查询,并返回查询结果。其中,该查询结果可以包括目标查询语句中包含的所述目标元数据模型。可选地,该查询结果还可以包括与该目标元数据模型相关联的一个或多个元数据模型。
示例性的,如图5所示,计算机设备执行“index_key_c_z_{$0}”,在元数据模型存储中查询符合C.z=$0这一条件的元数据模型C,最终查询得到元数据模型C1和C2。然后,基于该元数据模型C1和C2,查询得到与该元数据模型C1和C2相关联的元数据模型D0、D1、D2。如图5所示,最终返回的查询结果可以包括元数据模型A0、A1、A2、D0、D1和D2,以及彼此之间的关联关系,例如,A0通过B0和C1与D0关联,A1通过B1和C2与D1关联,A1还通过B1和C2与D2关联,A2通过B0和C1与D0关联。示例性的,该元数据模型A0、A1、A2可以为买家信息,该元数据模型D0、D1,D2可以为商品信息,该元数据模型B0、B1可以是商家信息,该元数据模型C1、C2可以是购买时间信息,等等,本说明书对此不做具体限定。
如上所述,本申请实现的数据查询十分灵活、高效,不对查询条件做严格要求,例如该查询条件可以不是查询对象的索引信息,在此情况下本申请也可以基于预先配置的拓扑视图,通过元数据模型之间的关联关系,快速、高效的查询得到用户想要查询的元数据模型,满足用户的实际业务需求。
综上所述,本申请在分布式存储了元数据模型的基础上,又分布式存储了元数据模型对应的索引信息,从而构建了既包含元数据模型又包含索引信息的元数据服务系统。如此,本申请不仅可以基于分布式存储极强的扩展能力,保证海量元数据模型和其对应索引信息的存储,还保证了针对海量元数据模型仍然可以实现较强的索引能力,满足用户的查询需求。进一步地,本申请还通过分布式锁的控制,使得元数据模型的更新与其对应的索引信息的更新保持一致,从而保证索引的准确性,保证数据查询的效率。
此外,本申请还通过拓扑配置生成了元数据服务系统中所包含的多个元数据模型对应的拓扑图,该拓扑图中包含了多个元数据模型之间的关联关系,为后续实现更加灵活、便捷、高效的数据查询服务提供了有效支撑。从而向用户提供了灵活、高效、准确、低成本的元数据拓扑服务。
与上述方法流程实现对应,本说明书的实施例还提供了一种数据服务装置,应用于元数据服务系统,所述元数据服务系统中分布式存储了元数据模型以及与所述元数据模型对应的索引信息。请参阅图6,图6是一示例性实施例提供的一种数据服务装置的结构示意图。
如图6所示,该装置300包括:
模型获取单元301,用于获取与待更新的第一元数据模型对应的第二元数据模型;
更新单元302,用于基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息。
在又一示出的实施方式中,所述元数据服务系统在分布式存储元数据模型以及与所述元数据模型对应的索引信息时所采用的数据库类型为Key-value数据库。
在又一示出的实施方式中,所述更新单元302,具体用于:
基于分布式锁的控制,在所述元数据服务系统中新增所述第二元数据模型,删除所述第一元数据模型,并对所述第二元数据模型进行加锁,以禁止为所述第二数据模型匹配索引信息;以及,
在所述元数据服务系统中新增与所述第二元数据模型对应的所述第二索引信息,删除与所述第一元数据模型对应的所述第一索引信息,并对所述第二元数据模型进行解锁,以允许为所述第二元数据模型匹配索引信息。
在又一示出的实施方式中,所述装置还包括:
拓扑配置单元303,用于基于所述元数据服务系统中存储的多个元数据模型,通过拓扑配置生成与所述多个元数据模型对应的拓扑图;其中,所述拓扑图包含多个节点,每一个节点对应一个元数据模型,节点之间的连线对应元数据模型之间的关联关系。
在又一示出的实施方式中,所述装置还包括:
查询语句获取单元304,用于获取目标查询语句,所述目标查询语句中包括查询对象和查询条件;其中,所述查询对象包括所述元数据服务系统中存储的目标元数据模型,所述查询条件包括所述元数据服务系统中存储的一个或多个索引信息;
查询流程生成单元306,用于基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程;
查询单元307,用于基于所述目标查询流程,在所述元数据服务系统存储的多个元数据模型中进行查询,获得查询结果;所述查询结果包括所述目标元数据模型。
在又一示出的实施方式中,所述查询流程生成单元306,具体用于:
基于所述目标查询语句,确定与所述一个或多个索引信息对应的一个或多个元数据模型;
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的目标查询路径,以生成所述目标查询流程;其中,
所述目标查询路径包括依次相连的多个查询节点,所述多个查询节点中的最后一个查询节点为所述目标元数据模型,所述多个查询节点还包括所述一个或多个元数据模型中的至少部分。
在又一示出的实施方式中,所述多个查询节点中还包括在所述拓扑图中与所述目标元数据模型和/或所述一个或多个元数据模型关联的元数据模型。
在又一示出的实施方式中,所述查询流程生成单元306,具体用于:
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的原始查询路径;
基于预设的路径优化规则,对所述原始查询路径进行优化,得到所述目标查询路径;其中,所述目标查询路径包含的查询节点少于所述原始查询路径包含的查询节点。
在又一示出的实施方式中,所述路径优化规则包括递归优化,所述递归优化包括基于关联推导的优化和基于索引区分度的优化中的一种或多种。
在又一示出的实施方式中,所述装置还包括:
解析单元305,用于解析所述目标查询语句,以确定所述目标查询语句是否合法;若所述目标查询语句合法,则基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程。
在又一示出的实施方式中,所述目标查询语句为TQL语言的查询语句或者SQL语言的查询语句。
上述装置300中各个单元的功能和作用的实现过程具体详见上述图1-图5对应实施例的描述,在此不再进行赘述。应理解,上述装置300可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了CPU以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机设备。请参阅图7,图7是一示例性实施例提供的一种计算机设备的结构示意图。如图7所示,该计算机设备1000包括处理器1001和存储器1002,进一步还可以包括输入设备1004(例如键盘等)和输出设备1005(例如显示器等)。处理器1001、存储器1002、输入设备1004和输出设备1005之间可以通过总线或其他方式连接。如图7所示,存储器1002包括计算机可读存储介质1003,该计算机可读存储介质1003存储有能够由处理器1001运行的计算机程序。处理器1001可以是通用中央处理器,微处理器,或用于控制以上方法实施例执行的集成电路。处理器1001在运行存储的计算机程序时,可以执行本说明书实施例中数据服务方法的各个步骤,包括:获取与待更新的第一元数据模型对应的第二元数据模型;基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息,等等。对上述数据服务方法的各个步骤的详细描述请参见之前的内容,此处不再进行赘述。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中数据服务方法的各个步骤。具体请参见上述图1-图5对应实施例的描述,此处不再进行赘述。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (24)
1.一种数据服务方法,应用于元数据服务系统,所述元数据服务系统中分布式存储了元数据模型以及与所述元数据模型对应的索引信息;所述方法包括:
获取与待更新的第一元数据模型对应的第二元数据模型;
基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息。
2.根据权利要求1所述的方法,所述元数据服务系统在分布式存储元数据模型以及与所述元数据模型对应的索引信息时所采用的数据库类型为Key-value数据库。
3.根据权利要求1所述的方法,所述基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息,包括:
基于分布式锁的控制,在所述元数据服务系统中新增所述第二元数据模型,删除所述第一元数据模型,并对所述第二元数据模型进行加锁,以禁止为所述第二数据模型匹配索引信息;以及,
在所述元数据服务系统中新增与所述第二元数据模型对应的所述第二索引信息,删除与所述第一元数据模型对应的所述第一索引信息,并对所述第二元数据模型进行解锁,以允许为所述第二元数据模型匹配索引信息。
4.根据权利要求1所述的方法,还包括:
基于所述元数据服务系统中存储的多个元数据模型,通过拓扑配置生成与所述多个元数据模型对应的拓扑图;其中,所述拓扑图包含多个节点,每一个节点对应一个元数据模型,节点之间的连线对应元数据模型之间的关联关系。
5.根据权利要求4所述的方法,还包括:
获取目标查询语句,所述目标查询语句中包括查询对象和查询条件;其中,所述查询对象包括所述元数据服务系统中存储的目标元数据模型,所述查询条件包括所述元数据服务系统中存储的一个或多个索引信息;
基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程;
基于所述目标查询流程,在所述元数据服务系统存储的多个元数据模型中进行查询,获得查询结果;所述查询结果包括所述目标元数据模型。
6.根据权利要求5所述的方法,所述基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程,包括:
基于所述目标查询语句,确定与所述一个或多个索引信息对应的一个或多个元数据模型;
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的目标查询路径,以生成所述目标查询流程;其中,
所述目标查询路径包括依次相连的多个查询节点,所述多个查询节点中的最后一个查询节点为所述目标元数据模型,所述多个查询节点还包括所述一个或多个元数据模型中的至少部分。
7.根据权利要求6所述的方法,所述多个查询节点中还包括在所述拓扑图中与所述目标元数据模型和/或所述一个或多个元数据模型关联的元数据模型。
8.根据权利要求6所述的方法,所述基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的目标查询路径,包括:
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的原始查询路径;
基于预设的路径优化规则,对所述原始查询路径进行优化,得到所述目标查询路径;其中,所述目标查询路径包含的查询节点少于所述原始查询路径包含的查询节点。
9.根据权利要求8所述的方法,所述路径优化规则包括递归优化,所述递归优化包括基于关联推导的优化和基于索引区分度的优化中的一种或多种。
10.根据权利要求5所述的方法,还包括:
解析所述目标查询语句,以确定所述目标查询语句是否合法;若所述目标查询语句合法,则基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程。
11.根据权利要求5-10任意一项所述的方法,所述目标查询语句为TQL语言的查询语句或者SQL语言的查询语句。
12.一种数据服务装置,应用于元数据服务系统,所述元数据服务系统中分布式存储了元数据模型以及与所述元数据模型对应的索引信息;所述装置包括:
模型获取单元,用于获取与待更新的第一元数据模型对应的第二元数据模型;
更新单元,用于基于分布式锁的控制,将所述元数据服务系统中存储的所述第一元数据模型更新为所述第二元数据模型,以及,将所述元数据服务系统中存储的与所述第一元数据模型对应的第一索引信息同步更新为第二索引信息。
13.根据权利要求12所述的装置,所述元数据服务系统在分布式存储元数据模型以及与所述元数据模型对应的索引信息时所采用的数据库类型为Key-value数据库。
14.根据权利要求12所述的装置,所述更新单元,具体用于:
基于分布式锁的控制,在所述元数据服务系统中新增所述第二元数据模型,删除所述第一元数据模型,并对所述第二元数据模型进行加锁,以禁止为所述第二数据模型匹配索引信息;以及,
在所述元数据服务系统中新增与所述第二元数据模型对应的所述第二索引信息,删除与所述第一元数据模型对应的所述第一索引信息,并对所述第二元数据模型进行解锁,以允许为所述第二元数据模型匹配索引信息。
15.根据权利要求12所述的装置,还包括:
拓扑配置单元,用于基于所述元数据服务系统中存储的多个元数据模型,通过拓扑配置生成与所述多个元数据模型对应的拓扑图;其中,所述拓扑图包含多个节点,每一个节点对应一个元数据模型,节点之间的连线对应元数据模型之间的关联关系。
16.根据权利要求15所述的装置,还包括:
查询语句获取单元,用于获取目标查询语句,所述目标查询语句中包括查询对象和查询条件;其中,所述查询对象包括所述元数据服务系统中存储的目标元数据模型,所述查询条件包括所述元数据服务系统中存储的一个或多个索引信息;
查询流程生成单元,用于基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程;
查询单元,用于基于所述目标查询流程,在所述元数据服务系统存储的多个元数据模型中进行查询,获得查询结果;所述查询结果包括所述目标元数据模型。
17.根据权利要求16所述的装置,所述查询流程生成单元,具体用于:
基于所述目标查询语句,确定与所述一个或多个索引信息对应的一个或多个元数据模型;
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的目标查询路径,以生成所述目标查询流程;其中,
所述目标查询路径包括依次相连的多个查询节点,所述多个查询节点中的最后一个查询节点为所述目标元数据模型,所述多个查询节点还包括所述一个或多个元数据模型中的至少部分。
18.根据权利要求17所述的装置,所述多个查询节点中还包括在所述拓扑图中与所述目标元数据模型和/或所述一个或多个元数据模型关联的元数据模型。
19.根据权利要求17所述的装置,所述查询流程生成单元,具体用于:
基于所述一个或多个元数据模型,在所述拓扑图中确定出针对所述目标元数据模型的原始查询路径;
基于预设的路径优化规则,对所述原始查询路径进行优化,得到所述目标查询路径;其中,所述目标查询路径包含的查询节点少于所述原始查询路径包含的查询节点。
20.根据权利要求19所述的装置,所述路径优化规则包括递归优化,所述递归优化包括基于关联推导的优化和基于索引区分度的优化中的一种或多种。
21.根据权利要求16所述的装置,还包括:
解析单元,用于解析所述目标查询语句,以确定所述目标查询语句是否合法;若所述目标查询语句合法,则基于所述目标查询语句,生成针对所述目标元数据模型的目标查询流程。
22.根据权利要求16-21任意一项所述的装置,所述目标查询语句为TQL语言的查询语句或者SQL语言的查询语句。
23.一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求1至11任意一项所述的方法。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至11任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211741461.5A CN116010521A (zh) | 2022-12-30 | 2022-12-30 | 一种数据服务方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211741461.5A CN116010521A (zh) | 2022-12-30 | 2022-12-30 | 一种数据服务方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010521A true CN116010521A (zh) | 2023-04-25 |
Family
ID=86029621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211741461.5A Pending CN116010521A (zh) | 2022-12-30 | 2022-12-30 | 一种数据服务方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010521A (zh) |
-
2022
- 2022-12-30 CN CN202211741461.5A patent/CN116010521A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220067025A1 (en) | Ordering transaction requests in a distributed database according to an independently assigned sequence | |
AU2017269108B2 (en) | Optimizing read and write operations in object schema-based application programming interfaces (APIS) | |
US11550763B2 (en) | Versioning schemas for hierarchical data structures | |
US20200334374A1 (en) | Application specific schema extensions for a hierarchical data structure | |
US8108367B2 (en) | Constraints with hidden rows in a database | |
US9990391B1 (en) | Transactional messages in journal-based storage systems | |
US8108360B2 (en) | Database object update order determination | |
US10936559B1 (en) | Strongly-consistent secondary index for a distributed data set | |
JP2008538632A (ja) | データ記憶システム内のデータを操作するシステムおよび方法 | |
US10108658B1 (en) | Deferred assignments in journal-based storage systems | |
US11907260B2 (en) | Compare processing using replication log-injected compare records in a replication environment | |
Gudivada et al. | Renaissance in database management: navigating the landscape of candidate systems | |
US20170011128A1 (en) | Dynamic domain query and query translation | |
CN112699151B (zh) | 数据处理方法、装置、设备以及介质 | |
US11829814B2 (en) | Resolving data location for queries in a multi-system instance landscape | |
US20230099501A1 (en) | Masking shard operations in distributed database systems | |
US11657088B1 (en) | Accessible index objects for graph data structures | |
CN117453980A (zh) | 元数据管理、配置页面生成方法、服务器及存储介质 | |
US8856260B2 (en) | Providing access to shared state data | |
WO2023098462A1 (en) | Improving performance of sql execution sequence in production database instance | |
WO2023083237A1 (zh) | 图数据的管理 | |
US11222003B1 (en) | Executing transactions for a hierarchy of data objects stored in a non-transactional data store | |
WO2022111148A1 (en) | Metadata indexing for information management | |
CN116010521A (zh) | 一种数据服务方法及相关设备 | |
US11500837B1 (en) | Automating optimizations for items in a hierarchical data store |
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 |