專利名稱:基于sql的并行計(jì)算系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)庫的查詢或統(tǒng)計(jì)方法,特別涉及一種基于SQL的并行計(jì)算系 統(tǒng)及方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展和普及,大型數(shù)據(jù)庫迅速地進(jìn)入到電信、金融等各個(gè)行業(yè)。 SQL (Structured Query Language,結(jié)構(gòu)化查詢語言)是專為數(shù)據(jù)庫而建立的操作命令集, 是一種數(shù)據(jù)庫語言。SQL的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,使不同類型的數(shù)據(jù)庫之間 進(jìn)行溝通。按照ANSI (美國國家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的 標(biāo)準(zhǔn)語言。在使用SQL時(shí),只需要發(fā)出“做什么”的命令,而不需要考慮“怎么做”。SQL語 句可以用來執(zhí)行對(duì)數(shù)據(jù)庫的各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取 數(shù)據(jù)等。目前,絕大多數(shù)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如QraclhSybashMicrosoft Sql Server, Access等都采用了 SQL語言標(biāo)準(zhǔn)。然而,隨著信息化建設(shè)的深入,各行各業(yè)都建立了大量的數(shù)據(jù)庫,而這些數(shù)據(jù)庫的 數(shù)據(jù)量也越來越大,限制了對(duì)數(shù)據(jù)庫的查詢和統(tǒng)計(jì)速度。例如在計(jì)費(fèi)系統(tǒng)中,各種業(yè)務(wù)程序 需要對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行頻繁的查詢操作,涉及的數(shù)據(jù)量非常巨大,訪問數(shù)據(jù)庫的頻率 很高,由此過多的數(shù)據(jù)庫交互導(dǎo)致計(jì)算機(jī)程序的性能降低。為了提高數(shù)據(jù)庫的查詢和統(tǒng)計(jì)速度,最常用的方式是對(duì)硬件系統(tǒng)進(jìn)行優(yōu)化,例如 中國專利局申請(qǐng)?zhí)枮?00610041548. 6的專利申請(qǐng),其提出了 一種加速數(shù)據(jù)庫查詢速度的 方法,如圖1所示,其通過在系統(tǒng)內(nèi)存中開辟用于存放數(shù)據(jù)和數(shù)據(jù)索引的共享內(nèi)存段,由守 護(hù)進(jìn)程按約定的方式將數(shù)據(jù)庫中的數(shù)據(jù)和數(shù)據(jù)索引分別調(diào)入相應(yīng)的共享內(nèi)存段中供務(wù)業(yè) 進(jìn)程調(diào)用,同時(shí)由守護(hù)進(jìn)程定時(shí)或循環(huán)對(duì)數(shù)據(jù)庫中的記錄進(jìn)行查詢,及時(shí)將更接的數(shù)據(jù)內(nèi) 容記錄到上述共享內(nèi)存段中。這種加速數(shù)據(jù)庫查詢速度的方法可以在一定程度上提高數(shù)據(jù)庫的查詢速度,減少 對(duì)數(shù)據(jù)庫性能的依賴。但是對(duì)于海量數(shù)據(jù)庫的查詢或統(tǒng)計(jì)來說,由于硬件運(yùn)算速度的限制, 這種方法并不能從根本上解決數(shù)據(jù)庫查詢速度慢的問題,而計(jì)算機(jī)性能的提升,如提高CPU 頻率、增加內(nèi)存、提高磁盤訪問速度等,其提升空間有限,且硬件性能的升級(jí)需要投入大量 的資金成本。因而如何行之有效地解決大型數(shù)據(jù)庫查詢或統(tǒng)計(jì)的速率問題,一直是一個(gè)需 要解決的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于SQL的并行計(jì)算系統(tǒng),以解決大型數(shù)據(jù)庫的查詢或 統(tǒng)計(jì)速度慢的問題。本發(fā)明的另一目的是提供一種基于SQL的并行計(jì)算方法,以解決大型數(shù)據(jù)庫的查 詢或統(tǒng)計(jì)速度慢的問題。本發(fā)明提出一種一種基于SQL的并行計(jì)算系統(tǒng),用于對(duì)一源數(shù)據(jù)庫進(jìn)行統(tǒng)計(jì)或查詢,包括數(shù)據(jù)分割服務(wù)器和多個(gè)節(jié)點(diǎn)服務(wù)器。數(shù)據(jù)分割服務(wù)器與源數(shù)據(jù)庫相連,用于將源數(shù) 據(jù)庫中的海量數(shù)據(jù)按照一定規(guī)則進(jìn)行分割。節(jié)點(diǎn)服務(wù)器均與數(shù)據(jù)分割服務(wù)器相連,且每個(gè) 節(jié)點(diǎn)服務(wù)器又進(jìn)一步包括節(jié)點(diǎn)數(shù)據(jù)庫和節(jié)點(diǎn)處理器。節(jié)點(diǎn)數(shù)據(jù)庫與數(shù)據(jù)分割服務(wù)器相連, 用于存放經(jīng)數(shù)據(jù)分割服務(wù)器分割后分配來的數(shù)據(jù)。節(jié)點(diǎn)處理器與節(jié)點(diǎn)數(shù)據(jù)庫相連,用于對(duì) 節(jié)點(diǎn)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢或統(tǒng)計(jì)。依照本發(fā)明較佳實(shí)施例所述的基于SQL的并行計(jì)算系統(tǒng),其還包括匯總服務(wù)器, 且匯總服務(wù)器又進(jìn)一步包括臨時(shí)表存儲(chǔ)單元和主處理器。臨時(shí)表存儲(chǔ)單元與各個(gè)節(jié)點(diǎn)服務(wù) 器相連,用于存放各個(gè)節(jié)點(diǎn)服務(wù)器反饋的查詢或統(tǒng)計(jì)結(jié)果,并匯總形成臨時(shí)表。主處理器與 臨時(shí)表存儲(chǔ)單元相連,用于對(duì)臨時(shí)表的信息進(jìn)行查詢或統(tǒng)計(jì),并形成最終的結(jié)果集。依照本發(fā)明較佳實(shí)施例所述的基于SQL的并行計(jì)算系統(tǒng),其還包括前端展現(xiàn)模 塊,與匯總服務(wù)器相連,用于將查詢或統(tǒng)計(jì)結(jié)果形成圖形數(shù)據(jù)或表格數(shù)據(jù)。本發(fā)明另提出一種基于SQL的并行計(jì)算方法,用于對(duì)源數(shù)據(jù)庫進(jìn)行統(tǒng)計(jì)或查詢, 包括以下步驟(1)設(shè)置多個(gè)節(jié)點(diǎn)數(shù)據(jù)庫。(2)將源數(shù)據(jù)庫中的海量數(shù)據(jù)按照一定規(guī)則進(jìn)行 分割,并分配到各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫。(3)對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫進(jìn)行并行查詢或統(tǒng)計(jì)。依照本發(fā)明較佳實(shí)施例所述的基于SQL的并行計(jì)算方法,對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫進(jìn)行 并行查詢或統(tǒng)計(jì)之后還包括步驟(1)將各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫的查詢或統(tǒng)計(jì)結(jié)果進(jìn)行匯總,并 形成臨時(shí)表。(2)對(duì)臨時(shí)表的信息再次進(jìn)行查詢或統(tǒng)計(jì),并形成最終的結(jié)果集。依照本發(fā)明較佳實(shí)施例所述的基于SQL的并行計(jì)算方法,其還包括步驟將查詢 或統(tǒng)計(jì)結(jié)果形成圖形數(shù)據(jù)或表格數(shù)據(jù)。依照本發(fā)明較佳實(shí)施例所述的基于SQL的并行計(jì)算方法,對(duì)數(shù)據(jù)進(jìn)行分割時(shí),按 照數(shù)據(jù)量最大的分類字段或分類表進(jìn)行分割。相對(duì)于現(xiàn)有技術(shù),本發(fā)明具有以下優(yōu)點(diǎn)1、本發(fā)明通過多節(jié)點(diǎn)并行運(yùn)算的方式,將一個(gè)大型數(shù)據(jù)庫的運(yùn)算量分配給多個(gè)節(jié) 點(diǎn)數(shù)據(jù)庫,從而可以充分發(fā)揮多機(jī)、多核同時(shí)計(jì)算的能力,可以極大地提高大數(shù)據(jù)量數(shù)據(jù)庫 的查詢或統(tǒng)計(jì)速度,相對(duì)于優(yōu)化硬件配置的方式,本發(fā)明不會(huì)受到提升空間的限制,查詢或 統(tǒng)計(jì)速率可以提高10倍、100倍甚至1000倍。2、本發(fā)明所采用的節(jié)點(diǎn)服務(wù)器可以是普通的PC機(jī),相對(duì)于硬件配置的優(yōu)化所需 要的成本,在提升相同的查詢或統(tǒng)計(jì)速率的前提下,增加節(jié)點(diǎn)服務(wù)器勢(shì)必需要更少的投入 成本。3、本發(fā)明不依賴于專門的硬件和網(wǎng)絡(luò),普通的PC機(jī)和千兆網(wǎng)絡(luò)甚至百兆網(wǎng)絡(luò)就 可以實(shí)現(xiàn)。與其它需要昂貴服務(wù)器(小型機(jī))、專用通訊通道的方案相比,本發(fā)明具有很高 的性價(jià)比。
圖1為中國專利局申請(qǐng)?zhí)枮?00610041548. 6的專利申請(qǐng)的一種加速數(shù)據(jù)庫查詢 速度的方法的原理示意圖;圖2為本發(fā)明基于SQL的并行計(jì)算系統(tǒng)的一種實(shí)施例架構(gòu)圖;圖3為本發(fā)明基于SQL的并行計(jì)算方法的一種實(shí)施例流程圖;圖4為一個(gè)大數(shù)據(jù)量的源數(shù)據(jù)庫示意圖。
具體實(shí)施例方式本發(fā)明的主要思想是將源數(shù)據(jù)庫中的海量數(shù)據(jù)分割并分配到多個(gè)節(jié)點(diǎn)數(shù)據(jù)庫,并 以多個(gè)獨(dú)立的節(jié)點(diǎn)服務(wù)器進(jìn)行并行計(jì)算,從而可以充分發(fā)揮多機(jī)、多核同時(shí)計(jì)算的能力,可 以大大提高大數(shù)據(jù)量數(shù)據(jù)庫的統(tǒng)計(jì)或查詢效率。本發(fā)明的數(shù)據(jù)查詢或統(tǒng)計(jì)是建立在SQL指令下的,特別適用于BI (Business Intelligence,商務(wù)智能)系統(tǒng)。以下結(jié)合附圖,具體說明本發(fā)明。請(qǐng)參見圖2,其為本發(fā)明基于SQL的并行計(jì)算系統(tǒng)的一種架構(gòu)圖。此系統(tǒng)包括數(shù)據(jù) 分割服務(wù)器14、匯總服務(wù)器11、多個(gè)節(jié)點(diǎn)服務(wù)器12和前端展現(xiàn)模塊19,數(shù)據(jù)分割服務(wù)器14 與源數(shù)據(jù)庫13相連(源數(shù)據(jù)庫13中存放有大量數(shù)據(jù)),并與各個(gè)節(jié)點(diǎn)服務(wù)器12通過有線 或無線的方式相連,數(shù)據(jù)分割服務(wù)器14與節(jié)點(diǎn)服務(wù)器12之間可進(jìn)行數(shù)據(jù)傳輸,且每個(gè)節(jié)點(diǎn) 服務(wù)器12均有獨(dú)立的運(yùn)算處理能力。匯總服務(wù)器11分別與各個(gè)節(jié)點(diǎn)服務(wù)器12相連。前 端展現(xiàn)模塊19與匯總服務(wù)器11相連,用來將統(tǒng)計(jì)或查詢結(jié)果形成圖形數(shù)據(jù)或表格數(shù)據(jù),以 便于向技術(shù)員展現(xiàn)。匯總服務(wù)器11又包括主處理器15和臨時(shí)表存儲(chǔ)單元16,每個(gè)節(jié)點(diǎn)服務(wù)器12又包 括節(jié)點(diǎn)數(shù)據(jù)庫17和節(jié)點(diǎn)處理器18。其中,臨時(shí)表存儲(chǔ)單元16與主處理器15相連,并連接 到各個(gè)節(jié)點(diǎn)服務(wù)器12的節(jié)點(diǎn)處理器18,節(jié)點(diǎn)處理器18與節(jié)點(diǎn)數(shù)據(jù)庫17相連。工作時(shí),數(shù)據(jù)分割服務(wù)器14會(huì)將源數(shù)據(jù)庫13中的數(shù)據(jù)按照一定規(guī)則進(jìn)行分割,然 后將分割后的數(shù)據(jù)分配到各個(gè)節(jié)點(diǎn)服務(wù)器12的節(jié)點(diǎn)數(shù)據(jù)庫17中(優(yōu)選的方式是按照數(shù)據(jù) 量最大的分類字段或分類表進(jìn)行分割,數(shù)據(jù)量較小的分類字段或分類表不用分割,而直接 復(fù)制到各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫17中)。各個(gè)節(jié)點(diǎn)處理器18會(huì)根據(jù)技術(shù)員的設(shè)定對(duì)節(jié)點(diǎn)數(shù)據(jù)庫17 中的數(shù)據(jù)分別進(jìn)行查詢或統(tǒng)計(jì),并反饋給匯總服務(wù)器11。如果匯總服務(wù)器11接收到的結(jié)果 集數(shù)據(jù)量不大,或者節(jié)點(diǎn)服務(wù)器12的數(shù)量不多(例如兩個(gè)或三個(gè)節(jié)點(diǎn)服務(wù)器12),則匯總服 務(wù)器11可以直接將節(jié)點(diǎn)服務(wù)器12的查詢或統(tǒng)計(jì)結(jié)果傳輸給前端展現(xiàn)模塊19。而如果節(jié)點(diǎn) 服務(wù)器12的數(shù)量較多,或者節(jié)點(diǎn)服務(wù)器12向匯總服務(wù)器11返回的數(shù)據(jù)量較大,則可以將 查詢或統(tǒng)計(jì)結(jié)果復(fù)制到臨時(shí)表存儲(chǔ)單元16中,并由臨時(shí)表存儲(chǔ)單元16匯總生成一個(gè)臨時(shí) 表。然后由主處理器15再次對(duì)這個(gè)臨時(shí)表進(jìn)行查詢或統(tǒng)計(jì),形成最終的結(jié)果集后傳輸給前 端展現(xiàn)模塊19。前端展現(xiàn)模塊19將接收到的數(shù)據(jù)生成圖形、表格等形式,并與技術(shù)員實(shí)現(xiàn) 交互。本發(fā)明的系統(tǒng)利用多個(gè)獨(dú)立的節(jié)點(diǎn)服務(wù)器12實(shí)現(xiàn)并行計(jì)算,充分利用每一個(gè)節(jié) 點(diǎn)服務(wù)器12的運(yùn)算能力,大大提高查詢或統(tǒng)計(jì)效率。而節(jié)點(diǎn)服務(wù)器12的數(shù)量可以根據(jù)需 要相應(yīng)地增加或減少,且每增加一個(gè)節(jié)點(diǎn)服務(wù)器12也就意味著系統(tǒng)整體性能的成倍增加, 數(shù)據(jù)分小之后,每個(gè)節(jié)點(diǎn)的運(yùn)算量減小,總的運(yùn)算量也會(huì)減小,使系統(tǒng)的查詢、統(tǒng)計(jì)速度可 以提高10倍、100倍甚至1000倍。相對(duì)于傳統(tǒng)的提高cpu,內(nèi)存,硬盤頻率(轉(zhuǎn)速)等硬件 配置,增加節(jié)點(diǎn)服務(wù)器12的難度低,且成本投入少。相應(yīng)于上述基于SQL的并行計(jì)算系統(tǒng),本發(fā)明還提出了一種基于SQL的并行計(jì)算 方法,用于對(duì)源數(shù)據(jù)庫進(jìn)行統(tǒng)計(jì)或查詢,請(qǐng)參見圖3,其包括以下步驟S301,設(shè)置多個(gè)節(jié)點(diǎn)數(shù)據(jù)庫。S302,將源數(shù)據(jù)庫中的海量數(shù)據(jù)按照一定規(guī)則進(jìn)行分割,并分配到各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫。其中可以根據(jù)需要來設(shè)置分割方式,優(yōu)選的是按照數(shù)據(jù)量最大的分類字段或分類 表進(jìn)行分割,比如客戶表。而數(shù)據(jù)量較小的分類字段或分類表不用分割,直接復(fù)制到各個(gè)節(jié) 點(diǎn)數(shù)據(jù)庫中。S303,對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫進(jìn)行并行查詢或統(tǒng)計(jì)。其中,各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫均可以進(jìn)行 獨(dú)立的運(yùn)算,從而每一個(gè)節(jié)點(diǎn)數(shù)據(jù)庫均可以分擔(dān)一部份查詢或統(tǒng)計(jì)任務(wù),并大大提高數(shù)據(jù) 庫的訪問效率。S304,將各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫的查詢或統(tǒng)計(jì)結(jié)果進(jìn)行匯總,并形成一個(gè)臨時(shí)表。S305,對(duì)臨時(shí)表的信息再次進(jìn)行查詢或統(tǒng)計(jì),并形成最終的結(jié)果集。當(dāng)然,如果節(jié)點(diǎn)數(shù)據(jù)庫的數(shù)量較少,或者查詢或統(tǒng)計(jì)的數(shù)據(jù)量不多,則可以將節(jié)點(diǎn) 數(shù)據(jù)庫的查詢或統(tǒng)計(jì)結(jié)果作為最終的結(jié)果集。而當(dāng)節(jié)點(diǎn)數(shù)據(jù)庫的數(shù)量較多,或者查詢或統(tǒng) 計(jì)的數(shù)據(jù)量較大時(shí),則可以將各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫的查詢或統(tǒng)計(jì)結(jié)果進(jìn)行匯總,以便于分析。S306,將查詢或統(tǒng)計(jì)結(jié)果形成圖形數(shù)據(jù)或表格數(shù)據(jù)。下面結(jié)合一個(gè)具體統(tǒng)計(jì)過程來進(jìn)一步理解本發(fā)明,如圖4所示,其為一個(gè)大數(shù) 據(jù)量的源數(shù)據(jù)庫示意圖。此源數(shù)據(jù)庫包括有四個(gè)數(shù)據(jù)表=Store表、Sales表、Time表和 Product表,數(shù)據(jù)量分別是40萬、1億、1825和1000。首先要對(duì)源數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行分割,并分配到各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫中。由于Store表 和Sales表的數(shù)據(jù)量比較大,Time表和Product表數(shù)據(jù)量不大,因此對(duì)Store表和Sales 表,按Store字段進(jìn)行分割,Time表和Product表不分割,直接復(fù)制到各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫。分 割數(shù)據(jù)時(shí),還可以加上city字段,region字段進(jìn)行排序,盡量保證一個(gè)城市或一個(gè)區(qū)域的 數(shù)據(jù)在一個(gè)節(jié)點(diǎn)數(shù)據(jù)庫或相鄰節(jié)點(diǎn)數(shù)據(jù)庫上。然后對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),即對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫執(zhí)行SQL統(tǒng)計(jì)指 令。假設(shè)要統(tǒng)計(jì)各地區(qū)各品牌在各年度的銷售匯總,則各節(jié)點(diǎn)的SQL寫法可以如下Select store, region, product, brand,time, year, sum (sales, amount) as amount from sales join store on sales, store = store, store join time on sales, date =time, date join product on sales, product = product, product group by store, region,product, brand, time, year從而從各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫可以統(tǒng)計(jì)出如表1的結(jié)果集 ......表 1然后將各節(jié)點(diǎn)的結(jié)果集導(dǎo)入到臨時(shí)表,進(jìn)行匯總后再進(jìn)行統(tǒng)計(jì),即對(duì)導(dǎo)入完成的 臨時(shí)表再次執(zhí)行SQL統(tǒng)計(jì)指令,SQL寫法可以如下Select region, brand, year,sum (amount)as amount from temptabIe group by
6region, brand, year從而可以得到表示源數(shù)據(jù)庫中各地區(qū)各品牌在各年度的銷售匯總的結(jié)果集。最后 將結(jié)果集傳遞給前端展現(xiàn)模塊,利用各種展現(xiàn)控件(如表格,圖形)展現(xiàn)出來。本發(fā)明通過多節(jié)點(diǎn)并行運(yùn)算的方式,將一個(gè)大型數(shù)據(jù)庫的運(yùn)算量分配給多個(gè)節(jié)點(diǎn) 數(shù)據(jù)庫,從而可以充分發(fā)揮多機(jī)、多核同時(shí)計(jì)算的能力,可以極大地提高大數(shù)據(jù)量數(shù)據(jù)庫的 查詢或統(tǒng)計(jì)速度。以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但本發(fā)明并非局限于此,任何本領(lǐng)域 的技術(shù)人員能思之的變化,都應(yīng)落在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
一種基于SQL的并行計(jì)算系統(tǒng),用于對(duì)一源數(shù)據(jù)庫進(jìn)行統(tǒng)計(jì)或查詢,其特征在于,包括一數(shù)據(jù)分割服務(wù)器,與該源數(shù)據(jù)庫相連,用于將該源數(shù)據(jù)庫中的海量數(shù)據(jù)按照一定規(guī)則進(jìn)行分割;多個(gè)節(jié)點(diǎn)服務(wù)器,均與該數(shù)據(jù)分割服務(wù)器相連,且每個(gè)節(jié)點(diǎn)服務(wù)器又進(jìn)一步包括一節(jié)點(diǎn)數(shù)據(jù)庫,與該數(shù)據(jù)分割服務(wù)器相連,用于存放經(jīng)該數(shù)據(jù)分割服務(wù)器分割后分配來的數(shù)據(jù);一節(jié)點(diǎn)處理器,與該節(jié)點(diǎn)數(shù)據(jù)庫相連,用于對(duì)該節(jié)點(diǎn)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢或統(tǒng)計(jì)。
2.如權(quán)利要求1所述的基于SQL的并行計(jì)算系統(tǒng),其特征在于,其還包括一匯總服務(wù) 器,且該匯總服務(wù)器又進(jìn)一步包括一臨時(shí)表存儲(chǔ)單元,與各個(gè)節(jié)點(diǎn)服務(wù)器相連,用于存放各個(gè)節(jié)點(diǎn)服務(wù)器反饋的查詢或 統(tǒng)計(jì)結(jié)果,并匯總形成一臨時(shí)表;一主處理器,與該臨時(shí)表存儲(chǔ)單元相連,用于對(duì)該臨時(shí)表的信息進(jìn)行查詢或統(tǒng)計(jì),并形 成最終的結(jié)果集。
3.如權(quán)利要求2所述的基于SQL的并行計(jì)算系統(tǒng),其特征在于,其還包括一前端展現(xiàn)模 塊,與該匯總服務(wù)器相連,用于將查詢或統(tǒng)計(jì)結(jié)果形成圖形數(shù)據(jù)或表格數(shù)據(jù)。
4.一種基于SQL的并行計(jì)算方法,用于對(duì)一源數(shù)據(jù)庫進(jìn)行統(tǒng)計(jì)或查詢,其特征在于,包 括以下步驟設(shè)置多個(gè)節(jié)點(diǎn)數(shù)據(jù)庫;將該源數(shù)據(jù)庫中的海量數(shù)據(jù)按照一定規(guī)則進(jìn)行分割,并分配到各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫; 對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫進(jìn)行并行查詢或統(tǒng)計(jì);
5.如權(quán)利要求4所述的基于SQL的并行計(jì)算方法,其特征在于,對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫進(jìn)行 并行查詢或統(tǒng)計(jì)之后還包括步驟將各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫的查詢或統(tǒng)計(jì)結(jié)果進(jìn)行匯總,并形成一臨時(shí)表; 對(duì)該臨時(shí)表的信息再次進(jìn)行查詢或統(tǒng)計(jì),并形成最終的結(jié)果集。
6.如權(quán)利要求4所述的基于SQL的并行計(jì)算方法,其特征在于,其還包括步驟將查詢 或統(tǒng)計(jì)結(jié)果形成圖形數(shù)據(jù)或表格數(shù)據(jù)。
7.如權(quán)利要求4所述的基于SQL的并行計(jì)算方法,其特征在于,對(duì)數(shù)據(jù)進(jìn)行分割時(shí),按 照數(shù)據(jù)量最大的分類字段或分類表進(jìn)行分割。
全文摘要
本發(fā)明提出一種基于SQL的并行計(jì)算系統(tǒng)和方法,其方法包括以下步驟(1)設(shè)置多個(gè)節(jié)點(diǎn)數(shù)據(jù)庫。(2)將源數(shù)據(jù)庫中的海量數(shù)據(jù)按照一定規(guī)則進(jìn)行分割,并分配到各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫。(3)對(duì)各個(gè)節(jié)點(diǎn)數(shù)據(jù)庫進(jìn)行并行查詢或統(tǒng)計(jì)。本發(fā)明可以大大提高大型數(shù)據(jù)庫的查詢或統(tǒng)計(jì)速度。
文檔編號(hào)G06F17/30GK101908075SQ20101025561
公開日2010年12月8日 申請(qǐng)日期2010年8月17日 優(yōu)先權(quán)日2010年8月17日
發(fā)明者李曉華 申請(qǐng)人:上海云數(shù)信息科技有限公司