CN102385628A - 一种基于jdbc的数据分布式处理方法 - Google Patents
一种基于jdbc的数据分布式处理方法 Download PDFInfo
- Publication number
- CN102385628A CN102385628A CN2011103594351A CN201110359435A CN102385628A CN 102385628 A CN102385628 A CN 102385628A CN 2011103594351 A CN2011103594351 A CN 2011103594351A CN 201110359435 A CN201110359435 A CN 201110359435A CN 102385628 A CN102385628 A CN 102385628A
- Authority
- CN
- China
- Prior art keywords
- data
- jdbc
- sql
- virtual
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于JDBC的数据分布式处理方法,具体步骤如下:1)在客户端或Web应用程序中设置虚拟数据库JDBC驱动包文件,建立虚拟数据库连接,并按照JDBC规范向虚拟数据库发送SQL调用请求;2)在虚拟数据库进行参数设置,通过JDBC驱动层与各实体数据库建立连接,将数据缓存和/或存储于分布式***的多个数据库中;3)所述虚拟数据库的数据分布式处理器接收数据SQL调用请求,并进行语句分析,然后分发执行,实现数据的分布式处理。本发明只需要在原有应用程序的类加载路径中加入虚拟数据库驱动包,对虚拟数据库进行简单配置,即可提高原有程序的数据处理能力;扩展性强,可通过垂直扩展方式提高数据存储能力,也可通过横向扩展方式提高并发处理能力。
Description
技术领域
本发明涉及数据处理,特别涉及一种基于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 Server数据库,也可以是其他厂商数据库,只要开发对应的数据访问插件,然后部署在数据分布式处理器中。
如图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)数据分布式处理器所提供用户安全、日志维护、配置管理模块属于基础模块,为其他模块提供配置、授权与审计服务,以增加***的安全性、可靠性。
Claims (7)
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 Server数据库。
6.如权利要求1所述的处理方法,其特征在于,所述数据分布式处理器还包括数据访问插件管理器。
7.如权利要求1所述的处理方法,其特征在于,所述数据分布式处理器还包括用户安全、日志维护及配置管理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110359435.1A CN102385628B (zh) | 2011-11-14 | 2011-11-14 | 一种基于jdbc的数据分布式处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110359435.1A CN102385628B (zh) | 2011-11-14 | 2011-11-14 | 一种基于jdbc的数据分布式处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102385628A true CN102385628A (zh) | 2012-03-21 |
CN102385628B CN102385628B (zh) | 2015-05-13 |
Family
ID=45825044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110359435.1A Active CN102385628B (zh) | 2011-11-14 | 2011-11-14 | 一种基于jdbc的数据分布式处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102385628B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336782A (zh) * | 2013-05-30 | 2013-10-02 | 莱诺斯科技(北京)有限公司 | 一种关系型分布式数据库*** |
CN103678354A (zh) * | 2012-09-11 | 2014-03-26 | ***通信集团公司 | 基于云计算平台的本地关系型数据库节点调度方法和装置 |
CN103885995A (zh) * | 2012-12-21 | 2014-06-25 | ***通信集团河北有限公司 | 一种基于表的数据库监控方法和装置 |
CN104363165A (zh) * | 2014-11-14 | 2015-02-18 | 华东电网有限公司 | 一种内外网隔离环境下的信息互动***及数据集成方法 |
CN106066890A (zh) * | 2016-06-16 | 2016-11-02 | 上海天玑科技股份有限公司 | 一种分布式高性能数据库一体机*** |
CN106874109A (zh) * | 2016-12-29 | 2017-06-20 | 朗新科技股份有限公司 | 一种分布式作业分发处理方法及*** |
CN107402941A (zh) * | 2016-07-22 | 2017-11-28 | 延边众生云计算科技有限公司 | 通用数据交换接口及其实现方法 |
CN107463511A (zh) * | 2017-01-23 | 2017-12-12 | 北京思特奇信息技术股份有限公司 | 一种基于多级缓存的数据国际化实现方法及装置 |
CN108762112A (zh) * | 2018-06-12 | 2018-11-06 | 哈尔滨理工大学 | 一种基于虚拟现实的工业机器人仿真与实时控制*** |
CN109828983A (zh) * | 2018-12-15 | 2019-05-31 | 平安科技(深圳)有限公司 | Pg数据库处理方法、装置、电子设备及存储介质 |
CN110147508A (zh) * | 2017-10-26 | 2019-08-20 | 北京京东尚科信息技术有限公司 | 一种***限流的方法和装置 |
CN111367983A (zh) * | 2020-03-10 | 2020-07-03 | 中国联合网络通信集团有限公司 | 数据库访问方法、***、设备和存储介质 |
CN112688976A (zh) * | 2019-10-17 | 2021-04-20 | 广州迈安信息科技有限公司 | 一种采用jdbc/http标准的数据处理传输服务*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093502A (zh) * | 2007-06-19 | 2007-12-26 | 深圳市迈科龙电子有限公司 | 一种数据库保密结构及其使用方法 |
CN101187937A (zh) * | 2007-10-30 | 2008-05-28 | 北京航空航天大学 | 网格环境下模式复用的异构数据库访问和集成方法 |
CN101833620A (zh) * | 2010-04-28 | 2010-09-15 | 国网电力科学研究院 | 一种基于自定义安全jdbc驱动的数据库防护方法 |
CN101840352A (zh) * | 2010-04-29 | 2010-09-22 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
CN101853274A (zh) * | 2010-05-10 | 2010-10-06 | 浪潮电子信息产业股份有限公司 | 一种实现异种数据库互联的方法 |
US20110093435A1 (en) * | 2009-10-21 | 2011-04-21 | Delphix Corp. | Virtual Database System |
CN102065097A (zh) * | 2010-12-27 | 2011-05-18 | 北京像素软件科技股份有限公司 | 一种客户端与服务器操作同步的方法 |
-
2011
- 2011-11-14 CN CN201110359435.1A patent/CN102385628B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093502A (zh) * | 2007-06-19 | 2007-12-26 | 深圳市迈科龙电子有限公司 | 一种数据库保密结构及其使用方法 |
CN101187937A (zh) * | 2007-10-30 | 2008-05-28 | 北京航空航天大学 | 网格环境下模式复用的异构数据库访问和集成方法 |
US20110093435A1 (en) * | 2009-10-21 | 2011-04-21 | Delphix Corp. | Virtual Database System |
CN101833620A (zh) * | 2010-04-28 | 2010-09-15 | 国网电力科学研究院 | 一种基于自定义安全jdbc驱动的数据库防护方法 |
CN101840352A (zh) * | 2010-04-29 | 2010-09-22 | 中兴通讯股份有限公司 | 一种数据库连接池的监控方法及装置 |
CN101853274A (zh) * | 2010-05-10 | 2010-10-06 | 浪潮电子信息产业股份有限公司 | 一种实现异种数据库互联的方法 |
CN102065097A (zh) * | 2010-12-27 | 2011-05-18 | 北京像素软件科技股份有限公司 | 一种客户端与服务器操作同步的方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678354A (zh) * | 2012-09-11 | 2014-03-26 | ***通信集团公司 | 基于云计算平台的本地关系型数据库节点调度方法和装置 |
CN103885995A (zh) * | 2012-12-21 | 2014-06-25 | ***通信集团河北有限公司 | 一种基于表的数据库监控方法和装置 |
CN103885995B (zh) * | 2012-12-21 | 2017-05-03 | ***通信集团河北有限公司 | 一种基于表的数据库监控方法和装置 |
CN103336782A (zh) * | 2013-05-30 | 2013-10-02 | 莱诺斯科技(北京)有限公司 | 一种关系型分布式数据库*** |
CN103336782B (zh) * | 2013-05-30 | 2016-09-21 | 莱诺斯科技(北京)股份有限公司 | 一种关系型分布式数据库*** |
CN104363165A (zh) * | 2014-11-14 | 2015-02-18 | 华东电网有限公司 | 一种内外网隔离环境下的信息互动***及数据集成方法 |
CN106066890A (zh) * | 2016-06-16 | 2016-11-02 | 上海天玑科技股份有限公司 | 一种分布式高性能数据库一体机*** |
CN106066890B (zh) * | 2016-06-16 | 2020-02-18 | 上海天玑科技股份有限公司 | 一种分布式高性能数据库一体机*** |
CN107402941A (zh) * | 2016-07-22 | 2017-11-28 | 延边众生云计算科技有限公司 | 通用数据交换接口及其实现方法 |
CN106874109A (zh) * | 2016-12-29 | 2017-06-20 | 朗新科技股份有限公司 | 一种分布式作业分发处理方法及*** |
CN107463511A (zh) * | 2017-01-23 | 2017-12-12 | 北京思特奇信息技术股份有限公司 | 一种基于多级缓存的数据国际化实现方法及装置 |
CN107463511B (zh) * | 2017-01-23 | 2020-06-26 | 北京思特奇信息技术股份有限公司 | 一种基于多级缓存的数据国际化实现方法及装置 |
CN110147508A (zh) * | 2017-10-26 | 2019-08-20 | 北京京东尚科信息技术有限公司 | 一种***限流的方法和装置 |
CN108762112A (zh) * | 2018-06-12 | 2018-11-06 | 哈尔滨理工大学 | 一种基于虚拟现实的工业机器人仿真与实时控制*** |
CN109828983A (zh) * | 2018-12-15 | 2019-05-31 | 平安科技(深圳)有限公司 | Pg数据库处理方法、装置、电子设备及存储介质 |
CN109828983B (zh) * | 2018-12-15 | 2024-05-07 | 平安科技(深圳)有限公司 | Pg数据库处理方法、装置、电子设备及存储介质 |
CN112688976A (zh) * | 2019-10-17 | 2021-04-20 | 广州迈安信息科技有限公司 | 一种采用jdbc/http标准的数据处理传输服务*** |
CN111367983A (zh) * | 2020-03-10 | 2020-07-03 | 中国联合网络通信集团有限公司 | 数据库访问方法、***、设备和存储介质 |
CN111367983B (zh) * | 2020-03-10 | 2023-08-15 | 中国联合网络通信集团有限公司 | 数据库访问方法、***、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102385628B (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102385628B (zh) | 一种基于jdbc的数据分布式处理方法 | |
US20220171759A1 (en) | Detecting schema incompatibilities for generating views at target data stores | |
CN100565510C (zh) | 数据访问层类生成器 | |
US11113273B2 (en) | Managed materialized views created from heterogeneous data sources | |
CN103377290B (zh) | 删除多级存储架构中的记录 | |
CN103930875B (zh) | 用于加速业务数据处理的软件虚拟机 | |
CN103425722B (zh) | 原子数据移动的方法和*** | |
US10210221B2 (en) | System and method for distributed database query engines | |
CN102591946B (zh) | 使用索引划分和协调来进行数据去重复 | |
US20220253433A1 (en) | Maintaining data stream history for generating materialized views | |
CN103377148B (zh) | 一种统一表架构中执行部分合并的方法及*** | |
CN101853287B (zh) | 数据压缩快速检索文件***及其方法 | |
CN103593422B (zh) | 一种异构数据库的虚拟访问管理方法 | |
CN103399942B (zh) | 一种支持SaaS多租户的数据引擎***及其工作方法 | |
CN104484472B (zh) | 一种混合多种异构数据源的数据库集群及实现方法 | |
CN105243155A (zh) | 一种大数据抽取和交换*** | |
CN103562910A (zh) | 管理数据查询 | |
CN102096684A (zh) | 电网实时数据集成与共享平台 | |
US20220229971A1 (en) | Supporting piecewise update of json document efficiently | |
JP2005196602A (ja) | 無共有型データベース管理システムにおけるシステム構成変更方法 | |
CN105164674A (zh) | 涉及多个数据库和执行引擎的查询 | |
US9930113B2 (en) | Data retrieval via a telecommunication network | |
US11899659B2 (en) | Dynamically adjusting performance of materialized view maintenance | |
US11544286B2 (en) | Replicating materialized views across heterogeneous target systems | |
CN106686140A (zh) | 一种网络虚拟化存储方法、设备和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |