欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)查詢方法及裝置的制造方法

文檔序號:9432692閱讀:210來源:國知局
數(shù)據(jù)查詢方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及大數(shù)據(jù)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)查詢方法及裝置。
【背景技術(shù)】
[0002]Presto是Facebook開發(fā)的數(shù)據(jù)查詢引擎,可對250PB以上的數(shù)據(jù)進(jìn)行快速地交互式分析。它定義了一個通用的Java數(shù)據(jù)庫連接(Java Data Base Connectivity,JDBC)模塊,通過適當(dāng)?shù)淖兺ň涂梢赃B接各種關(guān)系型數(shù)據(jù)庫,例如MySQL數(shù)據(jù)庫、ORACLE數(shù)據(jù)庫和SQL Server數(shù)據(jù)庫等。
[0003]如圖1所示,為現(xiàn)有技術(shù)中基于Presto集群架構(gòu)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示意圖,Presto集群有多個內(nèi)部交換機(jī)11連接到各個計(jì)算節(jié)點(diǎn)12中,然后再連接到機(jī)房中的上聯(lián)交換機(jī)13,Presto可以配置多種數(shù)據(jù)源包括MySQL、Oracle、SQL Server、KAFKA和HDFS等。這些數(shù)據(jù)源與Presto連接也是通過外層的上聯(lián)交換機(jī)13進(jìn)行通信的,這個上聯(lián)交換機(jī)13可能還連接著其他的業(yè)務(wù)的服務(wù)器或者其他下聯(lián)交換機(jī),在這個范圍內(nèi)網(wǎng)絡(luò)資源是共享的,如果網(wǎng)絡(luò)擁堵可能會影響到好幾個業(yè)務(wù)應(yīng)用。
[0004]在現(xiàn)有技術(shù)中,當(dāng)客戶端的數(shù)據(jù)查詢請求比較多時,Presto可能會跨多個數(shù)據(jù)源進(jìn)行聯(lián)合查詢,此時Presto將根據(jù)所有的數(shù)據(jù)查詢請求同時查詢起所有的數(shù)據(jù)抓取線程,將數(shù)據(jù)抓取到Presto的計(jì)算節(jié)點(diǎn)中進(jìn)行計(jì)算,這時Presto計(jì)算節(jié)點(diǎn)就需要頻繁的通過上聯(lián)交換機(jī)與數(shù)據(jù)源的服務(wù)器進(jìn)行通訊和數(shù)據(jù)交互,這種狀態(tài)下就會高頻率的出現(xiàn)網(wǎng)絡(luò)擁堵情況。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實(shí)施例提供一種數(shù)據(jù)查詢方法及裝置,能夠提高數(shù)據(jù)查詢效率。
[0006]第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)查詢方法,包括:
[0007]將多個查詢請求消息進(jìn)行分組,每個分組中查詢請求消息的個數(shù)小于等于任務(wù)執(zhí)行上限;
[0008]任選一分組作為當(dāng)前組,將所述當(dāng)前組的查詢請求消息分配給至少一個計(jì)算節(jié)點(diǎn)進(jìn)行查詢處理;
[0009]實(shí)時檢測各計(jì)算節(jié)點(diǎn)的查詢處理情況;
[0010]根據(jù)所述查詢處理情況從剩余分組中選擇一分組作為當(dāng)前組,直至所有分組均被處理完畢。
[0011]第二方面,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)查詢裝置,包括:
[0012]分組模塊,用于將多個查詢請求消息進(jìn)行分組,每個分組中查詢請求消息的個數(shù)小于等于任務(wù)執(zhí)行上限;
[0013]分配模塊,用于任選一分組作為當(dāng)前組,將所述當(dāng)前組的查詢請求消息分配給至少一個計(jì)算節(jié)點(diǎn)進(jìn)行查詢處理;
[0014]檢測模塊,用于實(shí)時檢測各計(jì)算節(jié)點(diǎn)的查詢處理情況,根據(jù)所述查詢處理情況指示所述分配模塊從剩余分組中選擇一分組作為當(dāng)前組,直至所有分組均被處理完畢。
[0015]本發(fā)明實(shí)施例通過將多個查詢請求消息進(jìn)行分組,每個分組中查詢請求消息的個數(shù)小于等于任務(wù)執(zhí)行上限;任選一分組作為當(dāng)前組,將所述當(dāng)前組的查詢請求消息分配給至少一個計(jì)算節(jié)點(diǎn)進(jìn)行查詢處理;實(shí)時檢測各計(jì)算節(jié)點(diǎn)的查詢處理情況;根據(jù)所述查詢處理情況從剩余分組中選擇一分組作為當(dāng)前組,直至所有分組均被處理完畢。本發(fā)明實(shí)施例采用分批次處理每個分組的查詢請求消息,避免了高頻率的出現(xiàn)網(wǎng)絡(luò)擁堵情況,從而提高查詢效率。
【附圖說明】
[0016]圖1為現(xiàn)有技術(shù)提供的Presto數(shù)據(jù)查詢網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示意圖;
[0017]圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)查詢方法的流程示意圖;
[0018]圖3為本發(fā)明實(shí)施例二提供的數(shù)據(jù)查詢裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0019]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0020]本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢方法的執(zhí)行主體,可為本發(fā)明實(shí)施例提供的數(shù)據(jù)查詢裝置,或集成了數(shù)據(jù)查詢裝置的交換機(jī),該數(shù)據(jù)查詢裝置可以采用硬件或軟件實(shí)現(xiàn)。
[0021]實(shí)施例一
[0022]圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)查詢方法的流程示意圖,如圖2所示,具體包括:
[0023]步驟21、將多個查詢請求消息進(jìn)行分組,每個分組中查詢請求消息的個數(shù)小于等于任務(wù)執(zhí)行上限;
[0024]其中,任務(wù)執(zhí)行上限可根據(jù)查詢系統(tǒng)當(dāng)前的運(yùn)算能力進(jìn)行設(shè)定。具體的,在分組時,可采用平均分組的策略。例如,每個分組中查詢請求消息的個數(shù)可為任務(wù)執(zhí)行上限,或略小于任務(wù)執(zhí)行上限。
[0025]步驟22、任選一分組作為當(dāng)前組,將所述當(dāng)前組的查詢請求消息分配給至少一個計(jì)算節(jié)點(diǎn)進(jìn)行查詢處理;
[0026]具體的,如果當(dāng)前組的查詢請求消息的總數(shù)為100條,計(jì)算節(jié)點(diǎn)為10個,則將100條查詢請求消息均衡的分配到I個計(jì)算節(jié)點(diǎn)進(jìn)行計(jì)算。其中,每個計(jì)算節(jié)點(diǎn)處理10條查詢請求消息。
[0027]步驟23、實(shí)時檢測各計(jì)算節(jié)點(diǎn)的查詢處理情況;
[0028]步驟24、根據(jù)所述查詢處理情況從剩余分組中選擇一分組作為當(dāng)前組,直至所有分組均被處理完畢。
[0029]具體的,當(dāng)檢測到分配到各計(jì)算節(jié)點(diǎn)的查詢請求消息均已處理完畢后,則從剩余分組中選擇一分組作為當(dāng)前組,重復(fù)執(zhí)行步驟22至步驟24,直至所有分組均被處理完畢。
[0030]本實(shí)施例通過將多個查詢請求消息進(jìn)行分組,每個分組中查詢請求消息的個數(shù)小于等于任務(wù)執(zhí)行上限;任選一分組作為當(dāng)前組,將所述當(dāng)前組的查詢請求消息分配給至少一個計(jì)算節(jié)點(diǎn)進(jìn)行查詢處理;實(shí)時檢測各計(jì)算節(jié)點(diǎn)的查詢處理情況;根據(jù)所述查詢處理情況從剩余分組中選擇一分組作為當(dāng)前組,直至所有分組均被處理完畢。本實(shí)施例采用分批次處理每個分組的查詢請求消息,避免了高頻率的出現(xiàn)網(wǎng)絡(luò)擁堵情況,從而提高查詢效率。
[0031]示例性的,在上述實(shí)施例的基礎(chǔ)上,為進(jìn)一步提高查詢效率,所述根據(jù)所述查詢處理情況從剩余分組中選擇一分組作為當(dāng)前組,直至所有分組均被處理完畢進(jìn)一步包括:
[0032]根據(jù)所述查詢處理情況確定所述分組中當(dāng)前未被處理的查詢請求消息的總數(shù);
[0033]當(dāng)所述總數(shù)小于任務(wù)執(zhí)行上限時,則從剩余分組中的查詢請求消息中抽取查詢請求消息補(bǔ)充到所述分組中,重復(fù)執(zhí)行檢測步驟直至剩余分組中的所有查詢請求消息都被處理完畢。
[0034]示例性的,所述根據(jù)所述查詢處理情況確定所述分組中當(dāng)前未被處理的查詢請求消息的總數(shù)具體包括:
[0035]所述當(dāng)前未被處理的查詢請求消息的總數(shù)等于所述分組中查詢請求消息的總數(shù)減去已處理的查詢請求消息的總數(shù);
[0036]或者,
[0037]所述當(dāng)前未被處理的查詢請求消息的總數(shù)等于所述任務(wù)執(zhí)行上限減去已處理的查詢請求消息的總數(shù)、已分配的查詢請求消息的總數(shù)和在計(jì)算節(jié)點(diǎn)等排隊(duì)等待處理的查詢請求消息的總數(shù)。
[0038]其中,已分配的查詢請求消息為已從所述分組中提取出來,但還未被分配到計(jì)算節(jié)點(diǎn)的查詢請求消息。
[0039]示例性的,在上述實(shí)施例的基礎(chǔ)上,所述方法還包括:
[0040]統(tǒng)計(jì)所述查詢請求消息的總個數(shù);
[0041]當(dāng)所述總個數(shù)超過預(yù)設(shè)閾值時,觸發(fā)執(zhí)行對所述查詢請求消息的分組操作。
[0042]具體的,當(dāng)當(dāng)前待處理的查詢請求消息的總個數(shù)較少時,即一次性即可處理完畢而不會造成網(wǎng)絡(luò)擁堵時,就不必再對其進(jìn)行分組,直接處理即可。當(dāng)當(dāng)前待處理的查詢請求消息的總個數(shù)較多時,在對其啟動分組處理。在具體程序?qū)崿F(xiàn)時,可在程序中設(shè)置如下兩個相關(guān)參數(shù):
[0043]control_scan_concurrency_enabled,參數(shù)含義為是否開啟分組讀??;
[0044]scan_concurrency_count,參數(shù)含義為每一分組的任務(wù)執(zhí)行上限數(shù)。
[0045]程序可以根據(jù)實(shí)際需求來動態(tài)的調(diào)配上述兩個參數(shù),需要注意的是,只有開啟了分組讀取的參數(shù)即control_scan_concurrency_enabled后,每一分組的執(zhí)行上限數(shù)(scan_concurrency_count)才
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
错那县| 大竹县| 昭平县| 琼海市| 福鼎市| 贡嘎县| 曲阜市| 白沙| 库车县| 白河县| 德昌县| 元谋县| 宁河县| 林西县| 凤阳县| 吉木乃县| 吴忠市| 白玉县| 东乡县| 成都市| 乌鲁木齐县| 鄢陵县| 平南县| 堆龙德庆县| 内黄县| 富阳市| 吴桥县| 临颍县| 吉木乃县| 镇巴县| 祥云县| 长兴县| 阿拉善左旗| 仁寿县| 定结县| 淳化县| 获嘉县| 安徽省| 旬邑县| 泰来县| 修武县|