一种基于JDBC的数据库直查方法、装置及系统与流程

文档序号:19906769发布日期:2020-02-11 14:35阅读:164来源:国知局
一种基于JDBC的数据库直查方法、装置及系统与流程

本发明涉及数据库领域,特别涉及一种基于jdbc的数据库直查方法、装置及系统。



背景技术:

数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。

在数据库的发展历史上,数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展,数据库技术在各个方面的快速的发展。特别是关系型数据库已经成为目前数据库产品中最重要的一员,80年代以来,几乎所有的数据库厂商新出的数据库产品都支持关系型数据库,即使一些非关系数据库产品也几乎都有支持关系数据库的接口。这主要是传统的关系型数据库可以比较好的解决管理和存储关系型数据的问题。

现有的系统如申请号:cn201710009824.9名称为一种统计数据的即席查询方法及系统所述,采用presto,impala等(内存计算型)对数据分析系统进行查询处理,presto,impala可高效对hive,hbase等大数据产品进行快速检索,但是对传统关系型数据库效率低下。



技术实现要素:

本发明的目的在于:提供了一种基于jdbc的数据库直查方法、装置及系统,解决了现有的系统采用presto,impala等对数据分析系统进行查询处理,presto,impala可高效对hive,hbase等大数据产品进行快速检索,但是对传统关系型数据库效率低下的问题。

本发明采用的技术方案如下:

一种基于jdbc的数据库直查方法,包括数据库和数据分析平台,还包括以下步骤:

s1、用户通过数据分析平台对数据源进行操作;

s2、数据分析平台根据用户的操作生成对应的sql语句;

s3、数据分析平台将步骤s2生成的sql语句提交到数据库;

s4、数据库对数据分析平台提交的sql语句进行解析,处理后返回数据到数据分析平台。

本方案区别于现有使用presto引擎进行数据查询,省去了presto集群和对presto引擎进行操作,减小了服务器负担,基于jdbc的数据分析平台数据直查功能,用户在使用数据分析平台对数据源进行操作的过程产生不同数据库sql,平台通过jdbc形式将sql提交到客户数据库,利用数据库对sql良好的处理能力实现应用层减少内存占用,快速检索数据的能力。

进一步的,所述步骤s1中用户通过数据分析平台在数据集中通过数据处理节点操作数据源。

进一步的,所述步骤s2中,数据分析平台根据用户的操作生成对应的sql方言语句。

进一步的,所述sql方言语句的生成包括以下步骤:

s5、数据分析平台上预录入数据库类型和与数据库类型匹配的sql方言;

s6、步骤s1中用户通过数据分析平台对数据源进行操作时,数据分析平台根据数据源可以判断需要查询的数据库类型;

s7、数据分析平台根据需要查询的数据库类型调取与数据库类型匹配的sql方言生成对应的sql方言语句。

采用上述方法,由于数据库类型较多,对应的sql方言也包括mysql、hivesql、sparksql和oracle等方言,由于本方案省略了presto集群而由数据分析平台直接发送对应的数据库进行查询,因此数据分析平台需要生成与数据库匹配的sql方言,本方案采取上述方案生成与数据库匹配的sql方言,首先,在数据分析平台上录入客户指定的或现有的所有数据库类型,由于sql语句是结构化查询语言,均包括数据查询语言(dql)、数据操作语言(dml)、事务控制语言(tcl)、数据控制语言(dcl)、数据定义语言(ddl)和指针控制语言(ccl)6类查询语言,因此,还在数据分析平台上录入与数据库匹配的6类查询语言,步骤s1中用户通过数据分析平台对数据源进行操作时,数据分析平台根据数据源可以判断需要查询的数据库类型,然后数据分析平台根据需要查询的数据库类型及用户的操作调取与数据库类型匹配的6类查询语言生成对应的sql方言语句。

进一步的,所述步骤s3中,数据分析平台采用jdbc形式将步骤s2生成的sql语句提交到数据库。

一种基于jdbc的数据库直查装置,包括:

存储器,用于存储可执行指令;

多核处理器,用于执行所述存储器中存储的可执行指令,装载有数据分析平台实现上述的一种基于jdbc的数据库直查方法。

进一步的,还包括用于展示数据库返回数据的显示设备。

一种基于jdbc的数据库直查系统,包括上述的数据库直查装置,还包括装载有上述数据库的装置。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1.本发明一种基于jdbc的数据库直查方法、装置及系统,可以减少查询引擎服务器数量,以前往往为了提升查询效率和增加查询内存都是多台服务器进行presto集群,降低应用内存消耗,提高查询效率,提升用户感知;

2.本发明一种基于jdbc的数据库直查方法、装置及系统,解决了现有的系统采用presto,impala等对数据分析系统进行查询处理,presto,impala可高效对hive,hbase等大数据产品进行快速检索,但是对传统关系型数据库效率低下的问题。

3.本发明一种基于jdbc的数据库直查方法、装置及系统,相比于现有方案,节约了系统资源,简化了步骤,加快了查询速度。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是本发明的计算流程示意图;

图2是现有数据库查询计算流程示意图;

图3是现有本方案与现有技术相比查询时间和系统资源占用对比图。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

为了使本发明的目的、技术方案和优点更加清楚,下面将结合图1至图3对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

jdbc:(javadatabaseconnectivity,java数据库连接)是一种用于执行sql语句的javaapi,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

sql:结构化查询语言(structuredquerylanguage)简称sql,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

数据源:对文件,数据库这类数据来源的统称。

数据处理节点:是商业智能分析平台对数据处理功能的细分节点,其中包括表关联、字段过来、数据过滤、计算字段、分组统计、数据类型等功能,主要是对数据源进行数据的清洗、过滤、拆分等等一系列处理功能

数据集(dataset):对数据源采用数据处理节点配置后的统称,一个数据集可以包含一个或者多个数据源,一个或者多个数据处理节点,生成的数据集可以认为是一个虚拟的数据源(虚拟表)

分析(card):是对数据集处理后过程产生的维度,度量进行配置查询和数据关联图形组件的模块,在模块中可以将一个数据集产生的维度指标绑定到多个不通类型的展示组件上。

数据库(db):数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,用户可以对文件中的数据进行新增、查询、更新、删除等操作。

实施例1

本实施例一种基于jdbc的数据库直查方法,包括数据库和数据分析平台,其特征在于:还包括以下步骤:

s1、用户通过数据分析平台对数据源进行操作;

s2、数据分析平台根据用户的操作生成对应的sql语句;

s3、数据分析平台将步骤s2生成的sql语句提交到数据库;

s4、数据库对数据分析平台提交的sql语句进行解析,处理后返回数据到数据分析平台。

实施例2

进一步的,所述步骤s1中用户通过数据分析平台在数据集中通过数据处理节点操作数据源。

进一步的,所述步骤s2中,数据分析平台根据用户的操作生成对应的sql方言语句。

进一步的,所述步骤s3中,数据分析平台采用jdbc形式将步骤s2生成的sql语句提交到数据库。

实施例3

本实施例与实施例2的区别在于,所述sql方言语句的生成包括以下步骤:

s5、数据分析平台上预录入数据库类型和与数据库类型匹配的sql方言;

s6、步骤s1中用户通过数据分析平台对数据源进行操作时,数据分析平台根据数据源可以判断需要查询的数据库类型;

s7、数据分析平台根据需要查询的数据库类型调取与数据库类型匹配的sql方言生成对应的sql方言语句。

用户通过在数据集中选择数据源,此时根据数据源数据分析平台可以了解需要查询的数据库类型,根据类型分析平台从而产生不同数据库的方言语句。

具体的,以mysql与oracle参照,若客户有对a表查询b1,b2,b3,b4需求且限制10000条的要求,那么方言sql产生示例如下:

mysql:selectb1,b2,b3,b4fromalimit10000

oracle:selectb1,b2,b3,b4fromarownum10000

同样的针对方言,系统中不同功能的节点所产生的语句也是差异化的。具体的语句由用户的操作决定。

实施例4

一种基于jdbc的数据库直查装置,包括:

存储器,用于存储可执行指令;

多核处理器,用于执行所述存储器中存储的可执行指令,装载有数据分析平台实现上述的一种基于jdbc的数据库直查方法。

进一步的,还包括用于展示数据库返回数据的显示设备。

实施例5

一种基于jdbc的数据库直查系统,包括上述的数据库直查装置,还包括装载有上述数据库的装置。

实施例6

本实施例为现有数据库查询方法:采用数据查询引擎为presto,presto是一个开源的分布式sql查询引擎,提供有数据查询等api接口。通过jdbc与presto进行连接,提交由商业智能分析平台生成的prestosql给presto,presto执行prestosql。数据查询引擎还可以为hive、impala、shark或stinger等。

实施例7

如图3所示,本实施例为本方案与现有数据库查询方法的对比,用户对同样的数据库进行同样从查询操作,可以看出本方案与现有数据库查询方法相比,内存占用约为1/15,耗时约为现有方法的1/10,相比于现有方法,本方案在内存占用和耗时上均有显著的提升,同时由于本方案不需要在数据分析平台上部署presto集群,数据分析平台需要想硬件要求也有所下降。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1