基于图结构的数据虚拟化系统、方法、装置、设备及介质制造方法及图纸

技术编号:38138449 阅读:13 留言:0更新日期:2023-07-08 09:51
本发明专利技术公开了一种基于图结构的数据虚拟化系统、方法、装置、设备及介质,包括:根据元数据配置参数配置元数据关系图,并根据元数据关系图初始化缓存数据表,接收用户端发送的虚拟视图查询请求,并解析请求参数,得到虚拟视图SQL,将虚拟视图SQL转化为SQL查询语句,根据请求参数,在缓存和数据节点上执行SQL查询语句,得到集合数据,将集合数据形成虚拟视图反馈给用户端。采用本发明专利技术实现虚拟表到物理表、物理表到虚拟表的元数据快捷查询和映射,提高了数据访问的效率。据访问的效率。据访问的效率。

【技术实现步骤摘要】
基于图结构的数据虚拟化系统、方法、装置、设备及介质


[0001]本专利技术涉及数据处理领域,尤其涉及一种基于图结构的数据虚拟化系统、方法、装置、设备及介质。

技术介绍

[0002]随着大数据和云计算技术的发展,各行各业的数据呈现爆发式增长,数据虚拟化在原有的系统或软件框架上新增数据虚拟层,将所有数据源抽象或者映射后,成为一个面向领域的统一数据访问层,屏蔽了传统数据库、分布式云、大数据等多元异构数据源的多样性和复杂性,使得用户能够像访问单一数据源的数据表一样访问所有数据,在不迁移数据,不复制数据,不通过ETL加工数据或者额外的存储需求就可以实时查看和分析,这样提供了数据处理的便捷性,可以为企业带来实时的具有洞察力的结果,更快速响应和做出相应的决策。
[0003]在现有实现方式中,申请号为201811534934.8(专利名称为一种数据虚拟化及查询方法、装置)公开了一种数据虚拟化及查询方法、装置,该数据虚拟化方法包括:从数据库中采集多种数据,根据数据及其属性构建数据字典;获取常用词库词典和行业术语词库中的词汇信息;根据词汇信息及数据字典中的数据及其映射关系构建数据语义层;申请号为201510117882.4(专利名称为用于端到端云服务数据库虚拟化及管理的架构和方法)公开了一种用于端到端云数据库虚拟化及管理的架构和方法。该架构包括构建于虚拟机之上的中央虚拟数据库虚拟化模块、多个云服务、多个分布式子虚拟数据库虚拟化模块以及多个多媒体虚拟数据库虚拟化,中央虚拟数据库虚拟化模块设置有服务器信息数据库和客户端信息数据库,服务器信息数据库用于存储多个云服务的服务器端信息,客户端信息数据库用于存储多个云服务的客户端基本信息,中央虚拟数据库虚拟化模块还用于记录客户端在云服务上的基本使用情况、管理虚拟机的物理资源分配、和分布式子虚拟数据库虚拟化模块协同工作以对多个云服务进行动态资源分配及性能优化、从虚拟存储池中为多个多媒体虚拟数据库虚拟化分配存储空间。
[0004]专利技术人在实现本专利技术的过程中发现:现已存在多种数据虚拟化方法用于统一访问各数据源的数据,通过采用缓存进行加速,而不全量负责数据。但这些方法基本数据映射关系复杂,且实现数据查询方式简单,无法实现组合、聚类函数等计算。

技术实现思路

[0005]本专利技术实施例提供一种基于图结构的数据虚拟化系统、方法、装置、计算机设备和存储介质,以提高数据查询访问效率。
[0006]为了解决上述技术问题,本申请实施例提供一种基于图结构的数据虚拟化系统,通过图结构实现数据虚拟化的元数据管理,所述基于图结构的数据虚拟化系统包括:元数据管理模块、虚拟视图SQL引擎、数据ETL模块、数据缓存模块和数据服务处理模块;其中,所述元数据管理模块用于根据设置条件进行数据虚拟视图的元数据配置,并管理
维护元数据关系;所述虚拟视图SQL引擎用于对SQL语句进行解析,并根据元数据关系图构建各个数据源的子查询SQL,获其他数据读取参数;所述数据ETL模块根据子查询SQL或者其他数据读取参数进行数据提取;所述数据缓存模块用于对查询结果进行数据缓存;所述数据服务处理模块用于接收数据查询、统计请求,并经过其他模块处理后将提取的数据组合成虚拟视图。
[0007]可选地,所述数据ETL模块还用于对数据查询结果的哈希获取与传输,所述数据缓存模块在每次查询后将数据查询结果更新至数据缓存,并在每次接收到查询指令时对缓存数据进行查询。
[0008]可选地,所述元数据管理模块采用图方式组织元数据关系,所述图方式采用G(V,E)表示,其中,顶点V包含数据源V
source
、表V
table
、字段V
field
、规则V
rule
和用户组V
group
,元数据关系图的边E包含映射E
map
、所属E
affiliation
、集成E
inte
和读权限E
read

[0009]为了解决上述技术问题,本申请实施例还提供一种基于图结构的数据虚拟化方法,应用于分布式元数据管理,所述基于图结构的数据虚拟化方法包括:根据元数据配置参数配置元数据关系图,并根据元数据关系图初始化缓存数据表;接收用户端发送的虚拟视图查询请求,并解析请求参数,得到虚拟视图SQL;将虚拟视图SQL转化为SQL查询语句;根据请求参数,在缓存和数据节点上执行所述SQL查询语句,得到集合数据;将所述集合数据形成虚拟视图反馈给所述用户端。
[0010]可选地,所述将虚拟视图SQL转化为SQL查询语句包括:步骤H1:根据元数据关系图将查询SQL中的字段加上表域描述符,生成的SQL入队列SqlQueue;步骤H2:读取SqlQueue队列首的SQL,若包含聚合函数,则将查询SQL中的组group和聚合函数进行拆解变换,并形成AGGREGATE执行动作入栈,并将变换后的SQL入队列SqlQueue,否则,则将原SQL重入队列SqlQueue,跳转至步骤H3,其中,拆解变换是将聚类函数查询拆解成完整数据查询和数据聚合两部分;步骤H3:读取SqlQueue队列首的SQL,若包含联合查询join,则将SQL分解为若干SQL查询语句,并形成JOIN执行动作入栈,将分解后的若干SQL依次入队列SqlQueue;否则,将原SQL重入队列SqlQueue,跳转至步骤H4;步骤H4:读取SqlQueue队列首的SQL,若包含内嵌查询SQL语句,则将SQL分解为若干SQL查询语句,将分解后的若干SQL依次入队列SqlQueue,否则,将原SQL重入队列SqlQueue,跳转至步骤H5;步骤H5:读取SqlQueue队列首的SQL,并提取读取的SQL关联的虚拟视图表和字段,并根据得到的虚拟视图表和字段重组查询语句,形成SOURCESQL执行动作入栈;步骤H6:检查SqlQueue队列是否为空,为空则结束,得到所述SQL查询语句,否则,跳转至步骤H2。
[0011]可选地,所述根据得到的虚拟视图表和字段重组查询语句,形成SOURCESQL执行动
作入栈包括:根据得到的虚拟视图表和字段重组查询语句形成(VTable,Field,Cond)的三元组列表;基于元数据关系图,将(VTable,Field,Cond)三元组列表映射成物理表与字段(Source,Table,Field,Cond),根据映射关系形成DATAINTE执行动作入栈;将(Source,Table,Field,Cond)四元组列表根据Source和Table进行分类,并根据分类重组查询语句,形成SOURCESQL执行动作入栈。
[0012]可选地,所述根据请求参数,在缓存和数据节点上执行所述SQL查询语句,得到集合数据包括:根据请求参数初始化任务,确定栈和SQL上下文;将所述SQL查询语句入SqlQueue队列,并依次在栈中执行动作,将得到的数据结果以<Out, Meta,数据结果>的格式存储到SQL上下文中,直本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于图结构的数据虚拟化系统,其特征在于,通过图结构实现数据虚拟化的元数据管理,所述基于图结构的数据虚拟化系统包括:元数据管理模块、虚拟视图SQL引擎、数据ETL模块、数据缓存模块和数据服务处理模块;其中,所述元数据管理模块用于根据设置条件进行数据虚拟视图的元数据配置,并管理维护元数据关系,所述元数据管理模块采用图方式组织元数据关系,所述图方式采用G(V,E)表示,其中,顶点V包含数据源V
source
、表V
table
、字段V
field
、规则V
rule
和用户组V
group
,元数据关系图的边E包含映射E
map
、所属E
affiliation
、集成E
inte
和读权限E
read
;所述虚拟视图SQL引擎用于对SQL语句进行解析,并根据元数据关系图构建各个数据源的子查询SQL,获其他数据读取参数;所述数据ETL模块根据子查询SQL或者其他数据读取参数进行数据提取;所述数据缓存模块用于对查询结果进行数据缓存;所述数据服务处理模块用于接收数据查询、统计请求,并经过其他模块处理后将提取的数据组合成虚拟视图。2.如权利要求1所述的基于图结构的数据虚拟化系统,其特征在于,所述数据ETL模块还用于对数据查询结果的哈希获取与传输,所述数据缓存模块在每次查询后将数据查询结果更新至数据缓存,并在每次接收到查询指令时对缓存数据进行查询。3.一种基于图结构的数据虚拟化方法,其特征在于,应用于权利要求1或2所述的基于图结构的数据虚拟化系统,所述基于图结构的数据虚拟化方法包括:根据元数据配置参数配置元数据关系图,并根据元数据关系图初始化缓存数据表;接收用户端发送的虚拟视图查询请求,并解析请求参数,得到虚拟视图SQL;将虚拟视图SQL转化为SQL查询语句;根据请求参数,在缓存和数据节点上执行所述SQL查询语句,得到集合数据;将所述集合数据形成虚拟视图反馈给所述用户端。4.如权利要求3所述的基于图结构的数据虚拟化方法,其特征在于,所述将虚拟视图SQL转化为SQL查询语句包括:步骤H1:根据元数据关系图将查询SQL中的字段加上表域描述符,生成的SQL入队列SqlQueue;步骤H2:读取SqlQueue队列首的SQL,若包含聚合函数,则将查询SQL中的组group和聚合函数进行拆解变换,并形成AGGREGATE执行动作入栈,并将变换后的SQL入队列SqlQueue,否则,则将原SQL重入队列SqlQueue,跳转至步骤H3,其中,拆解变换是将聚类函数查询拆解成完整数据查询和数据聚合两部分;步骤H3:读取SqlQueue队列首的SQL,若包含联合查询join,则将SQL分解为若干SQL查询语句,并形成JOIN执行动作入栈,将分解后的若干SQL依次入队列SqlQueue;否...

【专利技术属性】
技术研发人员:陈晓红曹文治胡东滨杨俊丰彭晗
申请(专利权)人:湖南红普创新科技发展有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1