一种基于JDBC的数据分布式处理方法技术

技术编号:7208465 阅读:206 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于JDBC的数据分布式处理方法,具体步骤如下:1)在客户端或Web应用程序中设置虚拟数据库JDBC驱动包文件,建立虚拟数据库连接,并按照JDBC规范向虚拟数据库发送SQL调用请求;2)在虚拟数据库进行参数设置,通过JDBC驱动层与各实体数据库建立连接,将数据缓存和/或存储于分布式系统的多个数据库中;3)所述虚拟数据库的数据分布式处理器接收数据SQL调用请求,并进行语句分析,然后分发执行,实现数据的分布式处理。本发明专利技术只需要在原有应用程序的类加载路径中加入虚拟数据库驱动包,对虚拟数据库进行简单配置,即可提高原有程序的数据处理能力;扩展性强,可通过垂直扩展方式提高数据存储能力,也可通过横向扩展方式提高并发处理能力。

【技术实现步骤摘要】

本专利技术涉及数据处理,特别涉及一种基于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语句执行器。根据业务应用的具体情况,虚拟数据库的参数配置不同对于存在大量数据的表,参数配置可将数据分散存储于多个实际的数据库;对于小本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李艳红
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:

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

1
相关领域技术