本申請(qǐng)涉及電數(shù)字?jǐn)?shù)據(jù)處理,尤其涉及一種基于shardingsphere智能分庫(kù)分表方法,還涉及一種系統(tǒng)、裝置以及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、醫(yī)療業(yè)務(wù)系統(tǒng)數(shù)據(jù)量如果太龐大的時(shí)候,需要對(duì)數(shù)據(jù)庫(kù)根據(jù)業(yè)務(wù)量進(jìn)行分庫(kù)分表。例如,使用shardingshpere進(jìn)行分庫(kù)分表?,F(xiàn)有的方案都是手動(dòng)指定每張表如何分庫(kù)分表,配置起來(lái)比較復(fù)雜,而且不能根據(jù)業(yè)務(wù)正常動(dòng)態(tài)調(diào)整分庫(kù)分表配置。
2、基于此,不用手動(dòng)為每張表進(jìn)行配置分庫(kù)分表規(guī)則,如果新增業(yè)務(wù)表也能自動(dòng)生成分庫(kù)分表規(guī)則進(jìn)行自動(dòng)分配,就顯得尤為重要
技術(shù)實(shí)現(xiàn)思路
1、發(fā)明人通過(guò)研究發(fā)現(xiàn):傳統(tǒng)分庫(kù)分表配置缺點(diǎn)是配置只能手工維護(hù)容易出錯(cuò),分庫(kù)分表配置一旦維護(hù)錯(cuò)就會(huì)造成系統(tǒng)崩潰;同時(shí)系統(tǒng)升級(jí)時(shí)分庫(kù)分表就不在使用,一定需要手動(dòng)更新配置文件,否則系統(tǒng)會(huì)崩潰。
2、本申請(qǐng)的目的在于提供一種基于shardingsphere智能分庫(kù)分表方法,通過(guò)根據(jù)業(yè)務(wù)動(dòng)態(tài)配置規(guī)則生成規(guī)則,來(lái)解決現(xiàn)有技術(shù)無(wú)法提供一種可以實(shí)現(xiàn)自動(dòng)配置分庫(kù)分表規(guī)則,執(zhí)行自動(dòng)分配的方法的技術(shù)問(wèn)題。
3、據(jù)本申請(qǐng)的一個(gè)方面,提供一種基于shardingsphere智能分庫(kù)分表方法,該方法由處理器執(zhí)行,包括:
4、響應(yīng)遠(yuǎn)端業(yè)務(wù)訪問(wèn),執(zhí)行業(yè)務(wù)邏輯激活;
5、響應(yīng)反射和mybatis的框架系統(tǒng),獲取待訪問(wèn)的對(duì)象集合;
6、對(duì)待訪問(wèn)的對(duì)象集合,基于動(dòng)態(tài)配置規(guī)則,生成shardingsphere分庫(kù)分表配置;
7、響應(yīng)業(yè)務(wù)邏輯訪問(wèn),基于動(dòng)態(tài)獲取規(guī)則,shardingsphere對(duì)sql執(zhí)行路由至不同目標(biāo)對(duì)象內(nèi)。
8、在一些實(shí)施例中,所述待訪問(wèn)的對(duì)象集合至少為表的schema信息。
9、在一些實(shí)施例中,所述動(dòng)態(tài)配置規(guī)則至少為:
10、基于租戶以及科室字段,若同時(shí)存在租戶和科室字段,則數(shù)據(jù)庫(kù)的表按照租戶,執(zhí)行哈希算法后,取余分散到不同數(shù)據(jù)中,并且按照科室,執(zhí)行哈希算法后,取余分散到不同表中;
11、若只存在租戶,則只進(jìn)行按照租戶,執(zhí)行哈希算法后,取余分庫(kù),將數(shù)據(jù)按照租戶字段,執(zhí)行哈希算法后,取余分散到不同數(shù)據(jù)庫(kù)中;
12、若都沒(méi)有,則建立成字典表,所有數(shù)據(jù)都有相同數(shù)據(jù)。
13、據(jù)本申請(qǐng)的另一個(gè)方面,提供一種基于shardingsphere智能分庫(kù)分表系統(tǒng),包括:
14、業(yè)務(wù)訪問(wèn)模塊,所述業(yè)務(wù)訪問(wèn)模塊用于響應(yīng)遠(yuǎn)端業(yè)務(wù)訪問(wèn),執(zhí)行業(yè)務(wù)邏輯激活;
15、獲取模塊,所述獲取模塊用于響應(yīng)反射和mybatis的框架系統(tǒng),獲取待訪問(wèn)的對(duì)象集合;
16、生成模塊,所述生成模塊用于對(duì)待訪問(wèn)的對(duì)象集合,基于動(dòng)態(tài)配置規(guī)則,生成shardingsphere分庫(kù)分表配置;
17、執(zhí)行模塊,所述執(zhí)行模塊用于響應(yīng)業(yè)務(wù)邏輯訪問(wèn),基于動(dòng)態(tài)獲取規(guī)則,shardingsphere對(duì)sql執(zhí)行路由至不同目標(biāo)對(duì)象內(nèi)。
18、據(jù)本申請(qǐng)的再一個(gè)方面,提供一種基于shardingsphere智能分庫(kù)分表裝置,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如前所述方法。
19、據(jù)本申請(qǐng)的又一個(gè)方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如前所述方法。
20、本申請(qǐng)與現(xiàn)有技術(shù)相比,具有如下的優(yōu)點(diǎn)和有益效果:
21、本申請(qǐng)的方法可以區(qū)別現(xiàn)有技術(shù)的手工作業(yè),實(shí)現(xiàn)根據(jù)業(yè)務(wù)動(dòng)態(tài)配置規(guī)則生成規(guī)則,最大程度降低出錯(cuò)概率;同時(shí)本申請(qǐng)的方法在醫(yī)療業(yè)務(wù)發(fā)展時(shí),可以自動(dòng)生成分庫(kù)分表規(guī)則進(jìn)行自動(dòng)分配,不用擔(dān)心需要添加新的規(guī)則會(huì)造成系統(tǒng)崩潰,同時(shí)也便于系統(tǒng)后期升級(jí)。
1.一種基于shardingsphere智能分庫(kù)分表方法,該方法由處理器執(zhí)行,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述待訪問(wèn)的對(duì)象集合至少為表的schema信息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述動(dòng)態(tài)配置規(guī)則至少為:
4.一種基于shardingsphere智能分庫(kù)分表系統(tǒng),其特征在于,包括
5.一種基于shardingsphere智能分庫(kù)分表裝置,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如權(quán)利要求1所述方法。
6.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1所述方法。