System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機軟件,特別是涉及一種多數據源數據查詢方法、裝置、計算機設備和存儲介質。
技術介紹
1、隨著計算機軟件技術的發展,出現了數據查詢技術,傳統的數據查詢方法大多是為特定數據源的應用定制的,缺乏通用性,不能方便地適應不同數據源和查詢需求的變化。
2、傳統技術中,每當需要對新的數據源進行查詢時,往往需要重新開發或大幅修改現有代碼,因為傳統數據查詢方法中,查詢邏輯往往嵌入在代碼中,缺乏標準化和配置化管理,不同開發人員實現的查詢邏輯可能存在較大差異,難以保證查詢操作的一致性和可重復性,從而導致開發效率低下,維護成本高。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種能夠提高數據查詢的靈活性和擴展性的多數據源數據查詢方法、裝置、計算機設備和存儲介質。
2、第一方面,提供一種多數據源數據查詢方法,該方法包括:
3、獲取數據查詢任務,數據查詢任務包括視圖標識;
4、根據視圖標識從預先配置多個視圖配置表中篩選目標視圖配置表,目標視圖配置表中包括查詢配置信息,查詢配置信息包括多個數據源標識;
5、獲取多數據源配置信息;其中,多數據源配置信息包括多個數據源之間的連接信息以及各數據源的查詢規則和執行邏輯;
6、根據多個數據源標識以及數據源配置信息對數據查詢任務進行拆分,生成多個分別適配不同數據源的子查詢任務;
7、將各子查詢任務分別分配至各數據源進行數據查詢。
8、在一些實施例中,查詢配
9、在一些實施例中,查詢配置信息還包括引擎配置信息;將各子查詢任務分別分配至各數據源進行數據查詢,包括:
10、根據引擎配置信息確定各子查詢任務對應的執行引擎;
11、根據各執行引擎的語法規則將各子查詢任務拆分為分別適配不同執行引擎的多個查詢語句片段;
12、將各查詢語句片段分別分配至對應的數據源中對應的執行引擎進行數據查詢。
13、在一些實施例中,根據各執行引擎的語法規則將各子查詢任務拆分為分別適配不同執行引擎的多個查詢語句片段,包括:
14、根據各子查詢任務的查詢語言生成ast樹;
15、利用rbo優化算法對ast樹進行規則優化;
16、根據各執行引擎的語法規則以及優化后的ast樹將各子查詢任務的查詢語言拆分為分別適配不同執行引擎的多個基于sql查詢語言的查詢語句片段。
17、在一些實施例中,查詢配置信息還包括多次查詢標識,該方法還包括:
18、響應于接收到各子查詢任務對應的查詢結果,根據多次查詢標識確定需要進行多次查詢的子查詢任務,對需要進行多次查詢的子查詢任務啟用多次查詢進程。
19、在一些實施例中,查詢配置信息還包括緩存過期信息,該方法還包括:
20、接收各子查詢任務對應的查詢結果,并將各查詢結果與各自對應的數據源的緩存鍵進行綁定,并存入緩存中;
21、響應于底層數據源更新指令,根據緩存過期信息以及緩存鍵刪除已過期的查詢結果。
22、在一些實施例中,該方法還包括:
23、接收各子查詢任務對應的查詢結果,通過bff層根據數據查詢任務的請求端的響應規則對各查詢結果進行整合,并將整合后的完整查詢結果返回請求端。
24、第二方面,還提供一種多數據源數據查詢裝置,該裝置包括:
25、任務接收模塊,用于獲取數據查詢任務,數據查詢任務包括視圖標識;
26、視圖配置確定模塊,用于根據視圖標識從預先配置多個視圖配置表中篩選目標視圖配置表,目標視圖配置表中包括查詢配置信息,查詢配置信息包括多個數據源標識;
27、數據源配置獲取模塊,用于獲取多數據源配置信息;其中,多數據源配置信息包括多個數據源之間的連接信息以及各數據源的查詢規則和執行邏輯;
28、任務拆分模塊,用于根據多個數據源標識以及數據源配置信息對數據查詢任務進行拆分,生成多個分別適配不同數據源的子查詢任務;
29、數據查詢模塊,用于將各子查詢任務分別分配至各數據源進行數據查詢。
30、一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,處理器執行計算機程序時實現第一方面的多數據源數據查詢方法的步驟。
31、一種計算機可讀存儲介質,其上存儲有計算機程序,計算機程序被處理器執行時實現第一方面的多數據源數據查詢方法的步驟。
32、上述多數據源數據查詢方法、裝置、計算機設備和存儲介質,通過數據查詢任務中攜帶的視圖標識確定對應的目標視圖配置表以得到數據源標識,獲取預先配置的多數據源配置信息,根據數據源標識以及多數據源配置信息對數據查詢任務按照數據源維度進行拆分并生成適配不同數據源的子查詢任務,并將子查詢任務分配至各自對應的數據源進行數據查詢。本方案,由于數據源標識以及數據源配置信息可配置,且能夠根據數據源維度進行任務拆分和執行轉換,因此,能夠靈活擴展不同的數據源,從而提高數據查詢系統的靈活性和擴展性。
本文檔來自技高網...【技術保護點】
1.一種多數據源數據查詢方法,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述查詢配置信息還包括配置表名稱、入參配置表、入參規則校驗表、出參配置表、緩存過期信息以及SQL模版之中的至少一個。
3.根據權利要求1所述的方法,其特征在于,所述查詢配置信息還包括引擎配置信息;所述將各所述子查詢任務分別分配至各所述數據源進行數據查詢,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據各所述執行引擎的語法規則將各所述子查詢任務拆分為分別適配不同執行引擎的多個查詢語句片段,包括:
5.根據權利要求1所述的方法,其特征在于,所述查詢配置信息還包括多次查詢標識,所述方法還包括:
6.根據權利要求1所述的方法,其特征在于,所述查詢配置信息還包括緩存過期信息,所述方法還包括:
7.根據權利要求1至6任一項所述的方法,其特征在于,所述方法還包括:
8.一種多數據源數據查詢裝置,其特征在于,所述裝置包括:
9.一種計算機設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至7中任一項所述的方法的步驟。
...【技術特征摘要】
1.一種多數據源數據查詢方法,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述查詢配置信息還包括配置表名稱、入參配置表、入參規則校驗表、出參配置表、緩存過期信息以及sql模版之中的至少一個。
3.根據權利要求1所述的方法,其特征在于,所述查詢配置信息還包括引擎配置信息;所述將各所述子查詢任務分別分配至各所述數據源進行數據查詢,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據各所述執行引擎的語法規則將各所述子查詢任務拆分為分別適配不同執行引擎的多個查詢語句片段,包括:
5.根據權利要求1所述的方法,其特征在于,所述查詢配置信息還包括多次查詢...
【專利技術屬性】
技術研發人員:王永貴,
申請(專利權)人:北京白龍馬云行科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。