本技術(shù)涉及數(shù)據(jù)庫(kù),具體涉及一種數(shù)據(jù)處理方法以及數(shù)據(jù)庫(kù)系統(tǒng)。
背景技術(shù):
1、分布式數(shù)據(jù)庫(kù)是用計(jì)算機(jī)網(wǎng)絡(luò)將物理上分散的多個(gè)數(shù)據(jù)庫(kù)單元連接起來組成的一個(gè)邏輯上統(tǒng)一的數(shù)據(jù)庫(kù)。每個(gè)被連接起來的數(shù)據(jù)庫(kù)單元稱為站點(diǎn)或節(jié)點(diǎn)。
2、分布式數(shù)據(jù)庫(kù)系統(tǒng)中,子查詢的基表和父查詢的基表分布在多個(gè)數(shù)據(jù)節(jié)點(diǎn)dn上,已有技術(shù)中,對(duì)于子查詢,執(zhí)行時(shí)掃描全部基表數(shù)據(jù),傳遞給上層算子,并進(jìn)行謂詞條件過濾,最后將子查詢和父查詢的結(jié)果返回給cn,cn將聚合結(jié)果返回給用戶。
3、異構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)通過編譯和優(yōu)化得到的查詢計(jì)劃往往并不互通,也就是說,數(shù)據(jù)庫(kù)系統(tǒng)生成的查詢計(jì)劃,對(duì)于異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)來說并不能準(zhǔn)確的解析,在異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)之間實(shí)現(xiàn)查詢計(jì)劃的共享和協(xié)作時(shí),例如,數(shù)據(jù)庫(kù)系統(tǒng)a通過分析(例如,從性能、成本等因素進(jìn)行分析)確定查詢計(jì)劃(部分或全部)在數(shù)據(jù)庫(kù)系統(tǒng)b中執(zhí)行是更優(yōu)的,數(shù)據(jù)庫(kù)系統(tǒng)a需要將相應(yīng)的信息傳遞至數(shù)據(jù)庫(kù)系統(tǒng)b,由于數(shù)據(jù)庫(kù)系統(tǒng)b不能解析數(shù)據(jù)庫(kù)系統(tǒng)a已經(jīng)得到的查詢計(jì)劃,已有技術(shù)中將原始的用戶查詢傳遞至數(shù)據(jù)庫(kù)系統(tǒng)b,數(shù)據(jù)庫(kù)系統(tǒng)b在接收到查詢后需要進(jìn)行重復(fù)的編譯和優(yōu)化,得到查詢計(jì)劃,這會(huì)導(dǎo)致計(jì)算資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)思路
1、第一方面,本技術(shù)提供了一種數(shù)據(jù)處理方法,應(yīng)用于融合數(shù)據(jù)庫(kù)系統(tǒng),融合數(shù)據(jù)庫(kù)系統(tǒng)包括第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng),第二數(shù)據(jù)庫(kù)系統(tǒng)和第一數(shù)據(jù)庫(kù)系統(tǒng)對(duì)查詢計(jì)劃的語言描述不同,方法包括:第一數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)用戶輸入的第一查詢,得到用于執(zhí)行第一查詢的第一查詢計(jì)劃,第一查詢計(jì)劃是通過第一數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第一查詢計(jì)劃,確定第二數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第一查詢計(jì)劃的情況下,第一數(shù)據(jù)庫(kù)系統(tǒng)將第一查詢計(jì)劃轉(zhuǎn)換為第一查詢計(jì)劃的中間表示ir,第一查詢計(jì)劃的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;第一數(shù)據(jù)庫(kù)系統(tǒng)將第一查詢計(jì)劃的ir發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng);第二數(shù)據(jù)庫(kù)系統(tǒng)將第一查詢計(jì)劃的ir轉(zhuǎn)換為第二查詢計(jì)劃,第二查詢計(jì)劃是通過第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;第二數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行第二查詢計(jì)劃,得到第一查詢結(jié)果。
2、異構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)(例如本技術(shù)實(shí)施例中的第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng))通過編譯和優(yōu)化得到的查詢計(jì)劃往往并不互通,也就是說,第一數(shù)據(jù)庫(kù)系統(tǒng)生成的查詢計(jì)劃,第二數(shù)據(jù)庫(kù)系統(tǒng)并不能準(zhǔn)確的解析(或者可以描述為不支持解析),在異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)之間實(shí)現(xiàn)查詢計(jì)劃的共享和協(xié)作時(shí),例如,第一數(shù)據(jù)庫(kù)系統(tǒng)通過分析(例如,從性能、成本等因素進(jìn)行分析)確定查詢計(jì)劃(部分或全部)在第二數(shù)據(jù)庫(kù)系統(tǒng)中執(zhí)行是更優(yōu)的(也就是更適合在第二數(shù)據(jù)庫(kù)系統(tǒng)中執(zhí)行),第一數(shù)據(jù)庫(kù)系統(tǒng)需要將相應(yīng)的信息傳遞至第二數(shù)據(jù)庫(kù)系統(tǒng),由于第二數(shù)據(jù)庫(kù)系統(tǒng)不能解析第一數(shù)據(jù)庫(kù)系統(tǒng)已經(jīng)得到的查詢計(jì)劃,已有技術(shù)中將原始的用戶查詢傳遞至第二數(shù)據(jù)庫(kù)系統(tǒng),第二數(shù)據(jù)庫(kù)系統(tǒng)在接收到查詢后需要進(jìn)行重復(fù)的編譯和優(yōu)化,得到查詢計(jì)劃,這會(huì)導(dǎo)致計(jì)算資源的浪費(fèi)。本技術(shù)實(shí)施例中,第一數(shù)據(jù)庫(kù)系統(tǒng)可以將查詢計(jì)劃轉(zhuǎn)換為第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)均可以解析的語言描述(也就是本技術(shù)實(shí)施例中的第一查詢計(jì)劃的中間表示),當(dāng)確定查詢計(jì)劃更適合在其他數(shù)據(jù)庫(kù)系統(tǒng)(例如第二數(shù)據(jù)庫(kù)系統(tǒng))上執(zhí)行時(shí),則可以將對(duì)應(yīng)的中間表示傳遞至第二數(shù)據(jù)庫(kù)系統(tǒng),由于中間表示是通過第二數(shù)據(jù)庫(kù)系統(tǒng)可以解析的語言描述,因此,第二數(shù)據(jù)庫(kù)系統(tǒng)不需要重新進(jìn)行編譯和優(yōu)化,而可以直接將中間表示轉(zhuǎn)換回查詢計(jì)劃并執(zhí)行(或者,可以確定有更適合執(zhí)行的其他數(shù)據(jù)庫(kù)系統(tǒng),則可以將中間表示再傳遞給其他數(shù)據(jù)庫(kù)系統(tǒng))。通過上述方式,可以降低由于重復(fù)編譯和優(yōu)化導(dǎo)致的算力開銷的浪費(fèi)。
3、在一種可能的實(shí)現(xiàn)中,第一數(shù)據(jù)庫(kù)系統(tǒng)可以確定出查詢計(jì)劃(或者部分)更適合在第二數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行(例如,第一數(shù)據(jù)庫(kù)的執(zhí)行引擎負(fù)載較高時(shí),而第二數(shù)據(jù)庫(kù)的引擎為空閑引擎時(shí),可以將查詢分片轉(zhuǎn)發(fā)給第二數(shù)據(jù)庫(kù)系統(tǒng)的引擎執(zhí)行),因此需要將更適合在第二數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行的中間表示傳遞至第二數(shù)據(jù)庫(kù)系統(tǒng),由于第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)是異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng),因此,第一數(shù)據(jù)庫(kù)系統(tǒng)需要將第一查詢計(jì)劃轉(zhuǎn)換為第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述(也就是第一查詢計(jì)劃的中間表示ir)。
4、例如,如果用戶提交給數(shù)據(jù)庫(kù)系統(tǒng)a的查詢更適合在數(shù)據(jù)庫(kù)系統(tǒng)b上執(zhí)行,那么可以將數(shù)據(jù)庫(kù)系統(tǒng)a生成的查詢計(jì)劃通過substrait傳遞給數(shù)據(jù)庫(kù)系統(tǒng)b執(zhí)行。
5、通過上述方式,可以避免重復(fù)解析優(yōu)化代價(jià):在選擇最優(yōu)數(shù)據(jù)庫(kù)場(chǎng)景下,避免了傳統(tǒng)的double?sql解析的優(yōu)化代價(jià)。
6、在一種可能的實(shí)現(xiàn)中,方法還包括:第一數(shù)據(jù)庫(kù)系統(tǒng)從第二數(shù)據(jù)庫(kù)系統(tǒng)接收第一查詢結(jié)果并返回給用戶;或者,第二數(shù)據(jù)庫(kù)系統(tǒng)將第一查詢結(jié)果返回給用戶。
7、在一種可能的實(shí)現(xiàn)中,方法還包括:第一數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)接收到的第二用戶查詢,得到用于執(zhí)行第二用戶查詢的第三查詢計(jì)劃,第三查詢計(jì)劃是通過第一數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;第一數(shù)據(jù)庫(kù)系統(tǒng)將第三查詢計(jì)劃劃分為至少兩個(gè)計(jì)劃分片,至少兩個(gè)計(jì)劃分片包括第一計(jì)劃分片和第二計(jì)劃分片;在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第一計(jì)劃分片確定第二數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第一計(jì)劃分片的情況下,第一數(shù)據(jù)庫(kù)系統(tǒng)將第一計(jì)劃分片轉(zhuǎn)換為第一計(jì)劃分片的ir,第一計(jì)劃分片的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;第一數(shù)據(jù)庫(kù)系統(tǒng)將第一計(jì)劃分片的ir發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng);第二數(shù)據(jù)庫(kù)系統(tǒng)將第一計(jì)劃分片的ir轉(zhuǎn)換為第四查詢計(jì)劃,第四查詢計(jì)劃是通過第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;第二數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行第四查詢計(jì)劃,得到第二查詢結(jié)果;在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第二計(jì)劃分片確定第一數(shù)據(jù)庫(kù)系統(tǒng)相比第二數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第二計(jì)劃分片的情況下,第一數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行第二計(jì)劃分片,得到第三查詢結(jié)果。
8、通過上述方式,在確定出查詢計(jì)劃的部分(也就是第一計(jì)劃分片)更適合在第二數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行時(shí),查詢計(jì)劃的部分(也就是第二計(jì)劃分片)更適合在自身(也就是第一數(shù)據(jù)庫(kù)系統(tǒng))上執(zhí)行時(shí),可以將適合在第二數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行的計(jì)劃轉(zhuǎn)換成第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述(也就是第一計(jì)劃分片的ir),并發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng),并執(zhí)行適合自身執(zhí)行的計(jì)劃(也就是第二計(jì)劃分片)。
9、在一種可能的實(shí)現(xiàn)中,融合數(shù)據(jù)庫(kù)系統(tǒng)還包括第三數(shù)據(jù)庫(kù)系統(tǒng),第三數(shù)據(jù)庫(kù)系統(tǒng)和第一數(shù)據(jù)庫(kù)系統(tǒng)對(duì)查詢計(jì)劃的語言描述不同,方法還包括:第一數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)接收到的第二用戶查詢,得到用于執(zhí)行第二用戶查詢的第三查詢計(jì)劃,第三查詢計(jì)劃是通過第一數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;第一數(shù)據(jù)庫(kù)系統(tǒng)將第三查詢計(jì)劃劃分為至少兩個(gè)計(jì)劃分片,至少兩個(gè)計(jì)劃分片包括第一計(jì)劃分片和第二計(jì)劃分片;在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第一計(jì)劃分片確定第二數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第一計(jì)劃分片的情況下,第一數(shù)據(jù)庫(kù)系統(tǒng)將第一計(jì)劃分片轉(zhuǎn)換為第一計(jì)劃分片的ir,第一計(jì)劃分片的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;第一數(shù)據(jù)庫(kù)系統(tǒng)將第一計(jì)劃分片的ir發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng);第二數(shù)據(jù)庫(kù)系統(tǒng)將第一計(jì)劃分片的ir轉(zhuǎn)換為第四查詢計(jì)劃,第四查詢計(jì)劃是通過第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;第二數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行第四查詢計(jì)劃,得到第二查詢結(jié)果;在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第二計(jì)劃分片確定第三數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第二計(jì)劃分片的情況下,第一數(shù)據(jù)庫(kù)系統(tǒng)將第二計(jì)劃分片轉(zhuǎn)換為第二計(jì)劃分片的ir,第二計(jì)劃分片的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第三數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;第一數(shù)據(jù)庫(kù)系統(tǒng)將第二計(jì)劃分片的ir發(fā)送至第三數(shù)據(jù)庫(kù)系統(tǒng);第三數(shù)據(jù)庫(kù)系統(tǒng)將第二計(jì)劃分片的ir轉(zhuǎn)換為第五查詢計(jì)劃,第五查詢計(jì)劃是通過第三數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;第三數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行第五查詢計(jì)劃,得到第三查詢結(jié)果。
10、通過上述方式,在確定出查詢計(jì)劃的部分(也就是第一計(jì)劃分片)更適合在第二數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行時(shí),查詢計(jì)劃的部分(也就是第二計(jì)劃分片)更適合在第三數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行時(shí),可以將適合在第二數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行的計(jì)劃轉(zhuǎn)換成第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述(也就是第一計(jì)劃分片的ir),并發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng),將適合在第薩安數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行的計(jì)劃轉(zhuǎn)換成第三數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述(也就是第二計(jì)劃分片的ir),并發(fā)送至第三數(shù)據(jù)庫(kù)系統(tǒng)。
11、在一種可能的實(shí)現(xiàn)中,第三查詢計(jì)劃包括多個(gè)子查詢計(jì)劃,多個(gè)計(jì)劃分片中的一個(gè)計(jì)劃分片與多個(gè)子查詢計(jì)劃中的至少一個(gè)子查詢計(jì)劃對(duì)應(yīng);或者,查詢計(jì)劃包括多個(gè)算子,多個(gè)計(jì)劃分片中的一個(gè)計(jì)劃分片與多個(gè)算子中的至少一個(gè)算子對(duì)應(yīng)。
12、其中,一個(gè)查詢可以拆分為多個(gè)分片,例如,如果是粗粒度的劃分可以是基于子查詢計(jì)劃的劃分,也就是查詢可以拆分為多個(gè)子查詢計(jì)劃,相應(yīng)的,每個(gè)計(jì)劃分片可以對(duì)應(yīng)于一個(gè)或多個(gè)子查詢計(jì)劃。又例如,細(xì)粒度的劃分可以是基于算子的劃分,也就是查詢可以拆分為多個(gè)算子,每個(gè)計(jì)劃分片又可以包括一個(gè)或多個(gè)算子。
13、第一數(shù)據(jù)庫(kù)系統(tǒng)可以基于其他數(shù)據(jù)庫(kù)系統(tǒng)的性能或者運(yùn)行成本,對(duì)查詢進(jìn)行合理的拆分和數(shù)據(jù)庫(kù)系統(tǒng)的分配,使得整體的性能更優(yōu)。
14、在一種可能的實(shí)現(xiàn)中,可以由cn統(tǒng)一做一次編譯優(yōu)化得到查詢計(jì)劃直接下發(fā)給多個(gè)dn,這樣只需要做一次編譯優(yōu)化,將sql轉(zhuǎn)發(fā)給dn執(zhí)行,不但省略了dn的查詢編譯和查詢優(yōu)化的開銷,還保證了每個(gè)dn執(zhí)行相同的查詢計(jì)劃。
15、在一種可能的實(shí)現(xiàn)中,可以在中間表示中增加用于描述數(shù)據(jù)庫(kù)獨(dú)有的信息的字段,方便異構(gòu)數(shù)據(jù)庫(kù)進(jìn)行解析,在一種可能的實(shí)現(xiàn)中,中間表示包括字段以及關(guān)聯(lián)的標(biāo)識(shí),標(biāo)識(shí)用于指示字段為第一數(shù)據(jù)庫(kù)中特有類型的數(shù)據(jù),第二數(shù)據(jù)庫(kù)包括解析器,解析器用于解析中間表示,且解析器被配置為可識(shí)別出標(biāo)識(shí),并對(duì)特有類型的數(shù)據(jù)進(jìn)行解析。
16、在一種可能的實(shí)現(xiàn)中,語言為substrait。
17、在一種可能的實(shí)現(xiàn)中,第二數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第一查詢計(jì)劃,包括:在第二數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行第一查詢計(jì)劃的執(zhí)行性能比在第一數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行第一查詢計(jì)劃的執(zhí)行性能高;或者,在第二數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行第一查詢計(jì)劃的執(zhí)行成本比在第一數(shù)據(jù)庫(kù)系統(tǒng)上執(zhí)行第一查詢計(jì)劃的執(zhí)行成本低。例如,第一數(shù)據(jù)庫(kù)系統(tǒng)處于過載的狀態(tài),而第二數(shù)據(jù)庫(kù)系統(tǒng)處于空閑的狀態(tài),又例如,第二數(shù)據(jù)庫(kù)系統(tǒng)的引擎解析和執(zhí)行第一查詢計(jì)劃的效率高于第一數(shù)據(jù)庫(kù)系統(tǒng)的引擎。
18、第二方面,本技術(shù)提供了一種融合數(shù)據(jù)庫(kù)系統(tǒng),融合數(shù)據(jù)庫(kù)系統(tǒng)包括第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng),第二數(shù)據(jù)庫(kù)系統(tǒng)和第一數(shù)據(jù)庫(kù)系統(tǒng)對(duì)查詢計(jì)劃的語言描述不同:
19、第一數(shù)據(jù)庫(kù)系統(tǒng),用于根據(jù)用戶輸入的第一查詢,得到用于執(zhí)行第一查詢的第一查詢計(jì)劃,第一查詢計(jì)劃是通過第一數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;
20、第一數(shù)據(jù)庫(kù)系統(tǒng),用于在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第一查詢計(jì)劃,確定第二數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第一查詢計(jì)劃的情況下,將第一查詢計(jì)劃轉(zhuǎn)換為第一查詢計(jì)劃的中間表示ir,第一查詢計(jì)劃的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;
21、第一數(shù)據(jù)庫(kù)系統(tǒng),用于將第一查詢計(jì)劃的ir發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng);
22、第二數(shù)據(jù)庫(kù)系統(tǒng),用于將第一查詢計(jì)劃的ir轉(zhuǎn)換為第二查詢計(jì)劃,第二查詢計(jì)劃是通過第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;
23、第二數(shù)據(jù)庫(kù)系統(tǒng),用于執(zhí)行第二查詢計(jì)劃,得到第一查詢結(jié)果。
24、在一種可能的實(shí)現(xiàn)中,第一數(shù)據(jù)庫(kù)系統(tǒng),還用于從第二數(shù)據(jù)庫(kù)系統(tǒng)接收第一查詢結(jié)果并返回給用戶;或者,
25、第二數(shù)據(jù)庫(kù)系統(tǒng),還用于將第一查詢結(jié)果返回給用戶。
26、在一種可能的實(shí)現(xiàn)中,第一數(shù)據(jù)庫(kù)系統(tǒng),還用于根據(jù)接收到的第二用戶查詢,得到用于執(zhí)行第二用戶查詢的第三查詢計(jì)劃,第三查詢計(jì)劃是通過第一數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;
27、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于將第三查詢計(jì)劃劃分為至少兩個(gè)計(jì)劃分片,至少兩個(gè)計(jì)劃分片包括第一計(jì)劃分片和第二計(jì)劃分片;
28、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第一計(jì)劃分片確定第二數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第一計(jì)劃分片的情況下,將第一計(jì)劃分片轉(zhuǎn)換為第一計(jì)劃分片的ir,第一計(jì)劃分片的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;
29、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于將第一計(jì)劃分片的ir發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng);
30、第二數(shù)據(jù)庫(kù)系統(tǒng),還用于將第一計(jì)劃分片的ir轉(zhuǎn)換為第四查詢計(jì)劃,第四查詢計(jì)劃是通過第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;
31、第二數(shù)據(jù)庫(kù)系統(tǒng),還用于執(zhí)行第四查詢計(jì)劃,得到第二查詢結(jié)果;
32、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第二計(jì)劃分片確定第一數(shù)據(jù)庫(kù)系統(tǒng)相比第二數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第二計(jì)劃分片的情況下,執(zhí)行第二計(jì)劃分片,得到第三查詢結(jié)果。
33、在一種可能的實(shí)現(xiàn)中,第三查詢計(jì)劃包括多個(gè)子查詢計(jì)劃,多個(gè)計(jì)劃分片中的一個(gè)計(jì)劃分片與多個(gè)子查詢計(jì)劃中的至少一個(gè)子查詢計(jì)劃對(duì)應(yīng);或者,
34、查詢計(jì)劃包括多個(gè)算子,多個(gè)計(jì)劃分片中的一個(gè)計(jì)劃分片與多個(gè)算子中的至少一個(gè)算子對(duì)應(yīng)。
35、在一種可能的實(shí)現(xiàn)中,融合數(shù)據(jù)庫(kù)系統(tǒng)還包括第三數(shù)據(jù)庫(kù)系統(tǒng),第三數(shù)據(jù)庫(kù)系統(tǒng)和第一數(shù)據(jù)庫(kù)系統(tǒng)對(duì)查詢計(jì)劃的語言描述不同;
36、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于根據(jù)接收到的第二用戶查詢,得到用于執(zhí)行第二用戶查詢的第三查詢計(jì)劃,第三查詢計(jì)劃是通過第一數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;
37、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于將第三查詢計(jì)劃劃分為至少兩個(gè)計(jì)劃分片,至少兩個(gè)計(jì)劃分片包括第一計(jì)劃分片和第二計(jì)劃分片;
38、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第一計(jì)劃分片確定第二數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第一計(jì)劃分片的情況下,將第一計(jì)劃分片轉(zhuǎn)換為第一計(jì)劃分片的ir,第一計(jì)劃分片的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第二數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;
39、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于將第一計(jì)劃分片的ir發(fā)送至第二數(shù)據(jù)庫(kù)系統(tǒng);
40、第二數(shù)據(jù)庫(kù)系統(tǒng),還用于將第一計(jì)劃分片的ir轉(zhuǎn)換為第四查詢計(jì)劃,第四查詢計(jì)劃是通過第二數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;
41、第二數(shù)據(jù)庫(kù)系統(tǒng),還用于執(zhí)行第四查詢計(jì)劃,得到第二查詢結(jié)果;
42、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于在第一數(shù)據(jù)庫(kù)系統(tǒng)基于第二計(jì)劃分片確定第三數(shù)據(jù)庫(kù)系統(tǒng)相比第一數(shù)據(jù)庫(kù)系統(tǒng)更適合執(zhí)行第二計(jì)劃分片的情況下,將第二計(jì)劃分片轉(zhuǎn)換為第二計(jì)劃分片的ir,第二計(jì)劃分片的ir是通過第一數(shù)據(jù)庫(kù)系統(tǒng)和第三數(shù)據(jù)庫(kù)系統(tǒng)均支持解析的語言來描述;
43、第一數(shù)據(jù)庫(kù)系統(tǒng),還用于將第二計(jì)劃分片的ir發(fā)送至第三數(shù)據(jù)庫(kù)系統(tǒng);
44、第三數(shù)據(jù)庫(kù)系統(tǒng),還用于將第二計(jì)劃分片的ir轉(zhuǎn)換為第五查詢計(jì)劃,第五查詢計(jì)劃是通過第三數(shù)據(jù)庫(kù)系統(tǒng)支持解析的語言來描述;
45、第三數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行第五查詢計(jì)劃,得到第三查詢結(jié)果。
46、在一種可能的實(shí)現(xiàn)中,中間表示包括字段以及關(guān)聯(lián)的標(biāo)識(shí),標(biāo)識(shí)用于指示字段為第一數(shù)據(jù)庫(kù)系統(tǒng)中特有類型的數(shù)據(jù),第二數(shù)據(jù)庫(kù)系統(tǒng)包括解析器,解析器用于解析中間表示,且解析器被配置為可識(shí)別出標(biāo)識(shí),并對(duì)特有類型的數(shù)據(jù)進(jìn)行解析。
47、在一種可能的實(shí)現(xiàn)中,ir的語言為substrait。
48、在一種可能的實(shí)現(xiàn)中,第二數(shù)據(jù)庫(kù)系統(tǒng)的負(fù)載的空閑程度比第一數(shù)據(jù)庫(kù)系統(tǒng)的負(fù)載的空閑程度更適合執(zhí)行第一查詢計(jì)劃;或者,
49、第二數(shù)據(jù)庫(kù)系統(tǒng)的執(zhí)行性能比第一數(shù)據(jù)庫(kù)系統(tǒng)的執(zhí)行性能更適合執(zhí)行第一查詢計(jì)劃。
50、第三方面,本技術(shù)提供一種計(jì)算設(shè)備集群。計(jì)算設(shè)備集群包括至少一臺(tái)計(jì)算設(shè)備,至少一臺(tái)計(jì)算設(shè)備包括至少一個(gè)處理器和至少一個(gè)存儲(chǔ)器。至少一個(gè)處理器、至少一個(gè)存儲(chǔ)器進(jìn)行相互的通信。至少一個(gè)處理器用于執(zhí)行至少一個(gè)存儲(chǔ)器中存儲(chǔ)的指令,以使得計(jì)算設(shè)備或計(jì)算設(shè)備集群執(zhí)行如第一方面或第一方面的任一種實(shí)現(xiàn)方式的方法。
51、第四方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有指令,指令指示計(jì)算設(shè)備或計(jì)算設(shè)備集群執(zhí)行上述第一方面或第一方面的任一種實(shí)現(xiàn)方式的數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行的方法。
52、第五方面,本技術(shù)提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)其在計(jì)算設(shè)備或計(jì)算設(shè)備集群上運(yùn)行時(shí),使得計(jì)算設(shè)備或計(jì)算設(shè)備集群執(zhí)行上述第一方面或第一方面的任一種實(shí)現(xiàn)方式的數(shù)據(jù)庫(kù)系統(tǒng)執(zhí)行的方法。
53、本技術(shù)在上述各方面提供的實(shí)現(xiàn)方式的基礎(chǔ)上,還可以進(jìn)行進(jìn)一步組合以提供更多實(shí)現(xiàn)方式。