一种基于jdbc的数据分布式处理方法

文档序号:6438187阅读:293来源:国知局
专利名称:一种基于jdbc的数据分布式处理方法
技术领域
本发明涉及数据处理,特别涉及一种基于JDBC的数据分布式处理方法,属于数据存储与检索领域。
背景技术
当应用系统处理的数据规模不断增大时,满足这些海量数据的存储与处理要求一般有两种方式,一种是采用性能更高的小型机、大型机设备,另一种是采用普通机器组成的集群。因为集群有着出众的性价比,目前已经在很大程度上代替了大型机,Web服务器和应用服务器上的应用就是很好的体现。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,与数据库建立连接、发送操作数据库的语句并处理结果。JVM是(Java Virtual Machine,Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。在数据存储与处理中,虽然集群提供了高性能和强容错能力,但是这方面的工具就少得多,并且主要是面向大企业的解决方案。商务解决方案如Oracle Real Application Clusters,已经开始从事应用共享存储系统;IBM的DB2 Integrated Cluster环境中应用了网络共享存储;而在开源阵营的数据库集群方面,MySQL复制技术应用主从机制来实现。 这些技术明显的缺陷是为了实现集群的特性,必须扩展数据库引擎,所以应用程序要用一些额外的 API,API (Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。并且这些不同技术的不同实现方式之间很难相互协作。

发明内容
本发明的目的是提出一种基于JDBC的数据分布式处理方法,它能把一系列不同类型的实体数据库转换成一个统一的虚拟数据库,各个实体数据库的表结构相同,客户端或Web应用程序通过加载虚拟数据库JDBC驱动,可以按照JDBC规范向虚拟数据库发送SQL 请求,实现对各个实体数据库的数据检索、插入、更新和删除等操作。为了解决上述技术问题,本发明的技术方案包括一种基于JDBC的数据分布式处理方法,具体步骤如下1)在基于Java规范开发的客户端或Web应用程序的类加载路径中设置虚拟数据库JDBC驱动包文件位置,使所述应用程序能加载该驱动包,和虚拟数据库建立连接,并按照JDBC规范向虚拟数据库发送SQL调用请求;2)虚拟数据库是一种基于Java规范开发的服务器端应用程序,使用配置管理工具进行参数设置,以便通过JDBC驱动层中厂商提供的驱动分别与各实体数据库建立连接, 将数据缓存和/或存储于分布式系统的多个数据库中;3)所述虚拟数据库的数据分布式处理器接收数据SQL调用请求,并进行语句分析,然后分发执行,查询和/或更新实体数据库中的数据,实现数据的分布式处理。如应用的数据量大,超过了单节点处理能力,则把数据分散存储于多节点集群中; 如应用的数据量小,则把数据多重备份在多个节点集群中。所述数据分布式处理器包括SQL调用接口、SQL语句分析器、SQL语句执行器、调度分发器、数据缓存、连接池、数据访问插件管理器、Oracle数据访问、MySQL数据访问、用户安全、日志维护、配置管理等模块。所述JDBC驱动层包括=Oracle驱动、MYsql驱动层以及其他厂商提供的符合JDBC 规范驱动。所述数据库包括Oracle数据库、MySQL数据库以及其他厂商数据库。所述虚拟数据库JDBC驱动包是一个符合JDBC规范的驱动程序,能够在JVM中运行,使用户能与虚拟数据库管理系统进行通讯,用户的SQL语句被送往虚拟数据库中,而其结果将被送回给用户。本发明主要用于在特定环境下,如应用的数据量大,超过了单节点处理能力,可采用本方法按垂直扩展方式,把数据分散存储于多节点集群中,通过分布式处理来满足需求; 如应用的数据量小,但用户的并发请求多,可采用本方法按横向扩展方式,把数据多重备份在多个节点集群中,通过对请求进行负载均衡来提高并发响应能力。本发明的有益效果1.应用简单,只需要在原有应用程序的类加载路径中加入虚拟数据库驱动包,对虚拟数据库进行简单配置,即可提高原有程序的数据处理能力,适应不同数据量的数据处理。2.扩展性强,可通过垂直扩展方式提高数据存储能力,也可通过横向扩展方式提高并发处理能力。


图1是本发明所述的数据分布式处理方法实施示意图;图2是本发明所述的数据分布式处理方法流程具体实施例方式下面结合附图,对本发明的较佳实施例做进一步详细说明。如图1所示,在基于Java规范开发的客户端或Web应用程序的类加载路径中设置虚拟数据库JDBC驱动包文件位置,使所述应用程序能加载该驱动包,和虚拟数据库建立连接,按照JDBC规范发送SQL检索、插入、更新和删除等操作调用请求给虚拟数据库;虚拟数据库是一种基于Java规范开发的服务器端应用程序,使用配置管理工具进行参数设置,以便通过JDBC驱动层中厂商提供的驱动分别与各实体数据库建立连接,将数据缓存和/或存储于分布式系统的多个数据库中;虚拟数据库接收到应用程序的SQL调用请求后,通过数据分布式处理器进行语句分析,然后分发执行,以实现数据的分布式处理,数据分布式处理器包括SQL调用接口、SQL语句分析器、SQL语句执行器、调度分发器、数据缓存、连接池、数据访问插件管理器、Oracle数据访问、MySQL数据访问、用户安全、日志维护、配置管理等模块。实体数据库可以是Oracle数据库、MySQL数据库、SQL krver数据库,也可以是其他厂商数据库,只要开发对应的数据访问插件,然后部署在数据分布式处理器中。如图2所示,本发明提出一种基于JDBC的数据分布式处理方法,以Web应用程序为例,其处理流程如下(1)在Web应用程序中,按照JDBC规范封装SQL检索、插入、更新和删除等操作调用请求;(2)通过虚拟数据库JDBC驱动包,Web应用程序和虚拟数据库建立连接,通过此连接将步骤1)中封装好的SQL调用请求发送给虚拟数据库。(3)虚拟数据库通过连接池模块管理和Web应用程序建立的所有连接,并通过用户安全和日志维护模块对Web应用程序的SQL操作进行授权与审计。(4)对于接收到的SQL调用请求,通过SQL调用接口,转换成虚拟数据库支持的 SQL调用语句。(5) SQL语句分析器根据虚拟数据库的参数配置,判断本次SQL调用请求涉及哪些表,需要哪些数据访问插件参与,以及结果集的处理方式,并组装成各数据访问插件能够识别的执行命令,然后把执行命令发送给SQL语句执行器。根据业务应用的具体情况,虚拟数据库的参数配置不同对于存在大量数据的表,参数配置可将数据分散存储于多个实际的数据库;对于小数据量的表,可进行冗余存储,进而通过多重备份来增加系统的可靠性和并发性能。SQL语句分析器可以根据不同的业务应用情况设置结果集处理方式,对于分散存储模式,采用多库结果集归并处理方式;对于多重备份模式,采用负载均衡,选择最佳的数据库执行并返回结果。(6) SQL语句执行器接收到执行命令后,首先判断是否可以使用缓存并且缓存数据有效,如是则直接调用数据缓存模块将结果返回给Web应用程序,否则将执行命令送给调度分发器执行,根据执行命令设置的结果集处理方式,对调度分发器返回的结果集进行处理,然后将结果返回给Web应用程序,并调用数据缓存模块更新缓存。(7)调度分发器对接收的执行命令,根据命令类别从数据访问插件管理器中获取对应的数据访问插件,然后调用数据访问插件相应接口执行命令,并将结果返回给SQL语句执行器进行处理。如果涉及多个实体数据库,每个都会被调度执行。(8)数据访问插件封装实体数据库的访问接口,一般通过JDBC驱动的方式和实体数据库建立连接,将SQL调用请求发送给实体数据库管理系统执行并收集返回结果。不同厂商的数据库有各自的数据访问插件,如Oracle数据访问插件、MySQL数据访问插件、SQL Server数据访问插件等,所有的数据访问插件都需要通过虚拟数据库配置管理工具在数据访问插件管理器中注册。(9)数据分布式处理器所提供用户安全、日志维护、配置管理模块属于基础模块, 为其他模块提供配置、授权与审计服务,以增加系统的安全性、可靠性。
权利要求
1.一种基于JDBC的数据分布式处理方法,其步骤包括1)在客户端或Web应用程序中设置虚拟数据库JDBC驱动包文件,建立虚拟数据库连接,并按照JDBC规范向虚拟数据库发送SQL调用请求;2)虚拟数据库进行参数设置,通过JDBC驱动层与各实体数据库建立连接,将数据缓存和/或存储于分布式系统的多个数据库中;3)所述虚拟数据库的数据分布式处理器接收数据SQL调用请求,并进行语句分析,然后分发执行,实现数据的分布式处理。
2.如权利要求1所述的处理方法,其特征在于,所述数据分布式处理器包括参数配置,对多节点实体数据库进行配置形成统一的虚拟数据库;SQL语句分析器,对接收的SQL 调用请求进行语句分析;SQL语句执行器,执行SQL命令;调度分发器,实现多节点实体数据库的SQL调用分发执行;数据缓存器,缓存JDBC的数据更新。
3.如权利要求1所述的处理方法,其特征在于,所述虚拟数据库中,如应用的数据量大,超过了单节点处理能力,则把数据分散存储于实际数据库中多节点集群中;如应用的数据量小,则把数据多重备份在实际数据库中多个节点集群中。
4.如权利要求1所述的处理方法,其特征在于,所述JDBC驱动层包括=Oracle驱动、 MySQL驱动层、SQL Server驱动层及其他厂商符合JDBC规范的驱动。
5.如权利要求1所述的处理方法,其特征在于,所述实体数据库包括Oracle数据库、 MySQL数据库、SQL krver数据库。
6.如权利要求1所述的处理方法,其特征在于,所述数据分布式处理器还包括数据访问插件管理器。
7.如权利要求1所述的处理方法,其特征在于,所述数据分布式处理器还包括用户安全、日志维护及配置管理模块。
全文摘要
本发明涉及一种基于JDBC的数据分布式处理方法,具体步骤如下1)在客户端或Web应用程序中设置虚拟数据库JDBC驱动包文件,建立虚拟数据库连接,并按照JDBC规范向虚拟数据库发送SQL调用请求;2)在虚拟数据库进行参数设置,通过JDBC驱动层与各实体数据库建立连接,将数据缓存和/或存储于分布式系统的多个数据库中;3)所述虚拟数据库的数据分布式处理器接收数据SQL调用请求,并进行语句分析,然后分发执行,实现数据的分布式处理。本发明只需要在原有应用程序的类加载路径中加入虚拟数据库驱动包,对虚拟数据库进行简单配置,即可提高原有程序的数据处理能力;扩展性强,可通过垂直扩展方式提高数据存储能力,也可通过横向扩展方式提高并发处理能力。
文档编号G06F17/30GK102385628SQ20111035943
公开日2012年3月21日 申请日期2011年11月14日 优先权日2011年11月14日
发明者李艳红 申请人:北京锐安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1