CN115080537A - 多租户的数据分库方法、程序产品及电子设备 - Google Patents
多租户的数据分库方法、程序产品及电子设备 Download PDFInfo
- Publication number
- CN115080537A CN115080537A CN202210637186.6A CN202210637186A CN115080537A CN 115080537 A CN115080537 A CN 115080537A CN 202210637186 A CN202210637186 A CN 202210637186A CN 115080537 A CN115080537 A CN 115080537A
- Authority
- CN
- China
- Prior art keywords
- product
- library
- information
- data
- tenant
- 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 68
- 238000000638 solvent extraction Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000015654 memory Effects 0.000 claims description 29
- 230000008520 organization Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 44
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229940127554 medical product Drugs 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001360 synchronised 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及一种多租户的数据分库方法、程序产品及电子设备。该方法包括:获取执行保险业务的请求;基于请求中的产品信息以及地理区域信息,将请求与产品管理库的区域库信息匹配;在匹配到区域库信息的情况下,在产品区域库中获取产品配置规则,并且根据产品配置规则获取执行保险业务所需的数据;在未匹配到区域库信息的情况下,获取请求中的租户信息;在租户库中获取执行保险业务所需的数据。本申请的技术方案将地理区域信息与分库规则相结合,可以有效避免仅仅根据单一的多租户分库规则访问同一数据库,造成处理保险业务失败的问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种多租户的数据分库方法、程序产品及电子设备。
背景技术
目前,随着用户安全意识的提高,用户逐渐意识到保险的重要性,越来越多的用户加入到了购买保险的行列。许多保险公司采用软件即服务(Software as a Service,SaaS)的服务模式。SaaS服务是指SaaS供应商为公司搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,公司无需购买软硬件、建设机房、招聘IT人员,即可通过互联网使用信息系统。由于大量保险公司采用SaaS服务开展保险业务,所以SaaS服务供应商的服务器上部署有多个租户项目,各租户项目具有对应的数据库,例如城市医疗保险租户具有对应的城市医疗保险租户数据库、意外保险租户具有对应的意外保险租户数据库等。
然而,由于用户较多,在高并发的情况下,服务器中数据库的连接资源比较宝贵,现有的租户分库方法无法随着业务的变化而改变,同一租户不同地域的用户操作同一个租户数据库中的数据,容易造成数据库负载升高,连接数量不足等性能问题,仅仅根据租户信息访问对应的租户数据库无法高效地处理保险业务。例如,对于城市医疗保险项目,如果仅仅根据原有的租户分库方法,大量不同地区的用户同时对服务器请求获取同一租户数据库中的数据,容易造成城市医疗保险对应的数据库负载升高,连接数量不足等性能问题,从而无法高效地处理保险业务。
发明内容
有鉴于此,本申请涉及一种多租户的数据分库方法、程序产品及电子设备。
第一方面,本申请实施例提供了一种多租户的数据分库方法,用于包括服务器和作为数据库的存储设备的系统,其中,服务器中配置有拦截匹配模块,拦截匹配模块包括数据拦截模块、区域规则匹配模块、组织架构拦截模块、租户规则匹配模块,上述方法包括:
数据拦截模块获取执行保险业务的请求;
区域规则匹配模块基于数据拦截模块传递的请求中的产品信息以及地理区域信息,将请求与数据库中的产品管理库的区域库信息匹配,其中,产品对应数据库中的多个产品区域库,产品区域库包括与保险业务实施者对应的产品配置规则;
在匹配到区域库信息的情况下,区域规则匹配模块在产品区域库中获取产品配置规则,并且根据产品配置规则获取执行保险业务所需的数据;
在未匹配到区域库信息的情况下,组织架构拦截模块获取请求中的租户信息;并且租户规则匹配模块,基于组织架构拦截模块传递的租户信息在数据库中的租户库中获取执行保险业务所需的数据。
可以理解的,对于相同的保险种类,由于投保人的想要投保的地理区域不同,则对应的保单数据内容是不同的,所以不同的地理区域可以有不同的数据库。本申请实施例提供了一种多租户的数据分库方法,用于包括服务器和作为数据库的存储设备的系统,数据拦截模块获取执行保险业务的请求;区域规则匹配模块基于数据拦截模块传递的请求中的产品信息以及地理区域信息,将请求与数据库中的产品管理库的区域库信息匹配;在匹配到区域库信息的情况下,区域规则匹配模块在数据库中的产品区域库中获取产品配置规则,并且根据产品配置规则获取执行保险业务所需的数据;在未匹配到区域库信息的情况下,组织架构拦截模块获取请求中的租户信息;并且租户规则匹配模块,基于组织架构拦截模块传递的租户信息在数据库中的租户库中获取执行保险业务所需的数据。该方法将地理区域信息与分库方式结合,根据同一个保险产品可以对应不同的区域库的特点,将同一个产品对应的不同的区域划分不同的数据库,在高并发的情况下,对于同一个产品可以访问不同的产品区域库,改进了单一的根据租户信息的分库规则,可以有效避免仅仅根据单一的租户分库规则访问同一数据库,造成保险业务处理失败的问题,进而提高了保险业务的处理效率。
在上述第一方面的一种可能的实现中,数据库中的产品管理库可以为轻量目录访问协议,其中,轻量目录访问协议包括与数据库中的产品区域库对应的产品信息、地理区域信息以及各产品区域库的名称、代号或者路径地址。
可以理解的,轻量目录访问协议可以作为一种特殊的数据库,按照树型结构组织信息,对浏览和查找目录及读取内容进行了专门的优化。产品管理库采用轻量目录访问协议,区域规则匹配模块能够基于数据拦截模块传递的请求中的产品信息以及地理区域信息,更加快速地实现将请求与所述数据库中的产品管理库的区域库信息匹配。
在上述第一方面的一种可能的实现中,将请求与数据库中的产品管理库的区域库信息匹配,包括,
基于产品信息以及地理区域信息在产品管理库中搜索,是否找到与产品信息以及地理区域信息对应的产品区域库名称、代号或者路径地址。
可以理解的,通过基于产品信息以及地理区域信息在产品管理库中搜索,是否找到与产品信息以及地理区域信息对应的产品区域库名称、代号或者路径地址的方式,能够快速、方便、有效地将请求与所述数据库中的产品管理库的区域库信息匹配,得到匹配结果。
在上述第一方面的一种可能的实现中,区域规则匹配模块在数据库中的产品区域库中获取产品配置规则,并且根据产品配置规则获取执行保险业务所需的数据,包括,
区域规则匹配模块通过区域库连接字符串,在数据库中的产品区域库对应的具体区域库中获取产品配置规则,并且根据产品配置规则获取执行保险业务所需的数据。
可以理解的,区域规则匹配模块通过区域库连接字符串,可以快速、高效地在数据库中的产品区域库中获取产品配置规则,并且根据产品配置规则获取执行保险业务所需的数据。
在上述第一方面的一种可能的实现中,产品区域库包括与保险业务实施者对应的产品配置规则为,
产品区域库包括一个保险业务实施者规定的产品配置规则或者多个保险业务实施者规定的多个产品配置规则。
可以理解的,产品区域库包括一个保险业务实施者规定的产品配置规则或者多个保险业务实施者规定的多个产品配置规则,对于同一个区域的同一种保险产品提供了多种配置规则,使得区域分库规则更加合理。
在上述第一方面的一种可能的实现中,产品信息包括,产品名称或者产品代号。
可以理解的,产品名称或者产品代号是直接有效的表现产品的要素,产品信息包括,产品名称或者产品代号,有助于实现根据产品信息以及区域信息在产品管理库中匹配区域库信息。
在上述第一方面的一种可能的实现中,地理区域信息包括,产品被划分的所属的行政区域或者根据自定义划分所属的自定义区域。
可以理解的,地理区域信息包括,产品被划分的所属的行政区域或者根据自定义划分所属的自定义区域,有利于结合产品信息获得产品区域库,并根据产品管理库中的区域信息高效地访问对应的具体区域数据库。
在上述第一方面的一种可能的实现中,区域库信息,包括产品区域库名称、代号或者路径地址。
可以理解的,区域库信息,包括具体产品区域库名称、代号或者路径地址,给在产品管理库中获取产品区域库提供了多种表示方式。
在上述第一方面的一种可能的实现中,执行保险业务所需的数据,包括,
保单上的基本要素内容数据、执行生成保单、执行查询保险业务状态或者执行审核保险单据的逻辑数据中的至少一种数据。
可以理解的,执行保险业务所需的数据,包括了保单上的基本要素内容数据、执行生成保单、执行查询保险业务状态或者执行审核保险单据的逻辑数据中的至少一种数据,在获取前述数据后,可以根据获取的数据有效处理保险业务。
在上述第一方面的一种可能的实现中,数据库,包括,
产品管理库,产品区域库和租户库。
可以理解的,数据库包括产品管理库,产品区域库和租户库,给实现区域分库规则以及租户分库规则提供条件。
第二方面,本申请实施例提供了一种多租户的数据分库装置,包括,
数据接收模块,用于接收数据;
数据转发模块,用于转发数据;
拦截匹配模块,用于拦截数据,并将拦截到的数据与区域分库规则或者租户分库规则进行匹配;
执行业务逻辑模块,用于执行业务逻辑;
并且,拦截匹配模块,包括,
数据拦截模块,用于获取第一数据,其中,第一数据包括产品信息以及地理区域信息;
区域规则匹配模块,用于根据产品信息以及地理区域信息与区域分库规则匹配;
组织架构拦截模块,用于获取第二数据,其中,第二数据包括租户信息;
租户规则匹配模块,用于根据租户信息与租户分库规则匹配。
可以理解的,上述第一数据为数据转发模块传递的请求数据;上述第二数据为区域规则匹配模块传递的请求数据。
可以理解的,本申请实施例提供的一种多租户的数据分库装置,包括数据接收模块、数据转发模块、拦截匹配模块、执行业务逻辑模块,通过前述各模块可以完成处理保险业务,其中,区域规则匹配模块包括多个实现根据请求中的地理区域信息,完成动态分库规则的子模块,通过各子模块可以有效实现多租户的数据分库方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,所述指令在电子设备上执行时使所述电子设备执行上述第一方面以及第一方面的各种可能实现中的任意一种多租户的数据分库方法。
第四方面,本申请实施例提供了一种芯片装置,芯片装置包括:
通信接口,用于输入和/或输出信息;
处理器,用于执行计算机可执行程序,使得安装有所述芯片装置的电子设备执行上述第一方面以及第一方面的各种可能实现中的任意一种多租户的数据分库方法。
第五方面,本申请实施例提供了一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,当所述指令被执行时实现上述第一方面以及第一方面的各种可能实现中的任意一种多租户的数据分库方法。
第六方面,本申请实施例提供了一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及
处理器,当所述指令被所述电子设备的一个或多个处理器执行时,所述处理器用于执行所述存储器中存储的指令,以实现上述第一方面以及第一方面的各种可能实现中的任意一种多租户的数据分库方法。
基于上述方案,本申请具有如下有益效果:
本申请实施例提供的一种多租户的数据分库方法,用于包括服务器和作为数据库的存储设备的系统,数据拦截模块获取执行保险业务的请求;区域规则匹配模块基于数据拦截模块传递的请求中的产品信息以及地理区域信息,将请求与数据库中的产品管理库的区域库信息匹配;在匹配到区域库信息的情况下,区域规则匹配模块在数据库中的产品区域库中获取产品配置规则,并且根据产品配置规则获取执行保险业务所需的数据;在未匹配到区域库信息的情况下,组织架构拦截模块获取请求中的租户信息;并且租户规则匹配模块,基于组织架构拦截模块传递的租户信息在数据库中的租户库中获取执行保险业务所需的数据。该方法将地理区域信息与分库方式结合,根据同一个保险产品可以对应不同的区域库的特点,将同一个产品对应的不同的区域划分不同的数据库,在高并发的情况下,对于同一个产品可以访问不同的产品区域库,改进了单一的根据租户信息的分库规则,可以有效避免仅仅根据单一的租户分库规则访问同一数据库,造成保险业务处理失败的问题,进而提高了保险业务的处理效率。另外,提供了一种多租户的数据分库装置,该装置有数据接收模块、数据转发模块、拦截匹配模块、执行业务逻辑模块,可以有效完成处理保险业务的流程。其中,区域规则匹配模块包括,数据拦截模块、区域规则匹配模块、组织架构拦截模块、租户规则匹配模块,多个子模块实现根据请求中的产品信息、地理区域信息或者租户信息完成动态分库规则。
附图说明
图1A根据本申请的一些实施例,示出了一种保险业务场景示意图;
图1B根据本申请的一些实施例,示出了一种未完成的保单界面示意图;
图1C根据本申请的一些实施例,示出了一种完成的保单界面示意图;
图2A根据本申请的一些实施例,示出了一种服务器200b的装置结构示意图;
图2B根据本申请的一些实施例,示出了一种拦截匹配模块203的结构示意图;
图2C根据本申请的一些实施例,示出了一种数据库300的结构示意图;
图3根据本申请的一些实施例,示出了一种拦截匹配模块203与数据库300中各子数据库的交互过程示意图;
图4根据本申请的一些实施例,示出了一种多租户的数据分库方法的流程图;
图5根据本申请的一些实施例,示出了一种服务器200b的硬件结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种多租户的数据分库方法、程序产品和电子设备。
为使本申请的目的、技术方案和优点更加清楚,下面通过结合附图和实施方案,对本申请实施例的技术方案做进一步地详细描述。显然,所描述的实施例仅是本发明部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图详细说明本申请实施例的技术方案。
图1A根据本申请的一些实施例,示出了本申请的技术方案适用的一种保险业务场景。如图1A所示,其中包括投保人、投保人使用的用户终端100、保险公司对应的服务器200a,SaaS服务对应的服务器200b,以及部署于服务器200b上的数据库300。保险公司为降低运营成本,向SaaS供应商购买服务,因而保险公司只需在服务器上部署处理保险业务所需的设施,就可以通过访问服务器200b处理保险业务。
用户终端100可以通过网络与服务器200a连接,服务器200a可以通过网络与服务器200b连接,从而办理保险业务。例如,用户终端100可以通过无线保真(Wireless-Fidelity,Wi-Fi)网络、蓝牙等无线网络和服务器200a进行通信,服务器200a可以通过无线保真(Wireless-Fidelity,Wi-Fi)网络、蓝牙等无线网络和服务器200b进行通信。
具体地,用户终端100可以安装有保险公司的客户端软件,例如保险应用程序(Application,APP),投保人可以通过该用户终端100安装的保险APP访问服务器200a购买自己需要的保险产品,例如购买城市医疗保险、养老保险、车辆保险、意外险等;投保人还可以使用用户终端100中的即时通讯APP扫描各保险对应的二维码购买保险,办理保险业务。
服务器200a根据用户终端100发送的请求数据,将数据进行加密,再将加密后的请求数据发送给服务器200b,服务器200b接收到保险业务请求后,根据请求中的保险产品租户信息,识别该保险产品所属的具体租户,根据租户分库规则,在服务器200b中所属租户对应的数据库300中获取存储的数据,执行保险业务内容,并将处理的保险业务结果发送给服务器200a,服务器200a再将处理的保险业务结果数据进行解密,将最终的结果发送给用户终端100,从而完成处理保险业务的流程。
可以理解的,由于保险公司租用SaaS服务的供应商提供的软件服务,服务器200b部署有根据保险公司自身业务需要的数据。保险公司根据业务将需要利用软件服务处理的保险业务放在服务器200b上进行处理,这样降低了维护成本,提高了资源的可利用性。
例如,以处理的保险业务为生成城市医疗保险保单为例具体介绍。图1B示出了用户投保时用户终端100的页面101。用户在用户终端100上办理投保业务时,填写完保单所需的信息后,例如,填写完如图1b所示的产品名称、可投保城市、投保金额等数据后,需要生成保单。用户终端100向服务器200a发送生成城市医疗保险保单的请求;服务器200a在接收到投保人通过用户终端100发送的请求之后,将请求数据进行加密,再将加密后的请求数据发送给服务器200b;服务器200b接收到加密后的生成城市医疗保险保单的请求后,识别城市医疗保险产品所属的租户(以下简称“医疗保险租户”),例如,医疗保险租户可以为某保险公司,根据租户分库规则,在数据库300中的医疗保险租户对应子数据库(以下简称“医疗保险租户库”)中获取存储的数据,根据获取的数据执行生成城市医疗保险保单的请求,并将生成的城市医疗保险保单结果发送给服务器200a,服务器200a再将处理的保险业务结果数据根据对应的解密方法进行解密,将最终的结果发送给用户终端100。可以理解,生成城市医疗保险保单的业务请求只是服务器200b处理的保险公司设置在服务器200b中的保险业务中的一种,上述仅仅是作为一种示例。服务器200b处理的保险业务还可以根据投保请求生成空白保单业务,查询保险业务状态、审核保险单据等等。
然而,由于在保险业务办理过程中,存在同一时间多数人进行投保操作,多个用户终端100向服务器200a发送投保请求,服务器200a再将加密请求数据发送给服务器200b,服务器200b需要根据多租户分库规则访问同一数据库,容易造成数据库负载升高,连接数量不足等性能问题,因而易造成投保人投保失败,不仅浪费了连接资源,还影响保险业务的处理进程。例如,用户终端100向服务器200a发送生成城市医疗保险保单的请求,服务器200a接收用户终端100发送的请求后,将与隐私安全有关的数据加密后,将加密后的请求数据发送给服务器200b,服务器200b根据获取的数据请求,根据租户分库规则,判断城市医疗保险所属为医疗保险租户后,由于医疗保险租户库连接量较大,连接医疗保险租户库失败,无法生成保险单据,浪费了连接资源,影响了处理城市医疗保险业务进程。
可以理解的,相同的保险种类由于投保人的想要投保的地理区域不同,则对应的保单数据内容是不同的。例如,对于同一种城市医疗保险,不同的城市,城市医疗报销范围以及报销比例、免赔额设置、投保要求、使用地域要求等保障内容都不同。对于同一种城市医疗保险产品,在A城市进行城市医疗保险投保的投保内容与在B城市进行城市医疗保险投保的投保内容不同。因而,可以将投保产品以及地理区域进行关联,根据投保产品以及地理区域的关联性进行分库。
为此,本申请提出一种多租户的数据分库方法,服务器200b根据请求中的保险产品信息以及地理区域信息与区域分库规则进行匹配,若匹配成功,则根据区域分库规则获取的与保险公司对应的产品配置规则以及与产品配置规则对应的执行保险业务所需的相关数据,执行保险业务逻辑;若与区域分库规则匹配失败,则根据请求中的租户信息与租户分库规则匹配,匹配成功后,根据租户分库规则获取的执行保险业务的相关数据,执行保险业务逻辑。其中,保险产品对应多个产品区域库,产品区域库包括与保险业务实施者对应的产品配置规则。
可以理解的,上述地理区域可以理解为不同的行政区,比如按照省、市、区、县划分的区域,也可以是根据经济发展水平、常驻人口数量自定义划分的地理区域。
可以理解的,由于在不同的区域购买相同保险产品的保险内容是不同的,这样将保险产品以及地理区域信息结合起来,对于同一个产品,不同的地理区域,访问不同的产品区域库,在区域库中获取与不同保险公司相关的产品配置规则,从而在高并发的情况下,多个用户终端100在办理保险业务的过程中,针对不同的区域,访问不同的区域库,可以有效避免仅仅根据单一的多租户分库规则访问同一数据库,造成用户处理保险业务失败的问题,减小了单个数据库的压力,进而提高了保险业务的处理效率。
例如,在上述图1A所示的场景中,用户填写完如图1B所示的保单界面,当服务器200b接收到发送的生成城市医疗保险保单数据的请求后,获取请求中的产品名称以及可投保城市,并根据产品名称“xx城市医疗保险”以及可投保城市“安阳”与区域分库规则进行匹配。若匹配成功,则在安阳对应的区域库(以下简称“安阳库”)中获得与保险公司对应的城市医疗保险产品配置规则,以及与城市医疗保险产品配置规则对应的执行保险业务所需的相关数据,根据获取的数据执行业务逻辑;若与区域分库规则匹配失败,则根据请求中的城市医疗保险产品对应的租户信息与租户分库规则匹配,匹配成功后,根据匹配的租户分库规则获取医疗保险租户库中的与生成保单相关的数据,再根据获取的数据执行生成医疗保险保单的业务逻辑。当服务器200b执行生成医疗保险的业务逻辑之后,将数据发送给服务器200a,服务器200a将数据进行解密,再发送给用户终端100,用户终端100显示如图1C所示的保险单据界面102,此时保险单据界面无法修改。
可以理解的,对于相同的城市医疗保险业务,在不同的区域,例如安阳、玉林等城市,它的保险业务不同,当服务器200b接收服务器200a获取的安阳、玉林等地的多个用户终端100的投保请求,服务器200b则可以根据区域分库规则获取安阳库中的与保险公司对应的城市医疗保险产品配置规则,以及与城市医疗保险产品配置规则对应的执行保险业务所需的相关数据,根据获取的数据执行生成城市医疗保险保单业务逻辑;则根据区域分库规则获取玉林对应的区域库(以下简称“玉林库”)中的与保险公司对应的城市医疗保险产品配置规则,以及与城市医疗保险产品配置规则对应的执行保险业务所需的相关数据,根据获取的数据生成城市医疗保险保单。通过投保请求在不同的区域数据库中获取执行保险业务逻辑所需的数据,提高处理保险业务的效率。
需要说明的是,图1A所示的应用场景中的用户终端100可以是任意一种可以安装保险公司的应用程序,并且具有显示屏的电子设备。服务器200a和服务器200b可以是单独的服务器,也可以是多个服务器构成的服务器集群。
为了方便理解本方案,先对服务器200b对应的装置结构进行介绍。
如图2A所示,服务器200b包括数据接收模块201、数据转发模块202、拦截匹配模块203、执行业务逻辑模块204。
下面具体介绍服务器200b中各模块的功能及在本申请的一些实施例中的作用。
具体地,数据接收模块201可以用于接收请求数据。在本申请的一些实施例中,数据接收模块201可以接收服务器200a发送的与保险业务相关的请求数据,并将请求数据发送给数据转发模块202。例如,数据接收模块201接收服务器200a发送的报文,报文中包括与保险业务相关的产品信息、区域信息或者保险产品所属的租户信息中的至少一个字段。
数据转发模块202可以用于转发请求数据。在本申请的一些实施中,数据转发模块202可以获取数据接收模块201发送的与保险业务相关的请求数据,并将请求数据中无关的数据过滤掉,将过滤后的请求数据发送给拦截匹配模块203。
拦截匹配模块203可以用于拦截数据,并根据拦截到的数据与区域分库规则或者租户分库规则进行匹配。在本申请的一些实施例中,拦截匹配模块203可以接收数据转发模块202发送的数据,根据请求数据中的产品信息以及地理区域信息进行区域分库规则匹配,若匹配成功,则将匹配获得的结果数据发送给执行业务逻辑模块204;若匹配失败,则获取请求中的租户信息,根据租户信息匹配租户分库规则,将匹配获得的结果数据发送给执行业务逻辑模块204。
可以理解的,根据获取的请求中的地理区域信息或者租户信息匹配对应的分库策略,这样改进了原有单一的租户分库方式,从而在高并发的情况下,对于相同的保险产品,由于采用区域分库策略,访问不同的子数据库,避免访问同一保单库而获取数据失败的问题,从而提高处理保险业务的效率。可以理解的,在一些实现方式中,拦截匹配模块203可以为链式多拦截器。
执行业务逻辑模块204用于执行业务逻辑。在本申请的一些实施例中,执行业务逻辑模块204可以接收拦截匹配模块203匹配成功得到的保险业务数据,执行保险业务。例如,执行生成保险单据的业务、审核保险单据的业务、查询保险业务状态等。
为了更加清楚地阐述拦截匹配模块203匹配分库规则的方式,先介绍本申请的一些实施例中拦截匹配模块203具体可包括的功能模块以及数据库300包括的各子数据库。
如图2B所示,拦截匹配模块203可以包括数据拦截模块203a、区域规则匹配模块203b、组织架构拦截模块203c、租户规则匹配模块203d。
数据拦截模块203a获取数据转发模块202转发的请求数据,并将请求数据发送给区域规则匹配模块203b。可以理解的,在一些实现方式中,数据拦截模块203a可以为数据拦截器。
区域规则匹配模块203b可以接收数据拦截模块203a发送的请求数据,根据请求数据中的产品信息以及区域信息先在数据库300中的产品管理库进行搜索,若在产品管理库中找到该产品所对应的具体区域库信息,根据区域库信息在数据库300中的产品区域库中进行搜索,获取该产品区域库与保险业务实施者对应的产品配置规则以及与产品配置规则对应的数据,则匹配成功,若在产品管理库中未找到该产品所对应的具体区域,则匹配失败。
组织架构拦截模块203c获取区域规则匹配模块203b发送的请求数据,并根据请求数据获取租户信息,并将租户信息发送给租户规则匹配模块203d。其中,租户信息可以为保险产品或者保险产品对应的保险公司的信息。可以理解的,在一些实现方式中,组织架构拦截模块203c可以为组织架构拦截器。
租户规则匹配模块203d接收组织架构拦截模块203c发送的数据,根据获取的数据中的租户信息在数据库300中的租户库中匹配,获得该租户对应的执行保险业务的执行业务逻辑数据或者保单数据等,将搜索到的数据发送给执行业务逻辑模块204。
如图2C所示,数据库300包括产品管理库301、产品区域库302以及租户库303。
可以理解的,数据库300中的各子数据库可以是关系型数据库,也可以为轻量目录访问协议(Lightweight Directory Access Protocol,LDAP)。其中,LDAP可以作为一种特殊的数据库,按照树型结构组织信息,对浏览和查找目录及读取内容进行了专门的优化,是一种层次型数据库,具有非常好的读取数据能力,比从关系型数据库读取数据快一个数量级。
LDAP目录以一系列“属性对”的形式来存储记录项,每一个记录项包括属性类型和属性值。例如,产品管理库301可以为LDAP数据库,产品管理库301中保存的区域库信息可以为与产品区域库302对应的保险产品信息、区域信息以及产品区域库的名称、代号或者路径地址。具体地,产品管理库301中的记录项的属性可以自定义有产品名称属性,区域属性,具体产品区域库名称、代号或者具体区域库对应的路径地址属性,根据属性获取对应的属性值。
具体地,产品管理库301包括各产品以及各产品对应的多个区域库的信息,比如产品区域库名称、代号或者路径地址等。例如,产品为K保险产品,则该产品在A、B、C城市销售,就会有K保险产品对应的A城市库名称、代号或者区域库路径地址,K保险产品对应的B城市库名称、代号或者区域库路径地址,K保险产品对应的C城市库名称、代号或者产品区域库路径地址等,多个产品中每一个产品都会有对应的多个区域库。例如,对于城市医疗保险产品,可以在玉林、安阳等多个城市销售,则产品匹配库301可以包括城市医疗保险产品在玉林与安阳等地对应的数据库名称、代号或者路径地址。
产品区域库302包括多个产品对应的区域数据库,产品区域库中的各子数据库与产品管理库中获得的产品区域库的名称或者路径地址相对应。例如,对于K保险产品,各子数据库包括K保险产品对应的A城市库或者A城市库对应的路径地址、K保险产品对应的B城市库或者B城市库对应的路径地址、K保险产品对应的C城市库或者C城市库对应的路径地址等。例如,对于城市医疗保险产品,对应的多个产品区域库,包括威海库、玉林库、安阳库等区域库。各产品区域库中包括与保险业务实施者对应的产品配置规则,其中一个产品区域库中可以包括多个不同保险公司对应的产品配置规则,具体地,一个保险公司规定的多个产品配置规则或者一个保险公司规定的一个产品配置规则或者多个保险公司规定的一个产品配置规则等,具体情况不做限制。例如,玉林库中包括多个保险公司分别设定的城市医疗保险产品配置规则。
租户库303包括多个租户库,例如A租户库、B租户库、C租户库等。每个租户库可以存储同一个保险公司的同一个产品所需的数据,也可以存储同一个保险公司的多个产品所需的数据。例如,租户库303可以包括城市医疗保险租户库。
可以理解的,上述服务器200b所示的结构图仅仅是一种示意,在其他一些实施例中,还可以在此基础上增加或减少相应的模块,具体结构在此不做要求。例如,还可以包括用户管理模块、用户配置模块、保单管理模块等。上述数据库300包括的数据库各子数据库仅仅是一种示例,在其他一些实施例中,还可以在此基础上增加或减少相应的子数据库,具体结构在此不做要求。
为了更好地理解本申请方案中拦截匹配模块203在匹配区域分库规则或者租户分库规则的过程中,与数据库300中各子数据库的交互过程。下面以执行的保险业务为生成保单为例,阐述拦截匹配模块203中各子模块与数据库300中各子数据库之间的交互过程。图3示出了具体交互过程,包括以下步骤:
S301:数据拦截模块203a拦截生成保单的请求。
可以理解的,数据拦截模块203a拦截的生成保单的请求中,包括能够表征保险产品信息、投保人信息、可投保的地理区域信息、产品销售渠道等,在此不做赘述。
可以理解的,产品信息可以包括产品代号或者名称等信息,可投保的地理区域信息可以为不同的行政区,比如按照省、市、区、县划分的区域,也可以是根据经济发展水平、常驻人口数量自定义划分的地理区域。其中,产品信息以及可投保城市经过服务器200a加密后,可以通过数字、字母等方式标识,具体标识方式不做规定。
例如,数据拦截模块203a拦截的生成城市医疗保险保单的请求,请求中包括能够表征城市医疗保险产品的信息、投保人信息以及可投保城市信息等。
S302:数据拦截模块203a向区域规则匹配模块203b发送生成保单请求。
例如,数据拦截模块203a向区域规则匹配模块203b发送生成城市医疗保险保单的请求。
S303:区域规则匹配模块203b根据请求数据,获取产品信息以及地理区域信息。
例如,区域规则匹配模块203b根据获取的生成城市医疗保险保单的请求,获取城市医疗保险产品的代号为01以及可投保城市安阳市标识为AY。
S304:区域规则匹配模块203b向产品管理库301发送获取产品对应的具体区域库信息请求。
可以理解的,在一些实施例中,区域规则匹配模块203b可以为通过特定领域语言,即共识的语言来规定与区域规则匹配。
例如,规则{规则名='区域分库规则'
通过{在产品区域库中获得数据}}
可以理解的,上述规定的与区域规则分库匹配只是一种示例,在其他一些实施例中可以包括更多的实现方式。
可以理解的,在进行区域分库规则匹配的过程中,需要获取具体区域库信息。区域规则匹配模块203b根据获取的产品信息以及地理区域信息向产品管理库301发送获取产品对应的具体的区域库信息请求,请求中可以包括获取该保险产品对应的产品区域库的名称、代号或者路径地址等信息。
例如,区域规则匹配模块203b向产品管理库301发送获取城市医疗保险产品的代号为01,可投保城市安阳市标识为AY,在产品管理库301中该产品具体所对应的产品区域库名称、代号或者路径地址。
S305:产品管理库301是否能匹配到区域库信息。若是,进行步骤314;若否,进行步骤306。
在一些实施例中,产品管理库301根据请求中获取的产品信息以及地理区域信息,在库中进行搜索,查看数据库中是否有产品以及地理区域信息对应的区域库信息。若是,进行步骤314,获取产品对应的具体区域库信息;若否,进行步骤306,返回区域分库规则匹配失败消息。
例如,产品管理库301根据请求中获取的城市医疗保险产品代码01以及可投保城市安阳市AY,查看数据库中是否有保险产品代号01以及投保城市安阳市AY对应的区域库。若是,进行步骤314,获取产品对应的具体区域库名称、代号或者路径地址;若否,进行步骤306,返回区域分库匹配失败消息。
S306:产品管理库301向区域规则匹配模块203b发送不存在匹配的区域库信息的消息。
在一些实施例中,产品管理库301中没有对应的区域库信息,则向区域规则匹配模块203b发送不存在匹配的区域库信息的消息。
例如,产品管理库301没有在数据库中匹配到产品代号为01以及可投保城市安阳市AY对应的区域库名称、代号或者路径地址,向区域规则匹配模块203b发送不存在匹配的区域库信息的消息。
S307:区域规则匹配模块203b向组织架构拦截模块203c发送生成保单的请求。
在一些实施例中,区域规则匹配模块203b接收产品管理库301发送的不存在匹配的区域库信息的消息,确定匹配区域分库规则失败,则向组织架构拦截模块203c发送生成保单的请求。
例如,区域规则匹配模块203b接收产品管理库301发送的不存在匹配的区域库信息的消息,确定匹配区域分库规则失败,向组织架构拦截模块203c发送生成城市医疗保险保单的请求。
S308:组织架构拦截模块203c向租户规则匹配模块203d发送生成保单的请求,其中,请求中包括租户信息。
在一些实施例中,组织架构拦截模块203c获取区域规则匹配模块203b发送的生成保单的请求后,获取请求数据中的租户信息,将租户信息发送给租户规则匹配模块203d。其中,租户信息可以包括租户名称或者代号等,表征方式可以为数字、字母或者其他字符等,在此不做具体限制。租户名称和代号可以为保险产品对应的保险公司的名称或者代号等。
例如,组织架构拦截模块203c获取区域规则匹配模块203b发送的生成城市医疗保险保单的请求后,根据请求数据获取该城市医疗保险租户信息,并将医疗保险租户信息发送给租户规则匹配模块203d。其中,城市医疗保险产品租户库对应的租户名称可以为HMB租户。
S309:租户规则匹配模块203d获取生成保单的请求。
可以理解的,租户规则匹配模块203d获取组织架构拦截模块203c发送的生成保单的请求。
例如,租户规则匹配模块203d获取组织架构拦截模块203c发送的生成城市医疗保险保单的请求。
S310:租户规则匹配模块203d向租户库303发送在相应租户库中,获取执行生成保单所需数据的请求。
可以理解的,在一些实施例中,租户规则匹配模块203d可以为通过特定领域语言,即共识的语言来规定与租户分库规则匹配。
例如,规则{规则名='租户分库规则'
通过{在租户库中获得数据}}
可以理解的,上述规定的与租户分库规则只是一种示例,在其他一些实施例中可以包括更多的实现方式。
可以理解的,租户规则匹配模块203d根据请求中的租户信息,向租户库303发送在相应租户库中,获取执行生成保单所需数据的请求。
例如,租户规则匹配模块203d根据请求中的城市医疗保险租户信息,向租户库303发送在HMB租户库中,获取执行生成城市医疗保险保单所需数据的请求。
S311:租户库303获取执行生成保单所需的数据。
在一些实施例中,租户库303根据获取的租户信息,在对应租户库中搜索执行生成保单所需的数据。可以理解的,执行生成保单所需的数据可以包括保单上基本要素内容以及执行生成保单的逻辑数据。
例如,租户库303根据租户信息,在HMB租户库中搜索执行生成城市医疗保险保单所需的数据。
S312:租户库303向租户规则匹配模块203d发送执行生成保单所需的数据。
在一些实施例中,租户库303在相应的租户库中搜索到执行生成保单所需的数据后,向租户规则匹配模块203d发送获取的数据。
例如,租户库303在HMB租户库中搜索到执行生成城市医疗保险保单所需的数据后,向租户规则匹配模块203d发送获取的数据。
S313:租户规则匹配模块203d确定匹配租户分库规则成功。
在一些实施例中,租户规则匹配模块203d获取到数据后,确定匹配租户分库规则成功。
S314:产品管理库301获取产品对应的具体区域库信息。
在一些实施例中,产品管理库301根据产品信息以及地理区域信息在数据库中搜索到对应的区域库信息。可以理解的,对应的区域库信息可以包括与保险产品以及地理区域信息对应的产品区域库的名称、代号或者路径地址等,具体表征方式可以为数字和字母等,在此不做具体限制。
例如,产品管理库301在数据库中搜索城市医疗产品代号为01,可投保城市安阳市标识为AY,在产品管理库301中所对应的产品区域库名称为安阳库。
S315:产品管理库301向区域规则匹配模块203b发送产品对应的具体区域库信息。
例如,产品管理库301向区域规则匹配模块203b发送城市医疗保险产品对应可获取生成保单数据的区域库为安阳库。
S316:区域规则匹配模块203b向产品区域库302发送在相应产品区域库中,获取产品配置规则,并且根据产品配置规则获取执行生成保单所需数据的请求。
在一些实施例中,区域规则匹配模块203b获取保险产品对应的区域库信息后,向产品区域库302发送在相应产品区域库中,获取产品配置规则,并且根据产品配置规则获取执行生成保单所需数据的请求。其中,一个产品区域库中可以包括多个不同保险公司对应的产品配置规则;具体地,一个保险公司规定的多个产品配置规则或者一个保险公司规定的一个产品配置规则或者多个保险公司规定的一个产品配置规则等,具体情况不做限制。
例如,区域规则匹配模块203b获取城市医疗保险产品对应的产品区域库为安阳库后,通过区域库连接字符串,向产品区域库302发送,在安阳库中,获取城市医疗保险产品配置规则并且根据产品配置规则获取执行生成城市医疗保险保单所需数据的请求。
S317:产品区域库302获取产品配置规则,并且根据产品配置规则获取执行生成保单所需的数据。
在一些实施例中,产品区域库302根据请求,在相应的区域库中进行搜索,获取产品配置规则,并且根据产品配置规则获取执行生成保单所需的数据。
例如,产品区域库302根据请求中的区域库连接字符串,在安阳库中进行搜索,获取城市医疗保险产品配置规则,并且根据产品配置规则获取生成城市医疗保险保单所需的数据。
S318:产品区域库302向区域规则匹配模块203b发送获取的产品配置规则,以及与产品配置规则对应的执行生成保单所需的数据。
在一些实施例中,产品区域库302在获取到产品配置规则,以及根据产品配置规则对应的执行生成保单所需的数据,向区域规则匹配模块203b发送获取的产品配置规则,以及与产品配置规则对应的执行生成保单所需的数据。
例如,产品区域库302在获取城市医疗保险产品配置规则,以及根据产品配置规则对应的生成城市医疗保险保单所需的数据后,向区域规则匹配模块203b发送获取的城市医疗保险产品配置规则,以及与产品配置规则对应的生成城市医疗保险保单所需的数据。
S319:区域规则匹配模块203b确定区域分库规则匹配成功。
在一些实施例中,区域规则匹配模块203b获取到数据后,确定区域分库规则匹配成功。
例如,区域规则匹配模块203b获取到与生成城市医疗保险保单的相关数据后,确定区域分库规则匹配成功。
可以理解,上述步骤S301至步骤S319的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
可以理解的,上述执行的保险业务处理生成保单之外,还可以为审核保险单据的业务、查询保险业务状态、在线理赔、退保等保险业务,具体处理的保险业务在此不做要求。
根据上述图1所示场景,图4示出了以服务器200b为执行主体,执行本申请实施例中多租户的数据分库方法的流程图。具体流程包括以下各个步骤:
S401:获取执行相关保险业务的请求。
在一些实施例中,用户终端100向服务器200a发送执行相关保险业务的请求;服务器200a在接收到用户终端100发送的请求之后,将请求数据进行加密,将加密后的请求发送给服务器200b;服务器200b获取执行相关保险业务的请求。可以理解的,执行相关保险业务可以包括生成保险保单、计算保费、查询当前保险业务状态、审核保险单据的业务、退保以及在线理赔等。
例如,用户终端100向服务器200a发送生成城市医疗保险保单的请求;服务器200a在接收到用户通过用户终端100发送的请求之后,将请求数据进行加密,将加密后的请求发送给服务器200b;服务器200b获取执行生成城市医疗保险保单的请求。
可以理解的,在一些实现方式中,如图2A所示的装置图中,数据接收模块201获取服务器200a发送的执行相关保险业务的请求。数据转发模块202将请求中的数据进行过滤。
S402:根据请求数据中的产品信息以及地理区域信息,判断是否与区域分库规则匹配成功。若判断结果为是,则进入步骤S404;若判断结果为否,则进入步骤S403。
在一些实施例中,服务器200b获取执行相关保险业务的请求后,获取请求数据中的产品信息以及地理区域信息数据,根据保险产品信息以及具体地理区域信息在数据库300中匹配,是否存在包含了该具体位置区域所对应的产品区域库,若存在对应的产品区域库,则在相应的产品区域库中搜索到产品配置规则,并且根据产品配置规则获取执行生成保单所需的数据,确定与区域分库规则匹配成功,进入步骤S404;若不存在该具体位置区域所对应的区域库,则确定与区域分库规则匹配失败,进入步骤S403。
例如,服务器200b获取执行生成城市医疗保险保单的请求后,获取请求数据中的城市医疗保险产品信息以及可投保城市信息数据,根据保险产品信息以及可投保城市在数据库300中查找,是否存在包含与产品以及可投保城市所对应的区域库,若存在对应的区域库,则在相应的区域库中搜索到城市医疗保险产品配置规则,并且根据城市医疗保险产品配置规则获取执行生成保单所需的数据,确定与区域分库规则匹配成功;若不存在与产品以及可投保城市所对应的区域库,则确定与区域分库规则匹配失败。
可以理解的,在一些实现方式中,如图2A和2B所示的模块图中,数据转发模块202将获取的请求数据进行过滤,发送给拦截匹配模块203,拦截匹配模块203中的区域规则匹配模块203b根据请求数据中的产品信息以及地理区域信息,判断与区域分库规则匹配是否成功。若判断结果为是,则进入步骤S404;若判断结果为否,则进入步骤S403。
S403:根据请求数据中的租户信息与租户分库规则进行匹配。
在一些实施例中,服务器200b根据请求数据中的产品信息以及地理区域信息,判断与区域分库规则匹配失败后,根据请求数据中的租户信息与租户分库规则进行匹配,即根据请求数据中的租户信息在各租户库中进行搜索匹配,获得执行相关保险业务所需的数据。
例如,服务器200b根据请求数据中的城市医疗保险产品信息以及可投保城市,判断与区域分库规则匹配失败后,根据请求数据中的医疗保险租户信息与租户分库规则进行匹配,即根据请求数据中的租户信息在各租户库中进行匹配搜索,获得执行城市医疗保险保单所需的数据以及执行业务的逻辑数据。
可以理解的,在一些实现方式中,如图2B所示的结构图中,拦截匹配模块203中的组织架构拦截模块203c获取请求数据中的租户信息,租户规则匹配模块203b根据租户信息,与租户分库规则匹配。
S404:基于匹配成功的分库规则,执行保险业务逻辑。
在一些实施例中,若匹配成功的分库规则为区域分库规则,则根据区域分库规则获得的执行保险业务所需的数据,执行保险业务逻辑;若匹配成功的分库规则为租户分库规则,则根据租户分库规则获得的执行保险业务所需的数据,执行保险业务逻辑。其中,执行保险业务所需的数据,包括,保单上的基本要素内容数据、执行生成保单、执行查询保险业务状态或者执行审核保险单据的逻辑数据中的至少一种数据。
例如,若匹配成功的分库规则为区域分库规则,则根据区域分库规则获得的生成城市医疗保险保单所需的数据,执行生成保单的业务逻辑;若匹配成功的分库规则为租户分库规则,则根据租户分库规则获得的生成城市医疗保险保单所需的数据,执行生成保单的业务逻辑。
可以理解的,在一些实现方式中,如图2A所示的结构图中,执行业务逻辑模块204执行保险业务逻辑。
可以理解,上述步骤S401至步骤S404的执行顺序只是一种示例,在另一些实施例中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
为便于理解本申请各实施的技术方案,下面对服务器200b的硬件结构进行介绍。
进一步,图5根据本申请的一些实施例,示出了一种服务器200b的结构示意图。如图5所示,用于执行本申请提供的如图4所示的多租户的数据分库方法的服务器200b可以包括一个或多个处理器201、系统内存202、非易失性存储器(Non-Volatile Memory,NVM)203、输入/输出(I/O)设备204、通信接口205以及用于耦接处理器201、系统内存202、非易失性存储器203、通信接口204和输入/输出(I/O)设备205的系统控制逻辑206。
其中:处理器201可以包括一个或多个单核或多核处理器。在一些实施例中,处理器201可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在一些实施例中,处理器201可以用于执行根据请求数据中的产品信息以及地理区域信息与区域分库规则匹配,若匹配失败后,再根据请求数据中的租户信息与租户分库规则匹配,通过分库规则匹配的结果执行保险业务逻辑。
系统内存202是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存202可以用于存储上述用于实现多租户的数据分库方法的可执行程序。
非易失性存储器203可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器203可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器203也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。
特别地,系统内存202和非易失性存储器203可以分别包括:指令207的临时副本和永久副本。指令207可以包括:由处理器201中的至少一个执行时使服务器200实现本申请各实施例提供的多租户的数据分库方法的程序指令。
输入/输出(I/O)设备204可以包括用户界面,使得用户能够与服务器200b进行交互。例如,在一些实施例中,输入/输出(I/O)设备204可以包括显示器等输出设备,用于显示服务器200b中使用到的软件系统,还可以包括键盘、鼠标、触摸屏等输入设备。服务器200b的维护人员可以通过用户界面以及键盘、鼠标、触摸屏等输入设备与服务器200b进行交互。
通信接口205可以包括收发器,用于为服务器200b提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口205可以集成于服务器200b的其他组件,例如通信接口205可以集成于处理器201中。在一些实施例中,服务器200b可以通过通信接口205和其他设备通信。
系统控制逻辑206可以包括任意合适的接口控制器,以服务器200b的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑206可以包括一个或多个存储器控制器,以提供连接到系统内存202和非易失性存储器203的接口。
在一些实施例中,处理器201中的至少一个可以与用于系统控制逻辑206的一个或多个控制器的逻辑封装在一起,以形成系统封装(System in Package,SiP)。在另一些实施例中,处理器201中的至少一个还可以与用于系统控制逻辑206的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统(System-on-Chip,SoC)。
可以理解,服务器200b可以是能够执行本申请提供的多租户的数据分库方法的任意一种电子设备,包括但不限于计算机、服务器、平板电脑、手持计算机等,本申请实施例不做限定。
可以理解,本申请实施例示出的服务器200b的结构并不构成对服务器200b的具体限定。在本申请另一些实施例中,服务器200b可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (15)
1.一种多租户的数据分库方法,用于包括服务器和作为数据库的存储设备的系统,其中,所述服务器中配置有拦截匹配模块,所述拦截匹配模块包括数据拦截模块、区域规则匹配模块、组织架构拦截模块、租户规则匹配模块,其特征在于,所述方法包括:
所述数据拦截模块获取执行保险业务的请求;
所述区域规则匹配模块基于所述数据拦截模块传递的所述请求中的产品信息以及地理区域信息,将所述请求与所述数据库中的产品管理库的区域库信息匹配,其中,产品对应所述数据库中的多个产品区域库,所述产品区域库包括与保险业务实施者对应的产品配置规则;
在匹配到所述区域库信息的情况下,所述区域规则匹配模块在所述产品区域库中获取所述产品配置规则,并且根据所述产品配置规则获取执行保险业务所需的数据;
在未匹配到所述区域库信息的情况下,所述组织架构拦截模块获取所述请求中的租户信息;并且所述租户规则匹配模块,基于所述组织架构拦截模块传递的所述租户信息在所述数据库中的租户库中获取执行保险业务所需的数据。
2.根据权利要求1所述的方法,其特征在于,所述数据库中的产品管理库可以为轻量目录访问协议,其中,所述轻量目录访问协议包括与所述数据库中的产品区域库对应的产品信息、地理区域信息以及各产品区域库的名称、代号或者路径地址。
3.根据权利要求2所述的方法,其特征在于,其中,将所述请求与所述数据库中的产品管理库的区域库信息匹配,包括,
基于所述产品信息以及所述地理区域信息在产品管理库中搜索,是否找到与所述产品信息以及地理区域信息对应的具体产品区域库名称、代号或者路径地址。
4.根据权利要求1或3所述的方法,其特征在于,所述区域规则匹配模块在所述数据库中的产品区域库中获取所述产品配置规则,并且根据所述产品配置规则获取执行保险业务所需的数据,包括,
所述区域规则匹配模块通过区域库连接字符串,在所述数据库中的产品区域库对应的具体区域库中获取所述产品配置规则,并且根据所述产品配置规则获取执行保险业务所需的数据。
5.根据权利要求1所述的方法,其特征在于,所述产品区域库包括与保险业务实施者对应的产品配置规则为,
所述产品区域库包括一个所述保险业务实施者规定的产品配置规则或者多个所述保险业务实施者规定的多个产品配置规则。
6.根据权利要求1所述的方法,其特征在于,所述产品信息包括,产品名称或者产品代号。
7.根据权利要求6所述的方法,其特征在于,所述地理区域信息包括,所述产品被划分的所属的行政区域或者根据自定义划分所属的自定义区域。
8.根据权利要求7所述的方法,其特征在于,所述区域库信息包括,产品区域库名称、代号或者路径地址。
9.根据权利要求7或8所述的方法,其特征在于,所述执行保险业务所需的数据,包括,
保单上的基本要素内容数据、执行生成保单、执行查询保险业务状态或者执行审核保险单据的逻辑数据中的至少一种数据。
10.根据权利要求1所述的方法,其特征在于,所述数据库,包括,
所述产品管理库,所述产品区域库和所述租户库。
11.一种多租户的数据分库装置,其特征在于,包括,
数据接收模块,用于接收数据;
数据转发模块,用于转发数据;
拦截匹配模块,用于拦截数据,并将拦截到的数据与区域分库规则或者租户分库规则进行匹配;
执行业务逻辑模块,用于执行业务逻辑;
并且,所述拦截匹配模块,包括,
数据拦截模块,用于获取第一数据,其中,所述第一数据包括产品信息以及地理区域信息;
区域规则匹配模块,用于根据所述产品信息以及地理区域信息与区域分库规则匹配;
组织架构拦截模块,用于获取第二数据,其中,所述第二数据包括租户信息;
租户规则匹配模块,用于根据所述租户信息与租户分库规则匹配。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令在电子设备上执行时使所述电子设备执行权利要求1-10中任一项所述的多租户的数据分库方法。
13.一种芯片装置,其特征在于,所述芯片装置包括:
通信接口,用于输入和/或输出信息;
处理器,用于执行计算机可执行程序,使得安装有所述芯片装置的电子设备执行如权利要求1-10中任一项所述的多租户的数据分库方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,当所述指令被执行时实现如权利要求1-10中任一项所述的多租户的数据分库方法。
15.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及
处理器,当所述指令被所述电子设备的一个或多个处理器执行时,所述处理器用于执行所述存储器中存储的指令,以实现权利要求1-10中任一项所述的多租户的数据分库方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210637186.6A CN115080537B (zh) | 2022-06-07 | 2022-06-07 | 多租户的数据分库方法、装置、存储介质、芯片装置及电子设备 |
PCT/CN2023/095171 WO2023236756A1 (zh) | 2022-06-07 | 2023-05-19 | 多租户的数据分库方法、程序产品及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210637186.6A CN115080537B (zh) | 2022-06-07 | 2022-06-07 | 多租户的数据分库方法、装置、存储介质、芯片装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115080537A true CN115080537A (zh) | 2022-09-20 |
CN115080537B CN115080537B (zh) | 2023-11-10 |
Family
ID=83252286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210637186.6A Active CN115080537B (zh) | 2022-06-07 | 2022-06-07 | 多租户的数据分库方法、装置、存储介质、芯片装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115080537B (zh) |
WO (1) | WO2023236756A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401231A (zh) * | 2023-03-20 | 2023-07-07 | 一临云(深圳)科技有限公司 | 数据源管理方法、设备及存储介质 |
WO2023236756A1 (zh) * | 2022-06-07 | 2023-12-14 | 易保网络技术(上海)有限公司 | 多租户的数据分库方法、程序产品及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423524B1 (en) * | 2008-09-12 | 2013-04-16 | Salesforce.Com, Inc. | System, method and computer program product for storing reports for use by tenants of a multi-tenant on-demand database service |
CN112905708A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 基于SaaS系统的数据库操作方法及系统 |
CN113239047A (zh) * | 2021-05-24 | 2021-08-10 | 中国建设银行股份有限公司 | 一种分库配置方法、业务处理方法、装置及设备 |
CN113342775A (zh) * | 2020-03-03 | 2021-09-03 | Sap欧洲公司 | 基于云的计算环境中的集中式多租户即服务 |
CN114547043A (zh) * | 2022-02-28 | 2022-05-27 | 山东浪潮通软信息科技有限公司 | 多租户场景下的应用系统分库分表方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10476942B2 (en) * | 2016-12-21 | 2019-11-12 | International Business Machines Corporation | DNS resolution of overlapping domains in a multi-tenant computing environment |
CN112367408B (zh) * | 2021-01-13 | 2021-08-03 | 树根互联技术有限公司 | 一种物联网多租户数据的管理系统及方法 |
CN112860451A (zh) * | 2021-01-21 | 2021-05-28 | 中国建设银行股份有限公司 | 一种基于SaaS的多租户数据处理方法和装置 |
CN115080537B (zh) * | 2022-06-07 | 2023-11-10 | 易保网络技术(上海)有限公司 | 多租户的数据分库方法、装置、存储介质、芯片装置及电子设备 |
-
2022
- 2022-06-07 CN CN202210637186.6A patent/CN115080537B/zh active Active
-
2023
- 2023-05-19 WO PCT/CN2023/095171 patent/WO2023236756A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423524B1 (en) * | 2008-09-12 | 2013-04-16 | Salesforce.Com, Inc. | System, method and computer program product for storing reports for use by tenants of a multi-tenant on-demand database service |
CN113342775A (zh) * | 2020-03-03 | 2021-09-03 | Sap欧洲公司 | 基于云的计算环境中的集中式多租户即服务 |
CN112905708A (zh) * | 2021-03-31 | 2021-06-04 | 浙江太美医疗科技股份有限公司 | 基于SaaS系统的数据库操作方法及系统 |
CN113239047A (zh) * | 2021-05-24 | 2021-08-10 | 中国建设银行股份有限公司 | 一种分库配置方法、业务处理方法、装置及设备 |
CN114547043A (zh) * | 2022-02-28 | 2022-05-27 | 山东浪潮通软信息科技有限公司 | 多租户场景下的应用系统分库分表方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023236756A1 (zh) * | 2022-06-07 | 2023-12-14 | 易保网络技术(上海)有限公司 | 多租户的数据分库方法、程序产品及电子设备 |
CN116401231A (zh) * | 2023-03-20 | 2023-07-07 | 一临云(深圳)科技有限公司 | 数据源管理方法、设备及存储介质 |
CN116401231B (zh) * | 2023-03-20 | 2024-04-26 | 一临云(深圳)科技有限公司 | 数据源管理方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023236756A1 (zh) | 2023-12-14 |
CN115080537B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240045877A1 (en) | Facilitating queries of encrypted sensitive data via encrypted variant data objects | |
US11055442B2 (en) | Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system | |
EP3591510B1 (en) | Method and device for writing service data in block chain system | |
US8539597B2 (en) | Securing sensitive data for cloud computing | |
US11328083B2 (en) | Facilitating entity resolution via secure entity resolution database | |
CN115080537B (zh) | 多租户的数据分库方法、装置、存储介质、芯片装置及电子设备 | |
US11388148B2 (en) | System and method of anonymous sending of data from a user device to a recipient device | |
US10579960B2 (en) | Information operation | |
CN114490656A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN111737764B (zh) | 生成描述信息的方法及装置 | |
CN112765169A (zh) | 数据处理方法、装置、设备及存储介质 | |
JP7274198B2 (ja) | 資産情報登録方法 | |
CN114331745B (zh) | 数据处理方法、系统、可读存储介质和电子设备 | |
CN112685572B (zh) | 一种异构数据融合方法及装置 | |
CN111552703B (zh) | 一种数据处理方法及装置 | |
CN113934729A (zh) | 一种基于知识图谱的数据管理方法、相关设备及介质 | |
CN116472694A (zh) | 生成、保护和维护表情符号序列数字令牌的系统及方法 | |
CN115017185A (zh) | 一种数据处理方法、装置及存储介质 | |
EP3872668A1 (en) | System and method of anonymous sending of data from a user device to a recipient device | |
CN115022242B (zh) | 网络层识别方法、装置、计算机设备和存储介质 | |
US11836111B2 (en) | Systems and methods for data tracing | |
US20240127332A1 (en) | Secure Decentralized System and Method | |
JP2010122756A (ja) | Edi統合処理システム、edi統合処理方法、およびedi統合処理プログラム | |
CN115705435A (zh) | 云服务的数据处理的方法、装置、设备及介质 | |
WO2022238948A1 (en) | Method and system for transforming personally identifiable information |
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 |