一种数据查询的方法及设备技术

技术编号:15617318 阅读:192 留言:0更新日期:2017-06-14 03:41
本申请的目的是提供一种数据查询的方法及设备,本申请通过根据用户发送的待查询数据的查询请求获取数据字典的视图的定义;基于所述数据字典的视图的定义确定所述待查询数据的查询方式;根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息;将查询到的所述待查询数据的元信息反馈至所述用户。通过本申请所述的数据字典进行查询元数据,能够让元数据的查询规范化,结构化,且能够精准快速获取用户期望的元数据具体信息或统计信息;对于查询不同的元数据,通过统一的数据字典的接口,确定的查询链路方式不同,进而增加了操作系统所能提供的元数据的多样性。

【技术实现步骤摘要】
一种数据查询的方法及设备
本申请涉及计算机领域,尤其涉及一种数据查询的方法及设备。
技术介绍
随着传统企业业务的快速发展,大数据的处理需求成为了所有行业不可避免的问题。大数据平台中一般存储着很多的元数据对象,如表、视图,存储过程等等,而大数据平台普遍缺乏一种简单高效的元数据展现和查询方法。虽然关系型数据库普遍提供数据字典来查询数据库元数据,但关系型数据库的数据字典只应用于关系型数据库。大数据平台普遍没有数据字典的一个重要原因是,大多大数据平台查询和计算的数据和元数据是分离的,这给大数据平台的数据字典带来了难度。目前,大数据平台中普遍提供一系列非结构化的元数据查询命令来查询元信息,如“showtables”命令。对于元数据的非结构化查询的一系列命令,所能查询到的信息,第一个缺点是非结构化,对于非结构化的信息,关系型查询的大数据平台很难进一步从查询结果中精确获取信息,或者对查询的信息进行统计。第二个缺点是这些查询命令的可查询范围小,这些查询命令是从大数据平台存储元信息的独立数据库中获取信息,只能获取当前数据库有多少张表,当前平台有多少数据库这样的信息,无法获取一些临时元数据,平台信息,或者一些统计信息。第三个缺点是查询命令没有统一的规范。目前,还可利用用户自定义函数(UDF)直接获取元信息,但其语法不规范,而且用UDF抽取元信息的方法,很难知道用于获取元信息的UDF能获取到元信息的哪些列,而且UDF是基本上和数据库严格绑定,而数据字典组件和数据库产品并非严格绑定,而是能够可插拔式安装和卸载的。申请内容本申请的一个目的是提供一种数据查询的方法及设备,解决现有技术中大数据平台没有数据字典的、无法获取到临时元数据或一些统计信息等精准信息的问题。根据本申请的一个方面,提供了一种数据查询的方法,所述方法包括:根据用户发送的待查询数据的查询请求获取数据字典的视图的定义;基于所述数据字典的视图的定义确定所述待查询数据的查询方式;根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息;将查询到的所述待查询数据的元信息反馈至所述用户。进一步地,所述将查询到的所述待查询数据的元信息反馈至所述用户,包括:根据预设的权限过滤查询到的所述待查询数据的元信息,将过滤后的元信息反馈至所述用户。进一步地,所述根据用户发送的待查询数据的查询请求获取数据字典的视图的定义,包括:根据用户发送的待查询数据的查询请求判断所述待查询数据是否为临时数据表,得到判断结果,根据所述判断结果获取数据字典的视图的定义。进一步地,若所述判断结果为所述待查询数据为持久化数据表,所述基于所述数据字典的视图的定义确定所述待查询数据的查询方式,包括:根据获取到的数据字典的视图的定义确定所述待查询数据的查询方式为根据数据库链接查询所述待查询数据。进一步地,根据数据库链接查询所述待查询数据之前,包括:从所述数据字典的视图的定义中获取所述待查询数据对应的数据库链接和数据库链接下的表。进一步地,所述根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息,包括:根据所述数据库链接访问所述数据库链接下的表所在的关系型数据库;根据所述关系型数据库的视图的定义获得所述待查询数据的元信息。进一步地,所述待查询数据的元信息包括:所述持久化数据表的表名、存储类型、数据位置信息及事务类型。进一步地,若所述判断结果为所述待查询数据为临时数据表,所述基于所述数据字典的视图的定义确定所述待查询数据的查询方式,包括:根据获取到的数据字典的视图的定义确定所述待查询数据的查询方式为根据系统表的单条数据记录查询所述待查询数据。进一步地,根据系统表的单条数据记录查询所述待查询数据之前,包括:从所述数据字典的视图的定义中获取待使用的用户自定义函数或用户自定义的表生成函数及系统表的定义;根据所述系统表的定义获取所述系统表的单条数据记录。进一步地,所述根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息,包括:将所述系统表的单条数据记录作为所述待使用的用户自定义函数或用户自定义的表生成函数的输入数据;所述待使用的用户自定义函数或用户自定义的表生成函数,通过应用程序接口或预设的反射机制访问所述待查询数据所在的数据库,得到所述待查询数据的元信息。进一步地,通过应用程序接口或预设的反射机制访问所述待查询数据所在的数据库之前,包括:确定所述待查询数据所在的数据库,其中,所述数据库包括分布式文件系统、非关系型数据库、分布式内存列式存储引擎和分布式交互分析引擎服务中的一种或任几种组合。进一步地,所述待查询数据的元信息包括:所述临时数据表的表名、表类型、数据平台版本信息、所述临时数据表的数据量及划分所述临时数据表的规则。根据本申请的另一方面,还提供了一种数据查询的设备,所述设备包括:获取装置,用于根据用户发送的待查询数据的查询请求获取数据字典的视图的定义;确定装置,用于基于所述数据字典的视图的定义确定所述待查询数据的查询方式;查询装置,用于根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息;反馈装置,用于将查询到的所述待查询数据的元信息反馈至所述用户。进一步地,所述反馈装置用于:根据预设的权限过滤查询到的所述待查询数据的元信息,将过滤后的元信息反馈至所述用户。进一步地,所述获取装置用于:根据用户发送的待查询数据的查询请求判断所述待查询数据是否为临时数据表,得到判断结果,根据所述判断结果获取数据字典的视图的定义。进一步地,若所述判断结果为所述待查询数据为持久化数据表,所述确定装置用于:根据获取到的数据字典的视图的定义确定所述待查询数据的查询方式为根据数据库链接查询所述待查询数据。进一步地,所述确定装置还用于:从所述数据字典的视图的定义中获取所述待查询数据对应的数据库链接和数据库链接下的表。进一步地,所述查询装置用于:根据所述数据库链接访问所述数据库链接下的表所在的关系型数据库;根据所述关系型数据库的视图的定义获得所述待查询数据的元信息。进一步地,所述待查询数据的元信息包括:所述持久化数据表的表名、存储类型、数据位置信息及事务类型。进一步地,若所述判断结果为所述待查询数据为临时数据表,所述确定装置用于:根据获取到的数据字典的视图的定义确定所述待查询数据的查询方式为根据系统表的单条数据记录查询所述待查询数据。进一步地,所述确定装置还用于:从所述数据字典的视图的定义中获取待使用的用户自定义函数或用户自定义的表生成函数及系统表的定义;根据所述系统表的定义获取所述系统表的单条数据记录。进一步地,所述查询装置用于:将所述系统表的单条数据记录作为所述待使用的用户自定义函数或用户自定义的表生成函数的输入数据;所述待使用的用户自定义函数或用户自定义的表生成函数,通过应用程序接口或预设的反射机制访问所述待查询数据所在的数据库,得到所述待查询数据的元信息。进一步地,所述设备还包括:存储确定装置,用于确定所述待查询数据所在的数据库,其中,所述数据库包括分布式文件系统、非关系型数据库、分布式内存列式存储引擎和分布式交互分析引擎服务中的一种或任几种组合。进一步地,所述待查询数据的元信息包括:所述临时数据表的表名、表类型、数据平台版本信息、所述临时数据表的本文档来自技高网...
一种数据查询的方法及设备

【技术保护点】
一种数据查询的方法,其中,所述方法包括:根据用户发送的待查询数据的查询请求获取数据字典的视图的定义;基于所述数据字典的视图的定义确定所述待查询数据的查询方式;根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息;将查询到的所述待查询数据的元信息反馈至所述用户。

【技术特征摘要】
1.一种数据查询的方法,其中,所述方法包括:根据用户发送的待查询数据的查询请求获取数据字典的视图的定义;基于所述数据字典的视图的定义确定所述待查询数据的查询方式;根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息;将查询到的所述待查询数据的元信息反馈至所述用户。2.根据权利要求1所述的方法,其中,将查询到的所述待查询数据的元信息反馈至所述用户,包括:根据预设的权限过滤查询到的所述待查询数据的元信息,将过滤后的元信息反馈至所述用户。3.根据权利要求1所述的方法,其中,根据用户发送的待查询数据的查询请求获取数据字典的视图的定义,包括:根据用户发送的待查询数据的查询请求判断所述待查询数据是否为临时数据表,得到判断结果,根据所述判断结果获取数据字典的视图的定义。4.根据权利要求3所述的方法,其中,若所述判断结果为所述待查询数据为持久化数据表,基于所述数据字典的视图的定义确定所述待查询数据的查询方式,包括:根据获取到的数据字典的视图的定义确定所述待查询数据的查询方式为根据数据库链接查询所述待查询数据。5.根据权利要求4所述的方法,其中,根据数据库链接查询所述待查询数据之前,包括:从所述数据字典的视图的定义中获取所述待查询数据对应的数据库链接和数据库链接下的表。6.根据权利要求5所述的方法,其中,根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息,包括:根据所述数据库链接访问所述数据库链接下的表所在的关系型数据库;根据所述关系型数据库的视图的定义获得所述待查询数据的元信息。7.根据权利要求6所述的方法,其中,所述待查询数据的元信息包括:所述持久化数据表的表名、存储类型、数据位置信息及事务类型。8.根据权利要求3所述的方法,其中,若所述判断结果为所述待查询数据为临时数据表,基于所述数据字典的视图的定义确定所述待查询数据的查询方式,包括:根据获取到的数据字典的视图的定义确定所述待查询数据的查询方式为根据系统表的单条数据记录查询所述待查询数据。9.根据权利要求8所述的方法,其中,根据系统表的单条数据记录查询所述待查询数据之前,包括:从所述数据字典的视图的定义中获取待使用的用户自定义函数或用户自定义的表生成函数及系统表的定义;根据所述系统表的定义获取所述系统表的单条数据记录。10.根据权利9所述的方法,其中,根据所述查询方式访问所述待查询数据所在的数据库,得到所述待查询数据的元信息,包括:将所述系统表的单条数据记录作为所述待使用的用户自定义函数或用户自定义的表生成函数的输入数据;所述待使用的用户自定义函数或用户自定义的表生成函数,通过应用程序接口或预设的反射机制访问所述待查询数据所在的数据库,得到所述待查询数据的元信息。11.根据权利要求10所述的方法,其中,通过应用程序接口或预设的反射机制访问所述待查询数据所在的数据库之前,包括:确定所述待查询数据所在的数据库,其中,所述数据库包括分布式文件系统、非关系型数据库、分布式内存列式存储引擎和分布式交互分析引擎服务中的一种或任几种组合。12.根据权利...

【专利技术属性】
技术研发人员:靳峥孙若曦
申请(专利权)人:星环信息科技上海有限公司
类型:发明
国别省市:上海,31

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

1