CN116126944A - 数据访问系统、方法和电子设备 - Google Patents
数据访问系统、方法和电子设备 Download PDFInfo
- Publication number
- CN116126944A CN116126944A CN202310148957.XA CN202310148957A CN116126944A CN 116126944 A CN116126944 A CN 116126944A CN 202310148957 A CN202310148957 A CN 202310148957A CN 116126944 A CN116126944 A CN 116126944A
- Authority
- CN
- China
- Prior art keywords
- data access
- component
- access component
- target
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012545 processing Methods 0.000 claims abstract description 112
- 230000004044 response Effects 0.000 claims description 90
- 238000004891 communication Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims 1
- 230000010354 integration Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种数据访问系统、方法和电子设备,涉及数据处理技术领域。其中,系统包括:数据使用层,用于向组件管理层发送数据访问请求;组件管理层,用于从至少一个已注册的数据访问组件中确定目标数据访问组件,并向目标数据访问组件发送用于指示目标数据库、待处理数据和处理类型的数据操作命令;目标数据访问组件,用于通过内置的驱动包响应于数据操作命令,在目标数据库中对待处理数据执行与处理类型匹配的数据处理操作。由此,数据访问组件的数量可为多个,无需将所有的驱动包集成在同一数据访问组件,可以避免同一数据访问组件中集成多个驱动包而导致驱动包冲突,进而造成系统无法启动的情况发生,提升系统的稳定性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据访问系统、方法和电子设备。
背景技术
对于数据类系统或数据库系统(如MySQL(一种关系型数据库管理系统)、Oracle(一种关系型数据库)、Hive(基于Hadoop的一个数据仓库工具)、ES(ElasticSearch,一种非关系型的分布式全文检索框架)、JSON(JavaScript Object Notation,JS对象标记,一种轻量级的数据交换格式)等数据库),可以对其执行数据处理操作(比如查询操作、存储操作、增删操作、更新操作等),以满足实际的业务需求。
相关技术中,可以通过在使用数据库的系统的数据访问层内集成大量的驱动包,通过驱动包自动访问数据库,以对数据库执行数据处理操作。
然而,在数据访问层内集成大量驱动包的方式,容易造成驱动包冲突(比如,不同人员编写的两个驱动包属于同类,且路径相同,但是这两个驱动包的内容不同,由于系统中对类的加载机制的管理,会导致这两个驱动包冲突,无法兼容),进而导致系统无法启动。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
本申请提出一种数据访问系统、方法和电子设备,以实现将数据访问层进行组件化,得到数据访问组件,其中,数据访问组件与数据使用层独立,通过与数据使用层独立的数据访问组件访问数据库(或数据源),即通过数据访问组件对数据库执行数据处理操作,一方面,数据使用层、组件管理层和数据访问组件互相独立,其中任意一个更新时,不会影响到另外两个,可以提升系统的稳定性,另一方面,数据访问组件的数量可以为多个,可以无需将所有的驱动包集成在同一数据访问组件,比如,一个数据访问组件中可以集成一个驱动包,以避免同一数据访问组件中集成多个驱动包而导致驱动包冲突,进而造成系统无法启动的情况发生,提升系统的稳定性。
本申请第一方面实施例提出了一种数据访问系统,所述系统包括:互相独立的数据使用层、组件管理层以及目标数据访问组件;其中,
所述数据使用层,用于向所述组件管理层发送数据访问请求;其中,所述数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;
所述组件管理层,用于从至少一个已注册的数据访问组件中确定所述目标数据访问组件,并基于与所述目标数据访问组件之间的通信连接,向所述目标数据访问组件发送用于指示所述目标数据库、所述待处理数据和所述操作类型的数据操作命令,并接收所述目标数据访问组件发送的响应结果,及向所述数据使用层发送所述响应结果;
所述目标数据访问组件,用于通过内置的驱动包响应于所述数据操作命令,在所述目标数据库中对所述待处理数据执行与所述处理类型匹配的数据处理操作,以得到响应结果,并基于所述通信连接向所述组件管理层发送所述响应结果。
本申请第二方面实施例提出了一种数据访问方法,包括:
获取数据使用层发送的数据访问请求;其中,所述数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;
从至少一个已注册的数据访问组件中确定目标数据访问组件;
基于与所述目标数据访问组件之间的通信连接,向所述目标数据访问组件发送用于指示所述目标数据库、所述待处理数据和所述操作类型的数据操作命令;其中,所述数据操作命令用于所述目标数据访问组件通过内置的驱动包对所述目标数据库中的待处理数据执行与所述处理类型匹配的数据处理操作,以得到响应结果;
基于所述通信连接,接收所述目标数据访问组件发送的所述响应结果,并向所述数据使用层发送所述响应结果。
本申请第三方面实施例提出了一种数据访问装置,包括:
获取模块,用于获取数据使用层发送的数据访问请求;其中,所述数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;
确定模块,用于从至少一个已注册的数据访问组件中确定目标数据访问组件;
发送模块,用于基于与所述目标数据访问组件之间的通信连接,向所述目标数据访问组件发送用于指示所述目标数据库、所述待处理数据和所述处理类型的数据操作命令;其中,所述数据操作命令用于所述目标数据访问组件通过内置的驱动包对所述目标数据库中的待处理数据执行与所述处理类型匹配的数据处理操作,以得到响应结果;
接收模块,用于基于所述通信连接,接收所述目标数据访问组件发送的所述响应结果;
所述发送模块,还用于向所述数据使用层发送所述响应结果。
本申请第四方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请第二方面实施例提出的数据访问方法。
本申请第五方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第二方面实施例提出的数据访问方法。
本申请第六方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行如本申请第二方面实施例提出的数据访问方法。
上述本申请中的一个实施例至少具有如下优点或有益效果:
通过组件管理层获取数据使用层发送的数据访问请求;其中,数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;从至少一个已注册的数据访问组件中确定目标数据访问组件;基于与目标数据访问组件之间的通信连接,向目标数据访问组件发送用于指示目标数据库、待处理数据和处理类型的数据操作命令;其中,数据操作命令用于目标数据访问组件通过内置的驱动包对目标数据库中的待处理数据执行与处理类型匹配的数据处理操作,以得到响应结果;基于通信连接,接收目标数据访问组件发送的响应结果,并向数据使用层发送响应结果。由此,通过将数据访问层进行组件化,得到数据访问组件,其中,数据访问组件与数据使用层独立,通过与数据使用层独立的数据访问组件访问数据库(或数据源),即通过数据访问组件对数据库执行数据处理操作,一方面,数据使用层、组件管理层和数据访问组件互相独立,其中任意一个更新时,不会影响到另外两个,可以提升系统的稳定性。另一方面,数据访问组件的数量可以为多个,可以无需将所有的驱动包集成在同一数据访问组件,比如,一个数据访问组件中可以集成一个驱动包,以避免同一数据访问组件中集成多个驱动包而导致驱动包冲突,进而造成系统无法启动的情况发生,提升系统的稳定性。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种数据访问系统的结构示意图;
图2为本申请实施例所提供的数据访问组件的注册过程示意图;
图3为本申请实施例所提供的交互流程示意图;
图4为本申请实施例所提供的另一种数据访问系统的结构示意图;
图5为本申请实施例所提供的另一种数据访问系统的结构示意图;
图6为本申请实施例所提供的一种数据访问方法的流程示意图;
图7为本申请实施例所提供的一种数据访问装置的结构示意图;
图8是本申请一示例性实施例所示出的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
本申请提出一种数据访问系统、方法和电子设备。
下面参考附图描述本申请实施例的数据访问系统、方法和电子设备。
图1为本申请实施例所提供的一种数据访问系统的结构示意图。
如图1所示,该数据访问系统可以包括:互相独立的数据使用层110、组件管理层(或称为组件管理器)120和目标数据访问组件130。
其中,数据使用层110,用于向组件管理层120发送数据访问请求;其中,数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型。
其中,数据访问请求可以为SQL语句,或者,数据访问请求可以为基于自定义协议生成的语句,或者,数据访问请求可以为基于标准协议生成的语句,本申请对此并不做限制。
其中,目标数据库包括但不限于MySQL、Hive、ES、JSON等数据库。
其中,处理类型包括但不限于查询处理、新增处理、删除处理、更新处理等。
在本申请实施例的一种可能的实现方式中,数据访问层110可以为应用系统提供的,该数据访问层110可以在接收到数据访问指令时,根据数据访问指令,向组件管理层120发送数据访问请求。其中,数据访问指令(如查询指令、存储指令等)是响应于用户操作(如触发页面中控件的操作、输入操作等)生成的。
在本申请实施例的另一种可能的实现方式中,数据访问层110还可以基于定时任务,主动向组件管理层120发送数据访问请求(比如查询请求)。比如,在下单商品且未付款时,可以基于定时任务,主动查询与订单的相关信息,在订单超时未付款的情况下,取消该订单。
组件管理层120,用于从至少一个已注册的数据访问组件中确定目标数据访问组件130,并基于与目标数据访问组件130之间的通信连接,向目标数据访问组件130发送用于指示目标数据库、待处理数据和处理类型的数据操作命令,并接收目标数据访问组件130发送的响应结果,及向数据使用层110发送响应结果。
其中,每个已注册的数据访问组件与数据使用层110均独立。且,不同的数据访问组件之间也是互相独立的。所谓独立,是指进程之间的隔离,比如,在数据访问组件与数据使用层未独立或未分离时,数据访问组件与数据使用层可以在进程内通信,而在数据访问组件与数据使用层独立或分离时,数据访问组件对应的进程与数据使用层对应的进程不同,不同进程之间可以基于协议通信。
可以理解的是,不同的数据访问组件相互独立,单一的数据访问组件故障,不会影响其他的数据访问组件正常运行。也就是说,每个数据访问组件是一个独立的服务,运行时是一个独立的进程,进程之间不进行直接通信(即进程隔离),可以提升系统的稳定性。
其中,组件管理层120与数据使用层110可以独立,或者,也可以不独立,本申请对此并不作限制,本实施例仅以组件管理层120与数据使用层110互相独立进行示例。比如,组件管理层120与数据使用层110可以均设置于应用系统中,或者,组件管理层120可以独立于应用系统设置。
其中,数据访问组件可以是通过对数据访问层进行组件化得到的,例如,可以对数据访问层进行封装和二次开发,以得到数据访问组件,其中,二次开发包括但不限于:协议转换、加密、分流、聚合等。
其中,每个数据访问组件中可以内置有或集成有驱动包,每个数据访问组件可以通过内置的驱动包访问数据库。
其中,数据访问组件可以包括本地数据访问组件和远程数据访问组件,本地数据访问组件是指无需跨服务器访问的组件,远程数据访问组件是指需要跨服务器访问的组件。也就是说,数据访问组件支持本地化及远程服务实现方式。比如,在无需跨服务器访问数据库时,可以对数据访问层进行组件化,得到本地数据访问组件,在需要跨服务器访问数据库时,可以对数据访问层进行组件化,得到远程数据访问组件。
目标数据访问组件130,用于通过内置的驱动包响应于数据操作命令,在目标数据库中对待处理数据执行与处理类型匹配的数据处理操作,以得到响应结果,并基于通信连接向组件管理层120发送响应结果。
其中,数据处理操作包括但不限于查询操作、新增操作、删除操作、更新操作等。
在本申请实施例中,组件管理层120在接收到数据访问请求后,可以从至少一个已注册的数据访问组件中确定目标数据访问组件130,并基于该组件管理层120与目标数据访问组件130之间的通信连接,向目标数据访问组件130发送用于指示目标数据库、待处理数据和处理类型的数据操作命令。相应的,目标数据访问组件130在接收到数据操作命令后,可以通过该目标数据访问组件130中内置的驱动包响应于该数据操作命令,在目标数据库中对待处理数据执行与处理类型匹配的数据处理操作,得到响应结果。
作为一种示例,当处理类型为查询时,比如查询某种类型的数据,待处理数据可以为目标数据库中该种类型的数据,目标数据访问组件130可以对目标数据库中的待处理数据执行查询操作,得到响应结果,比如,响应结果可以用于指示目标数据库中该种类型数据的数量。
作为另一种示例,当处理类型为新增时,目标数据访问组件130可以将待处理数据写入至目标数据库中。
在本申请实施例中,目标数据访问组件130还可以基于组件管理层120与目标数据访问组件130之间的通信连接,将响应结果发送至组件管理层120,相应的,组件管理层120在接收到响应结果后,可以将响应结果转发至数据使用层110。
需要说明的是,数据使用层110可以设置于应用系统中,为应用系统提供的。组件管理层120也可以设置于应用系统中,或者,组件管理层120也可以独立于应用系统设置,比如,组件管理层120可以是结合某些框架特点开发的插件,该插件可以集成到应用系统中,或者,该插件也可以做成独立的服务,与应用系统分开,本申请对此并不做限制。
数据访问组件,可以是基于某些框架特点开发的插件,或者,为了提升该系统的适用性,数据访问组件也可以不基于某些框架特点开发,本申请对此并不做限制。具体地,数据访问组件,可以是基于接口规范,对数据访问层进行组件化得到的,如,基于接口规范,对数据访问层进行封装和二次开发,以得到数据访问组件。
还需说明的是,可以根据实际的应用需求或业务需求,基于接口规范或使用规范对系统中数据访问组件的数量进行扩展,以提升系统的高扩展性。例如,在分布式系统中,数据库的数量增加时,可以基于设定的接口规范,对数据访问层进行组件化,得到至少一个新增的数据访问组件(例如,基于接口规范,对数据访问层进行封装和二次开发,以得到数据访问组件,其中,二次开发包括但不限于:协议转换(根据新增的数据库所支持的协议确定)、加密、分流、聚合等),并对新增的数据访问组件进行注册,从而可以通过已注册的新增的数据访问组件,访问分布式系统中新增的数据库。也就是说,数据访问组件是面向接口的组件化实现方式,可基于接口规范或使用规范,扩展数据访问组件,以提升系统的高扩展性,可以解决相关技术中存在的在数据访问层内集成大量驱动包,不利于系统的快速扩展的问题。例如,接口规范可用于规范数据访问组件的设计标准,但是不约束组件的设计细节、组件所支持或提供的功能等,因此,可以根据实际的应用需求,扩展数据访问组件的数量。
其中,接口规范可以用于规范数据访问组件对外提供的接口,如对外提供多少查询(比如单表查询、多表查询、聚合查询、子查询等),还可以规范哪些接口需要增加安全认证机制等,比如,对外提供两个接口,分别为接口1和接口2,其中,接口2对外提供的查询功能无需增加安全认证机制,接口1对外提供的查询功能需要增加安全认证机制。即,接口规范用于约定数据访问组件的生成方式或设计标准。
还需要说明的是,数据访问组件和数据使用层可以设置于同一服务节点或设备中,或者,数据访问组件和数据使用层也可以设置于不同的服务节点或设备中,本申请对此并不做限制。
本申请实施例的数据使用系统,通过数据使用层110向组件管理层120发送数据访问请求;其中,数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;通过组件管理层120从至少一个已注册的数据访问组件中确定目标数据访问组件130,并基于与目标数据访问组件130之间的通信连接,向目标数据访问组件130发送用于指示目标数据库、待处理数据和操作类型的数据操作命令;通过目标数据访问组件120响应于数据操作命令,在目标数据库中对待处理数据执行与处理类型匹配的数据处理操作,以得到响应结果,并基于通信连接向组件管理层130发送响应结果;通过组件管理层120向数据使用层110发送响应结果。由此,通过将数据访问层进行组件化,得到数据访问组件,其中,数据访问组件与数据使用层独立,通过与数据使用层独立的数据访问组件访问数据库(或数据源),即通过数据访问组件对数据库执行数据处理操作,一方面,数据访问组件可以基于接口规范或使用规范进行扩展,可以提升系统的高扩展性,可以解决相关技术中存在的在数据访问层内集成大量驱动包,不利于系统的快速扩展的问题。另一方面,数据访问组件的数量可以为多个,可以无需将所有的驱动包集成在同一数据访问组件,比如,一个数据访问组件中可以集成一个驱动包,以避免同一数据访问组件中集成多个驱动包而导致驱动包冲突,进而造成系统无法启动的情况发生,提升系统的稳定性,可以解决前述方式中在数据访问层内集成大量驱动包的方式,容易造成驱动包冲突,导致系统无法启动的问题。又一方面,数据使用层、组件管理层和数据访问组件互相独立,其中任意一个更新时,不会影响到另外两个,可以提升系统的稳定性。
综上,将数据访问组件与数据使用层分离,数据访问组件与数据使用层可以通过数据共享或RPC(Remote Procedure Call Protocol,远程过程调用)方式进行通讯,其中,数据访问组件的数量可以为多个,多个数据访问组件也是独立的,具有分布式的特点。
在本申请实施例的一种可能的实现方式中,组件管理层120可以包括策略引擎,该策略引擎中可以包括至少一个组件选取策略,其中,组件选取策略用于从已注册的数据访问组件中,确定所需的数据访问组件。
例如,组件选取策略1可以包括:在组件管理层120当前接收到的请求数量大于设定阈值(如,500、1000等)时,选取本地数据访问组件。即,在QPS(Queries-per-second,每秒查询率)大于设定阈值的情况下,选取本地数据访问组件。
再例如,组件选取策略2可以包括:在待处理数据对安全性要求较高,如业务处理需要指示待处理数据的安全指标,且安全指标高于设定指标阈值时,或者,当业务处理需求为加密处理时,选取本地数据访问组件,或者,选取能够加密和解密的数据访问组件。
其中,为了满足数据的加密需求,数据使用层与数据访问组件之间的交互数据可以为加密后的数据,其中,加密算法可以根据实际应用需求设置,为了提升数据的安全性,只有数据使用层与数据访问组件双方获知加密算法。
再例如,组件选取策略3可以包括:选取处于可用状态的或存活状态的数据访问组件。
再例如,组件选取策略4可以包括:根据本地数据访问组件和远程数据访问组件的比例,选取数据访问组件。比如,本地数据访问组件和远程数据访问组件的比例为3:1,每当接收到4个数据访问请求时,可以将其中3个数据访问请求分配给本地数据访问组件,将其中1个数据访问请求分配给远程数据访问组件。
再例如,组件选取策略5可以包括:根据历史请求情况,确定本地数据访问组件的响应时长和远程数据访问组件的响应时长,在本地数据访问组件的响应时长大于远程数据访问组件的响应时长时,选取本地数据访问组件;而在本地数据访问组件的响应时长小于远程数据访问组件的响应时长时,选取远程数据访问组件。
当然,组件选取策略也可以根据应用需求灵活设置,本申请对此并不做限制。
在本申请实施例中,组件管理层120,具体可以用于:判断数据访问请求中是否携带业务处理需求(比如安全处理、加密处理等),在数据访问请求中携带业务处理需求时,可以从策略引擎中的至少一个组件选取策略中,查询与业务处理需求匹配的目标组件选取策略,并基于目标组件选取策略从至少一个数据访问组件中,确定与该目标组件选取策略匹配的目标数据访问组件。
举例而言,当业务处理需求为安全处理时,目标组件选取策略可以为上述组件选取策略2,目标数据访问组件可以为本地数据访问组件。
由此,可以实现根据数据使用层110的业务处理需求,确定目标组件选取策略,并基于该目标组件选取策略,从各数据访问组件中确定访问目标数据库的数据访问组件,可以满足实际的业务处理需求。
在本申请实施例的一种可能的实现方式中,在数据访问请求中未携带业务处理需求时,组件管理层120可以获取策略引擎中的至少一个组件选取策略的权重,本申请中记为第一权重,并根据各组件选取策略的第一权重,从各组件选取策略中确定目标组件选取策略,比如,可以将第一权重最大的组件选取策略,作为目标组件选取策略,从而本申请中,组件管理层120可以从至少一个数据访问组件中,确定与目标组件选取策略匹配的目标数据访问组件。
其中,组件选取策略的第一权重用于指示该组件选取策略的重要程度,或,用于指示该组件选取策略相对于上述数据访问请求的重要程度,其中,第一权重越高,该组件选取策略相对于数据访问请求的重要程度越高,该组件选取策略越可能被作为用于选取所需的目标数据访问组件的目标组件选取策略。其中,目标数据访问组件用于执行该数据访问请求对应的数据处理操作。
其中,各组件选取策略的第一权重可以根据应用需求预先设置,或者,也可以根据经验预先设置,比如,在实际业务的处理过程中,对数据的安全性要求较高,可以设置上述组件选取策略2的第一权重高于其他的组件选取策略的第一权重。
或者,各组件选取策略的第一权重也可以通过相关算法计算得到的,比如,组件管理层120可以包括组件引擎,其中,组件引擎用于与各个数据访问组件进行通信,以获取各数据访问组件的第一目标信息,其中,第一目标信息可以包括以下至少一项:数据访问组件的状态信息、数据访问组件所在设备(如服务器)的软件信息和数据访问组件所在设备的硬件信息,从而本申请中,组件管理层120可以根据各数据访问组件的第一目标信息,确定至少一个组件选取策略的第一权重。
其中,数据访问组件的状态信息可以包括存活状态(即可用状态)和非存活状态(即不可用状态),例如,可以通过心跳检测算法,确定数据访问组件的状态信息。举例而言,组件引擎可以向各数据访问组件发送用于心跳检测的数据包,若组件引擎接收到各数据访问组件响应于上述数据包所发送的心跳响应,则组件引擎可以确定各数据访问组件的状态信息为存活状态(即可用状态),而若组件引擎未接收到某个数据访问组件发送的心跳响应,则可以确定该数据访问组件的状态信息为非存活状态(即不可用状态)。
其中,软件信息可以包括数据访问组件所在设备的操作系统信息、软件运行环境等信息。
其中,硬件信息可以包括数据访问组件所在设备的CPU(Central ProcessingUnit,中央处理器)、内存、硬盘配置及使用率等信息。
在本申请实施例中,组件管理层120根据各数据访问组件的第一目标信息,确定各组件选取策略的第一权重,例如可以为:根据各数据访问组件的第一目标信息,确定各数据访问组件的第二权重,根据各数据访问组件的第二权重,确定各组件选取策略的第一权重。
作为一种可能的实现方式,组件管理层120根据各数据访问组件的第一目标信息,确定各数据访问组件的第二权重,例如可以为:
1、针对任意一个数据访问组件,根据该数据访问组件的状态信息,确定该数据访问组件的第一子权重,例如,状态信息为存活状态的数据访问组件的第一子权重,高于状态信息为非存活状态的数据访问组件的第一子权重;
2、根据该数据访问组件所在设备的软件信息,确定该数据访问组件的第二子权重,比如,可以确定该数据访问组件所适配的软件信息(如该数据访问组件所适配的操作系统版本信息、软件运行软件信息等),将该数据访问组件所适配的软件信息与该数据访问组件所在设备的软件信息进行匹配,得到匹配结果,从而可以根据匹配结果确定该数据访问组件的第二子权重。例如,匹配结果为数据访问组件所适配的软件信息与该数据访问组件所在设备的软件信息匹配时所对应的第二子权重,高于匹配结果为数据访问组件所适配的软件信息与该数据访问组件所在设备的软件信息不匹配时所对应的第二子权重;
3、根据该数据访问组件所在设备的硬件信息,确定该数据访问组件的第三子权重,比如,可以根据该数据访问组件所在设备的硬件信息,确定该数据访问组件的响应时延、硬件性能指标和资源(如CPU、内存等资源)使用指标,从而本申请中,可以根据响应时延、硬件性能指标和资源使用指标中的至少一项,确定该数据访问组件的第三子权重,其中,第三子权重与响应时延呈负相关关系,即,响应时延越短,第三子权重越高,反之,响应时延越长,第三子权重越低;其中,第三子权重与硬件性能指标呈正相关关系,即,硬件性能指标越低,第三子权重越低,反之,硬件性能指标越高,第三子权重越高;其中,第三子权重与资源使用指标呈负相关关系,即,资源使用指标越高(如CPU占用率越高、内存使用率越高),第三子权重越低,反之,资源使用指标越低,第三子权重越高;
4、根据该数据访问组件的第一子权重、第二子权重和第三子权重中的至少一项,确定该数据访问组件的第二权重。
作为一种示例,可以将该数据访问组件的第一子权重、第二子权重和第三子权重中的其中一项,作为该数据访问组件的第二权重。
作为另一种示例,可以根据该数据访问组件的第一子权重、第二子权重和第三子权重中的其中两项,确定该数据访问组件的第二权重。比如,可以将其中两项之和,或,将其中两项的均值,或,将其中两项的加权和,作为该数据访问组件的第二权重。
作为又一种示例,可以同时根据该数据访问组件的第一子权重、第二子权重和第三子权重,确定该数据访问组件的第二权重。比如,可以将该数据访问组件的第一子权重、第二子权重和第三子权重的累加和,作为该数据访问组件的第二权重,或者,可以将该数据访问组件的第一子权重、第二子权重和第三子权重的均值,作为该数据访问组件的第二权重,或者,可以对该数据访问组件的第一子权重、第二子权重和第三子权重进行加权求和,以得到该数据访问组件的第二权重。
综上,第二权重,用于指示数据访问组件的重要程度,其中,第二权重越大,数据访问组件的重要程度越高。例如,根据上述第二权重的计算方式可知,当数据访问组件为存活状态时,该数据访问组件才能访问数据库,而当数据访问组件为非存活状态时,该数据访问组件无法访问数据库,因此,存活状态的数据访问组件的第二权重,高于非存活状态的数据访问组件的第二权重,即存活状态的数据访问组件的重要程度,高于非存活状态的数据访问组件的重要程度。再比如,数据访问组件的响应时延越短,用户的等待时长越短,用户体验越佳,因此,响应时延短的数据访问组件的第二权重,高于响应时延长的数据访问组件的第二权重,即响应时延短的数据访问组件的重要程度,高于响应时延长的数据访问组件的重要程度。
从而本申请实施例中,组件管理层120可以根据各数据访问组件的第二权重,确定各组件选取策略的第一权重,例如可以为:针对任意一个组件选取策略,从各数据访问组件中确定与该组件选取策略匹配的候选数据访问组件,根据各候选数据访问组件的第二权重,确定该组件选取策略的第一权重,比如,可以将各候选数据访问组件的第二权重的累加和,作为该组件选取策略的第一权重,或者,可以将各候选数据访问组件的第二权重的均值,作为该组件选取策略的第一权重,或者,可以对各候选数据访问组件的第二权重进行加权求和,以得到该组件选取策略的第一权重。
由此,可以实现根据不同方式,确定各组件选取策略的第一权重,从而可以根据各组件选取策略的第一权重,确定所需的目标组件选取策略,可以提升该系统的灵活性和适用性。
综上,可以实现动态选取数据访问组件,例如,策略引擎中可以内置组件选取策略,可以基于组件选取策略,选择数据访问组件。当然,本系统也允许相关人员设置自定义算法或自定义的组件选取策略,干预数据访问组件的选取,比如优先使用本地数据访问组件,本申请对此并不做限制。
需要说明的是,不同数据库支持的协议可能不同,可以针对每个数据库,生成与对应协议匹配的数据访问组件,在本申请实施例的一种可能的实现方式中,组件管理层120还可以根据目标数据库和目标组件选取策略,从各数据访问组件中确定与目标数据库和目标组件选取策略匹配的目标数据访问组件130。
举例而言,针对数据库A,开发了数据访问组件1(本地数据访问组件)和数据访问组件2(远程数据访问组件),针对数据库B开发了数据访问组件3(本地数据访问组件)和数据访问组件4(远程数据访问组件),针对数据库C开发了数据访问组件5(本地数据访问组件)、数据访问组件6(本地数据访问组件)和数据访问组件7(远程数据访问组件),假设目标数据库为数据库C,目标组件选取策略为上述组件选取策略2,则目标数据访问组件可以为数据访问组件5和数据访问组件6。
还需说明的是,还可以规定数据访问组件所提供的数据处理功能(即数据访问组件所能执行的数据处理操作),在本申请实施例的一种可能的实现方式中,组件管理层120还可以根据处理类型和目标组件选取策略,从各数据访问组件中确定与处理类型和目标组件选取策略匹配的目标数据访问组件130。
举例而言,假设处理类型为查询处理,且目标组件选取策略为上述组件选取策略2,与目标组件选取策略匹配的各数据访问组件可以为本地数据访问组件,可以将各个本地数据访问组件中,能够执行查询操作的数据访问组件,作为目标数据访问组件。
还需要说明的是,与目标组件选取策略匹配的目标数据访问组件的数量可以为一个,或者,与目标组件选取策略匹配的目标数据访问组件的数量也可以为多个,比如,目标组件选取策略为上述组件选取策略2时,与目标组件选取策略匹配的目标数据访问组件为本地数据访问组件,其中,本地数据访问组件的数量可以为多个,例如,在分布式系统中,数据库的数量较多,可以设置多个本地数据访问组件和多个远程数据访问组件,以通过多个本地数据访问组件和多个远程数据访问组件,对分布式数据库执行数据处理操作。当目标数据访问组件的数量为多个时,如何从多个目标数据访问组件中确定所需的数据访问组件是非常重要的。
针对上述情况,在本申请实施例的一种可能的实现方式中,组件管理层120可以基于组件引擎获取各目标数据访问组件的第二目标信息,其中,第二目标信息包括以下至少一项:目标数据访问组件的状态信息、目标数据访问组件所在设备的软件信息和目标数据访问组件所在设备的硬件信息,并根据各目标数据访问组件的第二目标信息,确定各目标数据访问组件的第三权重,其中,第三权重的计算方式与第二权重的计算方式类似,在此不做赘述。从而本申请中,组件管理层120可以根据各目标数据访问组件的第三权重,对各目标数据访问组件进行筛选,以保留一个目标数据访问组件。比如,可以仅保留第三权重最大的目标数据访问组件。
综上,当存在多组同类型的数据访问层组件时,支持自定义算法匹配最佳的数据访问组件。例如,可以根据自定义算法,确定各数据访问组件的权重,根据各数据访问组件的权重,从各数据访问组件中选取最佳的数据访问组件。
在本申请实施例的一种可能的实现方式中,当对数据访问层进行组件化,得到数据访问组件后,还可以将数据访问组件注册至组件管理层120中的组件工厂(或称为插件工厂),以使组件管理层120中的组件引擎查询组件工厂,以获知已注册的各数据访问组件,并与已注册的各数据访问组件进行通信,来获知各数据访问组件的状态信息。由此,可以通过组件工厂对新增的数据访问组件的注册,达成增加和扩展对应的数据访问组件(已注册的)的数量。
作为一种示例,组件管理层120可以对各数据访问组件进行初始化,针对初始化后的任意一个数据访问组件,可以确定与该数据访问组件匹配的访问方式(如远程访问、本地访问),并开启与该访问方式匹配的插件扫描服务,以基于插件扫描服务对该数据访问组件进行扫描,确定该数据访问组件是否通过校验。例如,插件扫描服务可以校验数据访问组件是否为基于接口规范或使用规范生成的,校验数据访问组件是否处于存活状态(即,可用状态、能用状态),在数据访问组件通过校验时,表明该数据访问组件是基于接口规范或使用规范生成的,以及该数据访问组件处于存活状态。
作为一种示例,数据访问组件的注册过程可以如图2所示,组件管理层120可以对各数据访问组件进行初始化,如果数据访问组件为本地数据访问组件,则组件管理层120可以开启本地插件扫描服务,对本地数据访问组件进行扫描,并在本地数据访问组件通过扫描校验的情况下,将本地数据访问组件注册到组件管理层120中的插件工厂。如果数据访问组件为远程数据访问组件,则组件管理层120可以开启远程插件扫描服务,对远程数据访问组件进行扫描,并在远程数据访问组件通过扫描校验的情况下,将远程数据访问组件注册到组件管理层120中的插件工厂。
综上,采用组件注册机制,数据访问组件的数量可根据实际需求量进行水平扩展。
需要说明的是,可以通过自动配置工具包动态发现和注册数据访问组件。并且,可以基于自动配置工具包,手动或自动方式更新扫描数据访问组件。比如,可以根据实际应用需求,由人工手动方式触发数据访问组件的更新,或者,可以根据数据访问组件的版本信息,查询服务器上是否具有数据访问组件的更新版本,若是,则下载数据访问组件的更新版本,并根据该更新版本对数据访问组件进行自动更新。由此,通过组件化的设计方式+自动更新扫描方式,可以实现对新扩展开发的数据访问组件可进行快速测试、上线。
在本申请实施例的一种可能的实现方式中,组件管理层120和目标数据访问组件130之间的通信连接可以通过以下方式建立:组件管理层120可以向目标数据访问组件130发送连接建立请求,相应的,目标数据访问组件130在接收到连接建立请求后,可以响应于该连接建立请求,建立目标数据访问组件130与组件管理层120之间的通信连接,并向组件管理层120发送确认建立响应,相应的,组件管理层120可以接收目标数据访问组件响应于连接建立请求所发送的确认建立响应。
在本申请实施例的一种可能的实现方式中,组件管理层120在接收到响应结果后,还可以向目标数据访问组件130发送连接断开请求,相应的,目标数据访问组件130在接收到连接断开请求后,可以响应于该连接断开请求,断开目标数据访问组件130与组件管理层120之间的通信连接,并释放目标资源,以降低资源占用。其中,目标资源用于对待处理数据执行与处理类型匹配的数据处理操作。并且,目标数据访问组件130还可以向组件管理层120发送断开连接响应,相应的,组件管理层120可以接收目标数据访问组件130响应于连接断开请求所发送的断开连接响应。
作为一种示例,数据使用层110、组件管理层120和目标数据访问组件130之间的交互流程可以如图3所示,具体可以包括以下步骤:
1、数据使用层110向组件管理层120发送数据访问请求。
2、组件管理层120根据数据访问请求和策略引擎中的各组件选取策略,从已注册的各数据访问组件中确定目标数据访问组件130,并向该目标数据访问组件130发送连接建立请求。
3、目标数据访问组件130响应于该连接建立请求,建立目标数据访问组件130与组件管理层120之间的通信连接,并向组件管理层120发送确认建立响应(即目标数据访问组件130确认建立通讯)。
4、组件管理层120响应于接收到确认建立响应,基于上述通信连接,向目标数据访问组件130发送数据操作命令。
5、目标数据访问组件130响应于该数据操作命令,对目标数据库执行数据处理操作。
6、目标数据库向目标数据访问组件130发送响应结果,比如当数据处理操作为查询操作时,响应结果可以用于指示满足查询条件的数据条数。
7、目标数据访问组件130向组件管理层120转发该响应结果。
8、组件管理层120向数据使用层110转发该响应结果。
9、组件管理层120还可以向目标数据访问组件130发送连接断开请求。
10、目标数据访问组件130响应于该连接断开请求,断开目标数据访问组件130与组件管理层120之间的通信连接,清理并释放目标资源,其中,目标资源用于对目标数据库执行数据处理操作。
11、目标数据访问组件130向该组件管理层120发送断开连接响应。
作为一种应用场景,以数据使用层110应用于应用系统进行示例,数据访问系统(或业务系统)的结构可以如图4所示,其中,组件管理层不仅可以包括策略引擎和组件引擎,还可以包括资源管理器、本地组件管理引擎和远程组件管理引擎,其中,资源管理器用于对数据访问组件的资源(内存信息、硬件信息、磁盘信息等)进行管理,本地组件管理引擎和远程组件管理引擎设置于组件引擎中,其中,本地组件管理引擎用于与本地数据访问组件进行通信,远程组件管理引擎用于与远程数据访问组件进行通信。
其中,应用系统通过API(Application Programming Interface,应用程序接口)访问组件管理层。
作为另一种应用场景,以数据使用层110和组件管理层120均设置于应用系统进行示例,数据访问系统(或业务系统)的结构可以如图5所示。
图6为本申请实施例所提供的一种数据访问方法的流程示意图。
本申请实施例中,该数据访问方法可以应用于前述实施例所提供的组件管理层120。
如图6所示,该数据访问方法可以包括以下步骤:
步骤601,获取数据使用层发送的数据访问请求;其中,数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型。
其中,数据访问请求可以为SQL语句,或者,数据访问请求可以为基于自定义协议生成的语句,或者,数据访问请求可以为基于标准协议生成的语句,本申请对此并不做限制。
其中,目标数据库包括但不限于MySQL、Hive、ES、JSON等数据库。
其中,处理类型包括但不限于查询处理、新增处理、删除处理、更新处理等。
在本申请实施例中,组件管理层可以获取数据使用层发送的数据访问请求。
步骤602,从至少一个已注册的数据访问组件中确定目标数据访问组件。
其中,数据访问组件可以是通过对数据访问层进行组件化得到的,例如,可以对数据访问层进行封装和二次开发,以得到数据访问组件,其中,二次开发包括但不限于:协议转换、加密、分流、聚合等。
其中,数据访问组件可以包括本地数据访问组件和远程数据访问组件,本地数据访问组件是指无需跨服务器访问的组件,远程数据访问组件是指需要跨服务器访问的组件。
在本申请实施例中,组件管理层在接收到数据访问请求后,可以从至少一个已注册的数据访问组件中确定目标数据访问组件。
步骤603,基于与目标数据访问组件之间的通信连接,向目标数据访问组件发送用于指示目标数据库、待处理数据和处理类型的数据操作命令;其中,数据操作命令用于目标数据访问组件通过内置的驱动包对目标数据库中的待处理数据执行与处理类型匹配的数据处理操作,以得到响应结果。
在本申请实施例中,组件管理层可以基于组件管理层与目标数据访问组件之间的通信连接,向目标数据访问组件发送用于指示目标数据库、待处理数据和处理类型的数据操作命令。相应的,目标数据访问组件在接收到数据操作命令后,可以响应于该数据操作命令,在目标数据库中对待处理数据执行与处理类型匹配的数据处理操作,得到响应结果。
作为一种示例,当处理类型为查询时,比如查询某种类型的数据,待处理数据可以为目标数据库中该种类型的数据,目标数据访问组件可以对目标数据库中的待处理数据执行查询操作,得到响应结果,比如,响应结果可以用于指示目标数据库中该种类型数据的数量。
作为另一种示例,当处理类型为新增时,目标数据访问组件可以将待处理数据写入至目标数据库中。
步骤604,基于通信连接,接收目标数据访问组件发送的响应结果,并向数据使用层发送响应结果。
在本申请实施例中,目标数据访问组件还可以基于组件管理层与目标数据访问组件之间的通信连接,将响应结果发送至组件管理层,相应的,组件管理层在接收到响应结果后,可以将响应结果转发至数据使用层。
需要说明的是,前述实施例中对组件管理层120的解释说明也适用于该实施例,在此不做赘述。
本申请实施例的数据访问方法,通过组件管理层获取数据使用层发送的数据访问请求;其中,数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;从至少一个已注册的数据访问组件中确定目标数据访问组件;基于与目标数据访问组件之间的通信连接,向目标数据访问组件发送用于指示目标数据库、待处理数据和处理类型的数据操作命令;其中,数据操作命令用于目标数据访问组件通过内置的驱动包对目标数据库中的待处理数据执行与处理类型匹配的数据处理操作,以得到响应结果;基于通信连接,接收目标数据访问组件发送的响应结果,并向数据使用层发送响应结果。由此,通过将数据访问层进行组件化,得到数据访问组件,其中,数据访问组件与数据使用层独立,通过与数据使用层独立的数据访问组件访问数据库(或数据源),即通过数据访问组件对数据库执行数据处理操作,一方面,数据使用层、组件管理层和数据访问组件互相独立,其中任意一个更新时,不会影响到另外两个,可以提升系统的稳定性。另一方面,数据访问组件的数量可以为多个,可以无需将所有的驱动包集成在同一数据访问组件,比如,一个数据访问组件中可以集成一个驱动包,以避免同一数据访问组件中集成多个驱动包而导致驱动包冲突,进而造成系统无法启动的情况发生,提升系统的稳定性。
与上述图6实施例提供的数据访问方法相对应,本申请还提供一种数据访问装置,由于本申请实施例提供的数据访问装置与上述图6实施例提供的数据访问方法相对应,因此在数据访问方法的实施方式也适用于本申请实施例提供的数据访问装置,在本申请实施例中不再详细描述。
图7为本申请实施例所提供的一种数据访问装置的结构示意图。
如图7所示,该数据访问装置700可以应用于组件管理层,包括:获取模块701、确定模块702、发送模块703以及接收模块704。
其中,获取模块701,用于获取数据使用层发送的数据访问请求;其中,数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型。
确定模块702,用于从至少一个已注册的数据访问组件中确定目标数据访问组件。
发送模块703,用于基于与目标数据访问组件之间的通信连接,向目标数据访问组件发送用于指示目标数据库、待处理数据和处理类型的数据操作命令;其中,数据操作命令用于目标数据访问组件通过内置的驱动包对目标数据库中的待处理数据执行与处理类型匹配的数据处理操作,以得到响应结果。
接收模块704,用于基于通信连接,接收目标数据访问组件发送的响应结果。
发送模块703,还用于向数据使用层发送响应结果。
本申请实施例的数据访问装置,通过组件管理层获取数据使用层发送的数据访问请求;其中,数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;从至少一个已注册的数据访问组件中确定目标数据访问组件;基于与目标数据访问组件之间的通信连接,向目标数据访问组件发送用于指示目标数据库、待处理数据和处理类型的数据操作命令;其中,数据操作命令用于目标数据访问组件通过内置的驱动包对目标数据库中的待处理数据执行与处理类型匹配的数据处理操作,以得到响应结果;基于通信连接,接收目标数据访问组件发送的响应结果,并向数据使用层发送响应结果。由此,通过将数据访问层进行组件化,得到数据访问组件,其中,数据访问组件与数据使用层独立,通过与数据使用层独立的数据访问组件访问数据库(或数据源),即通过数据访问组件对数据库执行数据处理操作,一方面,数据使用层、组件管理层和数据访问组件互相独立,其中任意一个更新时,不会影响到另外两个,可以提升系统的稳定性。另一方面,数据访问组件的数量可以为多个,可以无需将所有的驱动包集成在同一数据访问组件,比如,一个数据访问组件中可以集成一个驱动包,以避免同一数据访问组件中集成多个驱动包而导致驱动包冲突,进而造成系统无法启动的情况发生,提升系统的稳定性。
为了实现上述实施例,本申请还提出一种电子设备,其中,电子设备可以为任一具有计算能力的设备,该电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请前述任一实施例提出的数据访问方法。
作为一种示例,图8是本申请一示例性实施例所示出的电子设备800的结构示意图,如图8所示,上述电子设备800,还可以包括:
存储器810及处理器820,连接不同组件(包括存储器810和处理器820)的总线830,存储器810存储有计算机程序,当处理器820执行所述程序时实现本申请实施例所述的数据访问方法。
总线830表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备800典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备800访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器810还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)840和/或高速缓存存储器850。服务器800可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统860可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线830相连。存储器810可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块870的程序/实用工具880,可以存储在例如存储器810中,这样的程序模块870包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块870通常执行本申请所描述的实施例中的功能和/或方法。
电子设备800也可以与一个或多个外部设备890(例如键盘、指向设备、显示器891等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口892进行。并且,电子设备800还可以通过网络适配器893与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器893通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器820通过运行存储在存储器810中的程序,从而执行各种功能应用以及数据访问。
需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本申请实施例的数据访问方法的解释说明,此处不再赘述。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请前述任一实施例提出的数据访问方法。
为了实现上述实施例,本申请还提出一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行如本申请前述任一实施例提出的数据访问方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据访问系统,其特征在于,所述系统包括:互相独立的数据使用层、组件管理层以及目标数据访问组件;其中,
所述数据使用层,用于向所述组件管理层发送数据访问请求;其中,所述数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;
所述组件管理层,用于从至少一个已注册的数据访问组件中确定所述目标数据访问组件,并基于与所述目标数据访问组件之间的通信连接,向所述目标数据访问组件发送用于指示所述目标数据库、所述待处理数据和所述处理类型的数据操作命令,并接收所述目标数据访问组件发送的响应结果,及向所述数据使用层发送所述响应结果;
所述目标数据访问组件,用于通过内置的驱动包响应于所述数据操作命令,在所述目标数据库中对所述待处理数据执行与所述处理类型匹配的数据处理操作,以得到响应结果,并基于所述通信连接向所述组件管理层发送所述响应结果。
2.根据权利要求1所述的系统,其特征在于,所述组件管理层包括策略引擎,其中,所述策略引擎中包括至少一种组件选取策略;
所述组件管理层,具体用于:
判断所述数据访问请求中是否携带业务处理需求;
在所述数据访问请求中携带所述业务处理需求时,从所述策略引擎中的至少一个组件选取策略中,查询与所述业务处理需求匹配的目标组件选取策略;
从所述至少一个数据访问组件中,确定与所述目标组件选取策略匹配的目标数据访问组件。
3.根据权利要求2所述的系统,其特征在于,所述组件管理层,还用于:
在所述数据访问请求中未携带所述业务处理需求时,获取所述策略引擎中的所述至少一个组件选取策略的第一权重;
根据所述至少一个组件选取策略的第一权重,从所述至少一个组件选取策略中确定所述目标组件选取策略;
从所述至少一个数据访问组件中,确定与所述目标组件选取策略匹配的目标数据访问组件。
4.根据权利要求3所述的系统,其特征在于,所述组件管理层还包括组件引擎;
基于所述组件引擎获取各所述数据访问组件的第一目标信息,其中,所述第一目标信息包括以下至少一项:所述数据访问组件的状态信息、所述数据访问组件所在设备的软件信息和所述数据访问组件所在设备的硬件信息;
根据各所述数据访问组件的第一目标信息,确定所述至少一个组件选取策略的第一权重;
或者,
将所述至少一个组件选取策略对应的设定权重,作为所述至少一个组件选取策略的第一权重。
5.根据权利要求4所述的系统,其特征在于,所述组件管理层,具体用于:
根据各所述数据访问组件的第一目标信息,确定各所述数据访问组件的第二权重;
针对任一组件选取策略,从各数据访问组件中确定与所述任一组件选取策略匹配的候选数据访问组件;
根据各所述候选数据访问组件的第二权重,确定所述任一组件选取策略的第一权重。
6.根据权利要求5所述的系统,其特征在于,所述组件管理层,具体用于:
针对任一数据访问组件,根据所述数据访问组件的状态信息,确定所述数据访问组件的第一子权重;
根据所述数据访问组件所在设备的软件信息,确定所述数据访问组件的第二子权重;
根据所述数据访问组件所在设备的硬件信息,确定所述数据访问组件的第三子权重;
根据所述数据访问组件的第一子权重、第二子权重和第三子权重中的至少一项,确定所述数据访问组件的第二权重。
7.根据权利要求2-6中任一项所述的系统,其特征在于,所述组件管理层还包括组件引擎,当与所述目标组件选取策略匹配的所述目标数据访问组件的数量为多个时,所述组件管理层,还用于:
基于所述组件引擎获取各所述目标数据访问组件的第二目标信息;其中,所述第二目标信息包括以下至少一项:所述目标数据访问组件的状态信息、所述目标数据访问组件所在设备的软件信息和所述目标数据访问组件所在设备的硬件信息;
根据各所述目标数据访问组件的第二目标信息,确定各所述目标数据访问组件的第三权重;
根据各所述目标数据访问组件的第三权重,对各所述目标数据访问组件进行筛选,以保留一个所述目标数据访问组件。
8.根据权利要求1所述的系统,其特征在于,所述组件管理层,还用于:
对各数据访问组件进行初始化;
针对初始化后的任一数据访问组件,确定与所述任一数据访问组件匹配的访问方式;
开启与所述访问方式匹配的插件扫描服务,并基于所述插件扫描服务对所述任一数据访问组件进行扫描,以确定所述任一数据访问组件是否通过校验;
在所述任一数据访问组件通过校验时,对所述任一数据访问组件进行注册。
9.一种数据访问方法,其特征在于,应用于组件管理层,所述方法包括:
获取数据使用层发送的数据访问请求;其中,所述数据访问请求用于指示待访问的目标数据库、待处理数据和处理类型;
从至少一个已注册的数据访问组件中确定目标数据访问组件;
基于与所述目标数据访问组件之间的通信连接,向所述目标数据访问组件发送用于指示所述目标数据库、所述待处理数据和所述处理类型的数据操作命令;其中,所述数据操作命令用于所述目标数据访问组件通过内置的驱动包对所述目标数据库中的待处理数据执行与所述处理类型匹配的数据处理操作,以得到响应结果;
基于所述通信连接,接收所述目标数据访问组件发送的所述响应结果,并向所述数据使用层发送所述响应结果。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310148957.XA CN116126944B (zh) | 2023-02-14 | 2023-02-14 | 数据访问系统、方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310148957.XA CN116126944B (zh) | 2023-02-14 | 2023-02-14 | 数据访问系统、方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116126944A true CN116126944A (zh) | 2023-05-16 |
CN116126944B CN116126944B (zh) | 2024-07-26 |
Family
ID=86311663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310148957.XA Active CN116126944B (zh) | 2023-02-14 | 2023-02-14 | 数据访问系统、方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126944B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100176926A1 (en) * | 2007-09-21 | 2010-07-15 | Inha-Industry Partnership Institute | Time slot allocation apparatus and method for preventing collisions between time slots in tdma-based rfid network |
CN103488765A (zh) * | 2013-09-28 | 2014-01-01 | 雷虹 | 一种代理数据库的访问驱动及其数据访问方法 |
US20170123672A1 (en) * | 2015-11-01 | 2017-05-04 | International Business Machines Corporation | Data transfer between data storage libraries |
CN106648920A (zh) * | 2016-09-29 | 2017-05-10 | 山东浪潮云服务信息科技有限公司 | 一种基于接口的数据通信方法 |
CN107247599A (zh) * | 2017-06-26 | 2017-10-13 | 北京华睿集成科技有限公司 | 仪器驱动模组和仪器驱动方法 |
CN107818127A (zh) * | 2017-09-09 | 2018-03-20 | 国网浙江省电力公司 | 一种用于多源数据的查询方法及系统 |
CN108780391A (zh) * | 2016-03-25 | 2018-11-09 | 华为技术有限公司 | 网络服务组件访问上下文数据的方法、装置及系统 |
US10503923B1 (en) * | 2016-08-31 | 2019-12-10 | Amazon Technologies, Inc. | Centralized data store for multiple data processing environments |
CN113656484A (zh) * | 2021-08-31 | 2021-11-16 | 平安医疗健康管理股份有限公司 | 数据库的访问系统及方法、装置、电子设备、存储介质 |
CN113886481A (zh) * | 2021-12-06 | 2022-01-04 | 北京宇信科技集团股份有限公司 | 一种数据库访问方法和系统 |
CN113987541A (zh) * | 2021-10-29 | 2022-01-28 | 四川省明厚天信息技术股份有限公司 | 数据访问控制方法、装置及电子设备 |
CA3140854A1 (en) * | 2020-12-01 | 2022-06-01 | 10353744 Canada Ltd. | Data processing method and device, computer equipment and storage medium |
-
2023
- 2023-02-14 CN CN202310148957.XA patent/CN116126944B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100176926A1 (en) * | 2007-09-21 | 2010-07-15 | Inha-Industry Partnership Institute | Time slot allocation apparatus and method for preventing collisions between time slots in tdma-based rfid network |
CN103488765A (zh) * | 2013-09-28 | 2014-01-01 | 雷虹 | 一种代理数据库的访问驱动及其数据访问方法 |
US20170123672A1 (en) * | 2015-11-01 | 2017-05-04 | International Business Machines Corporation | Data transfer between data storage libraries |
CN108780391A (zh) * | 2016-03-25 | 2018-11-09 | 华为技术有限公司 | 网络服务组件访问上下文数据的方法、装置及系统 |
US10503923B1 (en) * | 2016-08-31 | 2019-12-10 | Amazon Technologies, Inc. | Centralized data store for multiple data processing environments |
CN106648920A (zh) * | 2016-09-29 | 2017-05-10 | 山东浪潮云服务信息科技有限公司 | 一种基于接口的数据通信方法 |
CN107247599A (zh) * | 2017-06-26 | 2017-10-13 | 北京华睿集成科技有限公司 | 仪器驱动模组和仪器驱动方法 |
CN107818127A (zh) * | 2017-09-09 | 2018-03-20 | 国网浙江省电力公司 | 一种用于多源数据的查询方法及系统 |
CA3140854A1 (en) * | 2020-12-01 | 2022-06-01 | 10353744 Canada Ltd. | Data processing method and device, computer equipment and storage medium |
CN113656484A (zh) * | 2021-08-31 | 2021-11-16 | 平安医疗健康管理股份有限公司 | 数据库的访问系统及方法、装置、电子设备、存储介质 |
CN113987541A (zh) * | 2021-10-29 | 2022-01-28 | 四川省明厚天信息技术股份有限公司 | 数据访问控制方法、装置及电子设备 |
CN113886481A (zh) * | 2021-12-06 | 2022-01-04 | 北京宇信科技集团股份有限公司 | 一种数据库访问方法和系统 |
Non-Patent Citations (1)
Title |
---|
邬海波;吴保国;: "基于WebService的多源数据库数据访问方法", 电脑知识与技术, no. 31, 5 November 2009 (2009-11-05) * |
Also Published As
Publication number | Publication date |
---|---|
CN116126944B (zh) | 2024-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3382953B2 (ja) | 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置 | |
US10474691B2 (en) | Micro-staging device and method for micro-staging | |
US9473553B2 (en) | Method for distributing and controlling traffic in cloud computing system and cloud computing system using the same | |
US20090199175A1 (en) | Dynamic Allocation of Virtual Application Server | |
US8104038B1 (en) | Matching descriptions of resources with workload requirements | |
US9135041B2 (en) | Selecting provisioning targets for new virtual machine instances | |
US20070136269A1 (en) | Information monitoring method | |
CN109491928A (zh) | 缓存控制方法、装置、终端及存储介质 | |
US11922059B2 (en) | Method and device for distributed data storage | |
US20090138613A1 (en) | Network Converter and Information Processing System | |
US20120158819A1 (en) | Policy-based application delivery | |
US20160070475A1 (en) | Memory Management Method, Apparatus, and System | |
US9390156B2 (en) | Distributed directory environment using clustered LDAP servers | |
US20080028034A1 (en) | Method for mapping an iscsi target name to a storage resource based on an initiator hardware class identifier | |
US7451219B2 (en) | Determining server resources accessible to client nodes using information received at the server via a communications medium | |
CN115190062B (zh) | 业务处理方法及装置、电子设备和计算机可读存储介质 | |
US8903871B2 (en) | Dynamic management of log persistence | |
US20140219278A1 (en) | Assessing response routes in a network | |
US10873543B2 (en) | Fiber channel fabric login/logout system | |
US8549274B2 (en) | Distributive cache accessing device and method for accelerating to boot remote diskless computers | |
US8180842B2 (en) | Communication device management program | |
CN109783002B (zh) | 数据读写方法、管理设备、客户端和存储系统 | |
CN116126944B (zh) | 数据访问系统、方法和电子设备 | |
KR20080077966A (ko) | 분산 서비스 사이트를 등록하기 위한 방법 및 시스템 | |
CN111008023B (zh) | 一种实例部署方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |