CN105138692B - 一种大数据访问和管理的中间件定制系统与方法 - Google Patents

一种大数据访问和管理的中间件定制系统与方法 Download PDF

Info

Publication number
CN105138692B
CN105138692B CN201510601248.8A CN201510601248A CN105138692B CN 105138692 B CN105138692 B CN 105138692B CN 201510601248 A CN201510601248 A CN 201510601248A CN 105138692 B CN105138692 B CN 105138692B
Authority
CN
China
Prior art keywords
database
entity
persistence
jpql
sub
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.)
Active
Application number
CN201510601248.8A
Other languages
English (en)
Other versions
CN105138692A (zh
Inventor
孔兰菊
李靖
倪珮珮
肖宗水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DAREWAY SOFTWARE Co Ltd
Original Assignee
DAREWAY SOFTWARE Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DAREWAY SOFTWARE Co Ltd filed Critical DAREWAY SOFTWARE Co Ltd
Priority to CN201510601248.8A priority Critical patent/CN105138692B/zh
Publication of CN105138692A publication Critical patent/CN105138692A/zh
Application granted granted Critical
Publication of CN105138692B publication Critical patent/CN105138692B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种大数据访问和管理的中间件定制系统与方法,包括JPQL语句转换模块,用于负责对开发人员提交的JPQL语句进行转化,以使得将JPQL语句转化成既适应于关系型数据库又适应于非关系型数据库的字符串形式;总体持久化模块,该模块封装了多个子持久化单元,用于将关系型数据库和非关系型数据库分别进行了封装,屏蔽了关系型数据库和非关系型数据库之间的区别;子持久化单元,用于定义实体,对实体进行管理,并且提供相应的数据库连接,将对实体的操作映射成对应的数据操作,本发明实现了对关系型数据库和非关系型数据库的透明访问,开发人员不需要了解数据库中表的具体的物理结构,不需要在程序中编写连接数据库的代码。

Description

一种大数据访问和管理的中间件定制系统与方法
技术领域
本发明涉及一种大数据访问和管理的中间件定制系统与方法。
背景技术
传统模式下,应用程序通常使用JDBC直接连接各个关系型数据库,获取所需要的数据,使用SQL语句直接对数据库中的表进行增删改查操作,如MySQL、Oracle等,但是需要知道关系型数据库的物理结构。JDBC可以屏蔽关系数据库之间的区别,使用统一的方式连接不同的关系型数据库,但是不能连接非关系型数据库,但是网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的,而且SQL语言是一种非过程化的面向集合的语言,它虽然用起来非常简单,但由于是解释实现,效率不如人意。
大数据访问中间件的定制需求,具有以下特点:首先,一个网站可能有成千上万的用户每天需要存储大量数据,只存储到关系型数据库中,可能导致数据存取速率降低,网站访问速度受影响,这就要求需要将低价值密度、海量的数据存储到非关系型数据库中。其次,开发人员并不想要了解底层数据库具体的物理结构,而是面向对象的访问数据,想要透明的访问底层数据库,就像数据库不存在一样。再次,需要有统一的语言操作关系型数据库和非关系型数据库,如果每种数据库使用一种语言容易混淆。最后,使用JDBC只能连接关系型数据库,关系型数据库对于海量数据的查询和存储效率比较低,所以需要一种中间件实现对关系型数据库和非关系型数据库的统一访问,并有选择的存储海量数据。
发明内容
本发明为了解决上述问题,提出了一种大数据访问和管理的中间件定制系统与方法,本系统克服了传统JDBC只能连接关系型数据库的缺陷,可以把非结构化的、低价值密度的、大量的数据存储在非关系型数据库中,把结构化的、高价值密度、少量的数据存储在关系型数据库,提高数据的查询和存取效率。
为了实现上述目的,本发明采用如下技术方案:
一种大数据访问和管理的中间件定制系统,包括JPQL语句转换模块、总体持久化模块和子持久化单元;其中:
所述JPQL语句转换模块,用于负责对提交的JPQL语句进行转化,以使得将JPQL语句转化成既适应于关系型数据库又适应于非关系型数据库的字符串形式;
所述总体持久化模块,该模块封装了多个子持久化单元,用于将关系型数据库和非关系型数据库分别进行了封装,屏蔽了关系型数据库和非关系型数据库之间的区别;
所述子持久化单元,用于定义实体,对实体进行管理,并且提供相应的数据库连接,将对实体的操作映射成对应的数据操作;定义多个子持久化单元,每个子持久化单元对应一种类型的数据库。
所述子持久化单元内容至少包括:
一个独立的子项目,该项目使用一个xml文件连接具体的数据库,还包括对应数据库中的实体,一个子项目只能连接一个具体的数据库,该项目中包含具体的数据库驱动以及相应的java持久化单元驱动;
对应数据库中定义的实体,每个实体都有对应的实体定义,这里的实体是指数据库管理系统中的不同管理对象,再通过映射机制将实体映射成具体数据库中的数据,每个实体对应数据库中的一个表,关系型和非关系型数据库中实体映射都采用注解的方式;
对应的配置文件,配置文件采用xml的格式,配置文件中用标识属性来标识自己的身份是子单元,每个子单元都有一个唯一的配置文件,并且配置文件的标识名称必须唯一,不能重复,每个配置文件连接一个数据库,并调用相应的实体。
基于上述系统的工作方法,包括以下步骤:
(1)提交JPQL语言操作实体对象请求,以面向对象的方式访问数据;
(2)分析提交的JPQL语句,将其转化成既适应于关系型数据库又适应非关系型数据库的字符串形式来操作结果集;
(3)通过Spring配置文件调用总体持久化单元、定义实体管理工厂、定义实体管理器和定义事务管理器来获得结果集;
(4)总体持久化单元调用多个子持久化单元,将多个子持久化单元组合成一个,定义总体持久化单元属性;
(5)多个子持久化单元分别调用定义的实体对象类,并分别连接关系型数据库和非关系型数据库;
(6)JPQL语句转化后的字符串操作实体对象,实体映射后的数据分别存储到关系型数据库和非关系型数据库。
所述步骤(1)中,开发人员提交JPQL语句请求,JPQL是面向对象的查询语言,在关系型数据库(MySQL)中测试了JPQL所有的查询语句,关系型数据库完全支持JPQl的所有查询语句,但是当使用非关系型数据库(MongoDB)测试JPQL的所有查询语句时,非关系型数据库并不能完全支持直接使用JPQL语句。
所述步骤(2)中,由于非关系型数据库不能完全支持直接使用JPQL语句,将JPQL转化成非关系型数据库和关系型数据库都支持的字符串形式,MongoDB不支持JPQL中的参数格式,将JPQL中的参数用字符串变量表示出来,然后再对总持久化单元层获得的实体对象进行操作。
所述步骤(3)中,使用基于Spring架构的Web系统的应用系统,同时使用关系型数据库和非关系型数据库,在Spring架构的配置文件中调用定义的总体持久化单元,并定义实体管理工厂对获得的实体进行管理,还定义事务管理器管理事务。
所述步骤(4)中,总体持久化单元中调用多个不同的子持久化单元,并将多个子持久化单元组合成一个,所以Spring层只需要调用这个总的持久化单元即可实现对多个数据库的透明访问。
所述步骤(5)中,每个子持久化单元负责连接一个数据库,包括关系型数据库和非关系型数据库,并引用已经定义好的实体类,每个实体类是相应数据库表的映射,关系型数据库中的数据映射的实体类和非关系型数据库映射的实体类是不同的,各个子持久化单元名称是不同的。
所述步骤(5)中,每个子持久化单元和它对应的实体放在同一个项目中,并将各个项目打成jar包的形式,供总体持久化单元调用,各个子持久化单元和实体对于上层的应用程序是透明的。
所述步骤(6)中,JPQL语句转化后的既适应于关系型数据库又适应于非关系型数据库的字符串,直接操作封装好的实体类,然后将操作后的实体映射的数据分别存储到关系新数据库和非关系型数据库。
本发明的工作原理为:提供了一个操作关系型数据库和非关系型数据库的统一接口,可以把非结构化的、低价值密度的、大量的数据存储在非关系型数据库中,把结构化的、高价值密度、少量的数据存储在关系型数据库,提高数据的查询和存取效率。然后,实现了对关系型数据库和非关系型数据库的透明访问,开发人员不需要了解数据库中表的具体的物理结构,使用户可以通过操作实体对象,通过实体对象和数据库表的映射关系来操作数据。最后,通过测试非关系型数据库并不完全支持直接使用JPQL查询语言,通过将JPQL语句转化成既适应于关系型数据库又适应于非关系型数据库的字符串形式解决这个问题。
本发明的有益效果为:
(1)克服了传统JDBC只能连接关系型数据库的缺陷,提供了一个操作关系型数据库和非关系型数据库的统一接口,可以把非结构化的、低价值密度的、大量的数据存储在非关系型数据库中,把结构化的、高价值密度、少量的数据存储在关系型数据库,提高数据的查询和存取效率;
(2)实现了对关系型数据库和非关系型数据库的透明访问,开发人员不需要了解数据库中表的具体的物理结构,不需要在程序中编写连接数据库的代码,直接调用配置文件来连接各个数据库,使开发人员可以通过操作实体对象,通过实体对象和数据库表的映射关系来操作数据;
(3)通过反复测试发现,非关系型数据库并不完全支持直接使用JPQL查询语言,通过将JPQL语句转化成既适应于关系型数据库又适应于非关系型数据库的字符串形式解决这个问题。
附图说明
图1为一种大数据访问中间件的定制系统示意图;
图2为一种大数据访问中间件的定制方法详细流程图。
具体实施方式:
下面结合附图与实施例对本发明作进一步说明。
图1中,一种大数据访问中间件的定制方法示意图,该中间件包括:
JPQL语句转换模块201,负责对开发人员提交的JPQL语句进行相应的转化,我们通过测试发现非关系型数据库并不完全支持直接使用JPQL查询语言,通过将JPQL语句转化成既适应于关系型数据库又适应于非关系型数据库的字符串形式解决这个问题。
总体持久化模块202,该模块封装了多个子持久化单元,将关系型数据库和非关系型数据库分别进行了封装,屏蔽了关系型数据库和非关系型数据库之间的区别。总持久化单元指定了交易类型和服务器平台,并且包含一个属性来标识它作为一个总的持久化单元,它里面也包含了所有已定义的子持久化单元的导出jar包,并且在配置文件中引用了这些jar包。开发人员可以通过实体管理工厂调用该功能模块,从而基于实体操作数据。
子持久化单元203,在该单元中定义实体,对实体进行管理,并且提供相应的数据库连接,将对实体的操作映射成对应的数据操作;可以定义多个子持久化单元,一般一个子持久化单元对应一种类型的数据库。
所述各个子持久化单元2031,2032,2033内容包括:
每个子持久化单元对应一个独立的子项目,该项目用于连接具体的数据库,还包括各个相应的实体映射。一个子项目只能连接一个具体的数据库,该项目中包含具体的数据库驱动以及相应的java持久化单元驱动。
对应数据库中定义的实体,每个实体都有对应的实体定义,再通过映射机制将实体映射成具体数据库中的数据,关系型和非关系型数据库中实体映射都采用注解的方式,只是注解不一样。
对应的配置文件,配置文件采用xml的格式,配置文件中用标识属性来标识自己的身份是子单元,每个子单元都有一个唯一的配置文件,并且配置文件的标识名称必须唯一,不能重复。
图2中,一种大数据访问中间件的定制方法详细流程图,具体步骤包括:
步骤101,开发人员提交JPQL语言操作实体对象请求,以面向对象的方式访问数据;
步骤102,分析提交的JPQL语句,转化成既适应于关系型数据库又适应非关系型数据库的字符串形式来操作结果集;
步骤103,结果集是通过以下步骤获得:Spring配置文件调用总体持久化单元,定义实体管理工厂,定义实体管理器,定义事务管理器等;
步骤104,总体持久化单元调用多个子持久化单元,将多个子持久化单元组合成一个,定义总体持久化单元属性;
步骤105,多个子持久化单元分别调用定义的实体对象类,并分别连接关系型数据库和非关系型数据库,每个子持久化单元对应一个数据库的连接;
步骤106,JPQL语句转化后的字符串操作实体对象,实体映射后的数据分别存储到关系型数据库和非关系型数据库。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (9)

1.一种大数据访问和管理的中间件定制系统,其特征是:包括JPQL语句转换模块、总体持久化模块和子持久化单元;其中:
所述JPQL语句转换模块,用于负责对提交的JPQL语句进行转化,以使得将JPQL语句转化成既适应于关系型数据库又适应于非关系型数据库的字符串形式;
所述总体持久化模块,该模块封装了多个子持久化单元,用于将关系型数据库和非关系型数据库分别进行了封装,屏蔽了关系型数据库和非关系型数据库之间的区别;
所述子持久化单元,用于定义实体,对实体进行管理,并且提供相应的数据库连接,将对实体的操作映射成对应的数据操作;定义多个子持久化单元,每个子持久化单元对应一种类型的数据库;
所述子持久化单元内容至少包括:
一个独立的子项目,该项目使用一个xml文件连接具体的数据库,还包括对应数据库中的实体,一个子项目只能连接一个具体的数据库,该项目中包含具体的数据库驱动以及相应的java持久化单元驱动;
对应数据库中定义的实体,每个实体都有对应的实体定义,再通过映射机制将实体映射成具体数据库中的数据,每个实体对应数据库中的一个表,关系型和非关系型数据库中实体映射都采用注解的方式;
对应的配置文件,配置文件采用xml的格式,配置文件中用标识属性来标识自己的身份是子单元,每个子单元都有一个唯一的配置文件,并且配置文件的标识名称必须唯一,不能重复,每个配置文件连接一个数据库,并调用相应的实体。
2.基于如权利要求1所述的系统的工作方法,其特征是:包括以下步骤:
(1)提交JPQL语言操作实体对象请求,以面向对象的方式访问数据;
(2)分析提交的JPQL语句,将其转化成既适应于关系型数据库又适应非关系型数据库的字符串形式来操作结果集;
(3)通过Spring配置文件调用总体持久化单元、定义实体管理工厂、定义实体管理器和定义事务管理器来获得结果集;
(4)总体持久化单元调用多个子持久化单元,将多个子持久化单元组合成一个,定义总体持久化单元属性;
(5)多个子持久化单元分别调用定义的实体对象类,并分别连接关系型数据库和非关系型数据库;
(6)JPQL语句转化后的字符串操作实体对象,实体映射后的数据分别存储到关系型数据库和非关系型数据库。
3.如权利要求2所述的工作方法,其特征是:所述步骤(1)中,开发人员提交JPQL语句请求,JPQL是面向对象的查询语言,在关系型数据库中测试了JPQL所有的查询语句,关系型数据库完全支持JPQl的所有查询语句,但是当我们使用非关系型数据库测试JPQL的所有查询语句时,非关系型数据库并不能完全支持直接使用JPQL语句。
4.如权利要求2所述的工作方法,其特征是:所述步骤(2)中,由于非关系型数据库不能完全支持直接使用JPQL语句,将JPQL转化成非关系型数据库和关系型数据库都支持的字符串形式,MongoDB不支持JPQL中的参数格式,将JPQL中的参数用字符串变量表示出来,然后再对总持久化层获得的实体对象进行操作。
5.如权利要求2所述的工作方法,其特征是:所述步骤(3)中,使用基于Spring架构的Web系统的应用系统,同时使用关系型数据库和非关系型数据库,在Spring架构的配置文件中调用定义的总体持久化单元,并定义实体管理工厂对获得的实体进行管理,还定义事务管理器管理事务。
6.如权利要求2所述的工作方法,其特征是:所述步骤(4)中,总体持久化单元中调用多个不同的子持久化单元,并将多个子持久化单元组合成一个,所以Spring层只需要调用这个总的持久化单元即可实现对多个数据库的透明访问。
7.如权利要求2所述的工作方法,其特征是:所述步骤(5)中,每个子持久化单元负责连接一个数据库,包括关系型数据库和非关系型数据库,并引用已经定义好的实体类,每个实体类是相应数据库表的映射,关系型数据库中的数据映射的实体类和非关系型数据库映射的实体类是不同的,各个子持久化单元名称是不同的。
8.如权利要求2所述的工作方法,其特征是:所述步骤(5)中,每个子持久化单元和它对应的实体放在同一个项目中,并将各个项目打成jar包的形式,供总体持久化单元调用,各个子持久化单元和实体对于上层的应用程序是透明的。
9.如权利要求2所述的工作方法,其特征是:所述步骤(6)中,JPQL语句转化后的既适应于关系型数据库又适应于非关系型数据库的字符串,直接操作封装好的实体类,然后将操作后的实体映射的数据分别存储到关系新数据库和非关系型数据库。
CN201510601248.8A 2015-09-18 2015-09-18 一种大数据访问和管理的中间件定制系统与方法 Active CN105138692B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510601248.8A CN105138692B (zh) 2015-09-18 2015-09-18 一种大数据访问和管理的中间件定制系统与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510601248.8A CN105138692B (zh) 2015-09-18 2015-09-18 一种大数据访问和管理的中间件定制系统与方法

Publications (2)

Publication Number Publication Date
CN105138692A CN105138692A (zh) 2015-12-09
CN105138692B true CN105138692B (zh) 2018-07-03

Family

ID=54724039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510601248.8A Active CN105138692B (zh) 2015-09-18 2015-09-18 一种大数据访问和管理的中间件定制系统与方法

Country Status (1)

Country Link
CN (1) CN105138692B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103383636B (zh) * 2013-06-05 2015-12-02 上海斐讯数据通信技术有限公司 通信系统及通信方法
CN106933564A (zh) * 2015-12-31 2017-07-07 远光软件股份有限公司 通过Fitler模型及注解扩展实现ECP平台数据访问的查询方法
CN105808776A (zh) * 2016-03-29 2016-07-27 中国建设银行股份有限公司 一种分布式数据库的数据管理系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法
CN101980213A (zh) * 2010-11-23 2011-02-23 中国科学院软件研究所 一种基于j2ee的数据持久化方法及系统
CN105808776A (zh) * 2016-03-29 2016-07-27 中国建设银行股份有限公司 一种分布式数据库的数据管理系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356288B2 (en) * 2008-11-10 2013-01-15 Sap Ag Method and apparatus for monitoring runtime of persistence applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339559A (zh) * 2008-07-18 2009-01-07 北京航空航天大学 一种数据持久化实现方法
CN101980213A (zh) * 2010-11-23 2011-02-23 中国科学院软件研究所 一种基于j2ee的数据持久化方法及系统
CN105808776A (zh) * 2016-03-29 2016-07-27 中国建设银行股份有限公司 一种分布式数据库的数据管理系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
混合数据存储的对象关系映射框架的设计与实现;陈诚;《万方数据库》;20121225;摘要,正文第22页-第25页,第35页-第38页,图3-4,图3-5,图4-4,图4-5 *

Also Published As

Publication number Publication date
CN105138692A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
US10496644B2 (en) Query plan generation and execution in a relational database management system with a temporal-relational database
US11403282B1 (en) Unbatching database queries for migration to a different database
US7599948B2 (en) Object relational mapping layer
US8489649B2 (en) Extensible RDF databases
CN111198901B (zh) 基于多数据源的统一数据服务开放方法及系统
US8838654B1 (en) Data modeling system for runtime schema extensibility
US9507820B1 (en) Data modeling system for runtime schema extensibility
US6658426B1 (en) Object-oriented database abstraction and statement generation
CN107665216A (zh) 一种数据库访问方法及中间件
CN105138692B (zh) 一种大数据访问和管理的中间件定制系统与方法
WO2023278943A1 (en) Registering additional type systems using a hub data model for data processing
US8015217B2 (en) Method and system for obtaining user data having user-defined data types
US6763361B1 (en) Object-oriented database abstraction and statement generation
CN112667598B (zh) 基于业务需求变化的数据模型快速构建系统
US6658425B1 (en) Generic data centric object structure and implementation
US7861253B1 (en) Systems and methods for accessing a business intelligence system through a business productivity client
US11615061B1 (en) Evaluating workload for database migration recommendations
Cvetković et al. A comparative study of the features and performance of orm tools in a. net environment
Song et al. Implementation on network teaching system based on Java EE architecture
CN103150408B (zh) 实时数据库中根据点名找到数据库并访问的系统与方法
CN109542933A (zh) 一种数据库查询方法、装置、设备及介质
CN110019522A (zh) 基于xml的多源异构数据整合系统
CN116204598A (zh) 基于Java全自动的对象关系映射方法、系统、设备及存储介质
Correa et al. Object-relational mapping tools and Hibernate
Ma Data persistence on curriculum management system based on MyBatis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant