本技術(shù)涉及數(shù)據(jù)查詢,特別是一種報(bào)文的查詢方法、系統(tǒng)、裝置以及電子設(shè)備。
背景技術(shù):
1、現(xiàn)有技術(shù)中,數(shù)據(jù)存儲通?;陉P(guān)系數(shù)據(jù)庫。然而對于車輛報(bào)文這種龐大的數(shù)據(jù)量場景,單一的關(guān)系數(shù)據(jù)庫難以有效處理,必須采用分布式數(shù)據(jù)庫,hbase數(shù)據(jù)庫便是解決方案之一。然而,基于hbase數(shù)據(jù)庫的分頁查詢在統(tǒng)計(jì)數(shù)據(jù)數(shù)量時(shí)存在性能瓶頸。為了進(jìn)行大規(guī)模數(shù)據(jù)的快速分頁查詢,傳統(tǒng)的方式是依靠hbase數(shù)據(jù)庫中的row?key(行鍵)進(jìn)行查詢。然而在面對海量的時(shí)序數(shù)據(jù)時(shí),尤其是當(dāng)查詢的時(shí)間范圍較大時(shí),服務(wù)器需要掃描大量的row?key,以統(tǒng)計(jì)數(shù)據(jù)條數(shù)和分頁信息,這使得查詢過程非常耗時(shí),查詢效率低下。
2、因此,亟需一種新的報(bào)文查詢方法。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,本技術(shù)實(shí)施例提供了一種報(bào)文的查詢方法、系統(tǒng)、裝置以及電子設(shè)備,以便克服上述問題或者至少部分地解決上述問題。
2、本技術(shù)第一方面,提供了一種報(bào)文的查詢方法,應(yīng)用于服務(wù)器,所述方法包括:
3、接收客戶端發(fā)送的針對目標(biāo)車輛報(bào)文的第一查詢指令,所述第一查詢指令為所述客戶端響應(yīng)用戶的數(shù)據(jù)查詢操作生成的;
4、根據(jù)所述第一查詢指令,從預(yù)設(shè)存儲空間的行鍵列表中查詢第一目標(biāo)行鍵,并根據(jù)所述第一目標(biāo)行鍵,從預(yù)設(shè)數(shù)據(jù)庫中查詢所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù),并將所述第一報(bào)文數(shù)據(jù)發(fā)送給所述客戶端;
5、接收客戶端發(fā)送的針對所述目標(biāo)車輛的第二查詢指令,所述第二查詢指令為所述客戶端響應(yīng)用戶的翻頁操作生成的;
6、根據(jù)所述第二查詢指令,以所述第一目標(biāo)行鍵作為參考,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù),并將所述第二報(bào)文數(shù)據(jù)發(fā)送給所述客戶端。
7、可選地,在查詢到所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù)之后,所述方法還包括:
8、根據(jù)所述第一查詢指令對應(yīng)的查詢條件,判斷所述第一報(bào)文數(shù)據(jù)是否是所述第一查詢指令所要查詢的全部報(bào)文數(shù)據(jù);
9、若所述第一報(bào)文數(shù)據(jù)不是所述第一查詢指令所要查詢的全部報(bào)文數(shù)據(jù),則將第一報(bào)文數(shù)據(jù)不全的指示信息發(fā)送給所述客戶端,以提醒用戶進(jìn)行詳細(xì)查詢。
10、可選地,在將所述第一報(bào)文數(shù)據(jù)發(fā)送給所述客戶端之后,所述方法還包括:
11、接收客戶端發(fā)送的針對所述目標(biāo)車輛的第三查詢指令,所述第三查詢指令為所述客戶端響應(yīng)用戶的詳細(xì)查詢的操作生成的;
12、根據(jù)所述第三查詢指令,以所述第一查詢指令對應(yīng)的查詢條件和所述第一目標(biāo)行鍵作為參考,從所述預(yù)設(shè)數(shù)據(jù)庫中查詢第三報(bào)文數(shù)據(jù),并將所述第三報(bào)文數(shù)據(jù)返回至所述客戶端,所述第一報(bào)文數(shù)據(jù)和所述第三報(bào)文數(shù)據(jù)為所述第一查詢指令對應(yīng)的全部報(bào)文數(shù)據(jù);
13、將所述第三報(bào)文數(shù)據(jù)按照預(yù)設(shè)時(shí)長劃分為多段,并基于每一段報(bào)文數(shù)據(jù)各自對應(yīng)的第一行報(bào)文數(shù)據(jù),分別為每一段報(bào)文數(shù)據(jù)生成一個(gè)行鍵;
14、將每一段報(bào)文數(shù)據(jù)各自對應(yīng)的行鍵進(jìn)行匯總,得到所述第三報(bào)文數(shù)據(jù)對應(yīng)的第二目標(biāo)行鍵;
15、將所述第二目標(biāo)行鍵與所述第一目標(biāo)行鍵融合,得到更新后的行鍵列表。
16、可選地,所述根據(jù)所述第一查詢指令,從預(yù)設(shè)存儲空間的行鍵列表中查詢第一目標(biāo)行鍵,包括:
17、根據(jù)所述第一查詢指令,確定所述第一查詢指令對應(yīng)的第一查詢條件,所述第一查詢條件包括所述目標(biāo)車輛的車輛識別碼以及查詢起始時(shí)間中的至少一個(gè);
18、根據(jù)所述第一查詢條件,生成初始行鍵;
19、根據(jù)所述初始行鍵,從所述預(yù)設(shè)存儲空間的行鍵列表中查詢所述第一目標(biāo)行鍵。
20、可選地,所述第一目標(biāo)行鍵有多個(gè),所述根據(jù)所述第一目標(biāo)行鍵,從預(yù)設(shè)數(shù)據(jù)庫中查詢所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù),包括:
21、分別根據(jù)每一個(gè)所述第一目標(biāo)行鍵,確定每一個(gè)所述第一目標(biāo)行鍵各自在所述預(yù)設(shè)數(shù)據(jù)庫中的起始位置;
22、根據(jù)每一個(gè)所述第一目標(biāo)行鍵各自在所述預(yù)設(shè)數(shù)據(jù)庫中的起始位置以及所述第一查詢指令,確定每一個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù);
23、將每一個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù)融合并去重,得到所述第一報(bào)文數(shù)據(jù)。
24、可選地,所述方法還包括:
25、分別統(tǒng)計(jì)每一個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù)的數(shù)據(jù)量;
26、根據(jù)各個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù)的數(shù)據(jù)量,得到所述第一報(bào)文數(shù)據(jù)的數(shù)據(jù)總量,并將所述第一報(bào)文數(shù)據(jù)的數(shù)據(jù)總量返回至所述客戶端。
27、可選地,所述根據(jù)所述第二查詢指令,以所述第一目標(biāo)行鍵作為參考,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù),包括:
28、根據(jù)所述第二查詢指令,確定所要查詢的報(bào)文數(shù)據(jù)在所述第一報(bào)文數(shù)據(jù)中的位置;
29、根據(jù)所要查詢的報(bào)文數(shù)據(jù)在所述第一報(bào)文數(shù)據(jù)中的位置,計(jì)算數(shù)據(jù)偏移量;
30、根據(jù)所述數(shù)據(jù)偏移量和所述第一目標(biāo)行鍵,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù)。
31、本技術(shù)第二方面,提供了一種報(bào)文的查詢方法,應(yīng)用于客戶端,所述方法包括:
32、響應(yīng)于用戶的第一查詢操作生成第一查詢指令,并將所述第一查詢指令發(fā)送至服務(wù)器,所述第一查詢操作為數(shù)據(jù)查詢操作;
33、接收所述服務(wù)器返回的響應(yīng)于所述第一查詢指令查詢到的第一報(bào)文數(shù)據(jù),并將所述第一報(bào)文數(shù)據(jù)顯示給用戶;
34、響應(yīng)于用戶的第二查詢操作生成第二查詢指令,并將所述第二查詢指令發(fā)送至所述服務(wù)器,所述第二查詢操作為翻頁操作;
35、接收所述服務(wù)器返回的響應(yīng)于所述第二查詢指令查詢到的第二報(bào)文數(shù)據(jù),并將所述第二報(bào)文數(shù)據(jù)顯示給用戶。
36、本技術(shù)第三方面,提供了一種報(bào)文的查詢系統(tǒng),所述系統(tǒng)包括服務(wù)器和客戶端;
37、所述服務(wù)器,用于接收客戶端發(fā)送的針對目標(biāo)車輛報(bào)文的第一查詢指令,所述第一查詢指令為所述客戶端響應(yīng)用戶的數(shù)據(jù)查詢操作生成的;根據(jù)所述第一查詢指令,從預(yù)設(shè)存儲空間的行鍵列表中查詢第一目標(biāo)行鍵,并根據(jù)所述第一目標(biāo)行鍵,從預(yù)設(shè)數(shù)據(jù)庫中查詢所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù),并將所述第一報(bào)文數(shù)據(jù)發(fā)送給所述客戶端;
38、所述客戶端,用于接收所述服務(wù)器返回的響應(yīng)于所述第一查詢指令查詢到的第一報(bào)文數(shù)據(jù),并將所述第一報(bào)文數(shù)據(jù)顯示給用戶;
39、所述服務(wù)器,用于接收客戶端發(fā)送的針對所述目標(biāo)車輛的第二查詢指令,所述第二查詢指令為所述客戶端響應(yīng)用戶的翻頁操作生成的;根據(jù)所述第二查詢指令,以所述第一目標(biāo)行鍵作為參考,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù),并將所述第二報(bào)文數(shù)據(jù)發(fā)送給所述客戶端;
40、所述客戶端,用于接收所述服務(wù)器返回的響應(yīng)于所述第二查詢指令查詢到的第二報(bào)文數(shù)據(jù),并將所述第二報(bào)文數(shù)據(jù)顯示給用戶。
41、本技術(shù)第四方面,提供了一種報(bào)文的查詢裝置,應(yīng)用于服務(wù)器,所述裝置包括:
42、第一接收模塊,用于接收客戶端發(fā)送的針對目標(biāo)車輛報(bào)文的第一查詢指令,所述第一查詢指令為所述客戶端響應(yīng)用戶的數(shù)據(jù)查詢操作生成的;
43、查詢模塊,用于根據(jù)所述第一查詢指令,從預(yù)設(shè)存儲空間的行鍵列表中查詢第一目標(biāo)行鍵,并根據(jù)所述第一目標(biāo)行鍵,從預(yù)設(shè)數(shù)據(jù)庫中查詢所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù),并將所述第一報(bào)文數(shù)據(jù)發(fā)送給所述客戶端;
44、第二接收模塊,用于接收客戶端發(fā)送的針對所述目標(biāo)車輛的第二查詢指令,所述第二查詢指令為所述客戶端響應(yīng)用戶的翻頁操作生成的;
45、確定模塊,用于根據(jù)所述第二查詢指令,以所述第一目標(biāo)行鍵作為參考,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù),并將所述第二報(bào)文數(shù)據(jù)發(fā)送給所述客戶端。
46、可選地,在查詢到所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù)之后,所述系統(tǒng)還包括:
47、判斷子模塊,用于根據(jù)所述第一查詢指令對應(yīng)的查詢條件,判斷所述第一報(bào)文數(shù)據(jù)是否是所述第一查詢指令所要查詢的全部報(bào)文數(shù)據(jù);
48、發(fā)送子模塊,用于若所述第一報(bào)文數(shù)據(jù)不是所述第一查詢指令所要查詢的全部報(bào)文數(shù)據(jù),則將第一報(bào)文數(shù)據(jù)不全的指示信息發(fā)送給所述客戶端,以提醒用戶進(jìn)行詳細(xì)查詢。
49、可選地,在將所述第一報(bào)文數(shù)據(jù)發(fā)送給所述客戶端之后,所述系統(tǒng)還包括:
50、接收子單元,用于接收客戶端發(fā)送的針對所述目標(biāo)車輛的第三查詢指令,所述第三查詢指令為所述客戶端響應(yīng)用戶的詳細(xì)查詢的操作生成的;
51、查詢子單元,用于根據(jù)所述第三查詢指令,以所述第一查詢指令對應(yīng)的查詢條件和所述第一目標(biāo)行鍵作為參考,從所述預(yù)設(shè)數(shù)據(jù)庫中查詢第三報(bào)文數(shù)據(jù),并將所述第三報(bào)文數(shù)據(jù)返回至所述客戶端,所述第一報(bào)文數(shù)據(jù)和所述第三報(bào)文數(shù)據(jù)為所述第一查詢指令對應(yīng)的全部報(bào)文數(shù)據(jù);
52、生成子單元,用于將所述第三報(bào)文數(shù)據(jù)按照預(yù)設(shè)時(shí)長劃分為多段,并基于每一段報(bào)文數(shù)據(jù)各自對應(yīng)的第一行報(bào)文數(shù)據(jù),分別為每一段報(bào)文數(shù)據(jù)生成一個(gè)行鍵;
53、匯總子單元,用于將每一段報(bào)文數(shù)據(jù)各自對應(yīng)的行鍵進(jìn)行匯總,得到所述第三報(bào)文數(shù)據(jù)對應(yīng)的第二目標(biāo)行鍵;
54、融合子單元,用于將所述第二目標(biāo)行鍵與所述第一目標(biāo)行鍵融合,得到更新后的行鍵列表。
55、可選地,所述根據(jù)所述第一查詢指令,從預(yù)設(shè)存儲空間的行鍵列表中查詢第一目標(biāo)行鍵,所述查詢模塊,包括:
56、第一確定子模塊,用于根據(jù)所述第一查詢指令,確定所述第一查詢指令對應(yīng)的第一查詢條件,所述第一查詢條件包括所述目標(biāo)車輛的車輛識別碼以及查詢起始時(shí)間中的至少一個(gè);
57、生成子模塊,用于根據(jù)所述第一查詢條件,生成初始行鍵;
58、第一查詢子模塊,用于根據(jù)所述初始行鍵,從所述預(yù)設(shè)存儲空間的行鍵列表中查詢所述第一目標(biāo)行鍵。
59、可選地,所述第一目標(biāo)行鍵有多個(gè),所述根據(jù)所述第一目標(biāo)行鍵,從預(yù)設(shè)數(shù)據(jù)庫中查詢所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù),所述查詢模塊,包括:
60、第二確定子模塊,用于分別根據(jù)每一個(gè)所述第一目標(biāo)行鍵,確定每一個(gè)所述第一目標(biāo)行鍵各自在所述預(yù)設(shè)數(shù)據(jù)庫中的起始位置;
61、第三確定子模塊,用于根據(jù)每一個(gè)所述第一目標(biāo)行鍵各自在所述預(yù)設(shè)數(shù)據(jù)庫中的起始位置以及所述第一查詢指令,確定每一個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù);
62、融合去重子模塊,用于將每一個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù)融合并去重,得到所述第一報(bào)文數(shù)據(jù)。
63、可選地,所述系統(tǒng)還包括:
64、統(tǒng)計(jì)子模塊,用于分別統(tǒng)計(jì)每一個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù)的數(shù)據(jù)量;
65、返回子模塊,用于根據(jù)各個(gè)所述第一目標(biāo)行鍵各自對應(yīng)的報(bào)文數(shù)據(jù)的數(shù)據(jù)量,得到所述第一報(bào)文數(shù)據(jù)的數(shù)據(jù)總量,并將所述第一報(bào)文數(shù)據(jù)的數(shù)據(jù)總量返回至所述客戶端。
66、可選地,所述根據(jù)所述第二查詢指令,以所述第一目標(biāo)行鍵作為參考,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù),所述確定模塊,包括:
67、第四確定子模塊,用于根據(jù)所述第二查詢指令,確定所要查詢的報(bào)文數(shù)據(jù)在所述第一報(bào)文數(shù)據(jù)中的位置;
68、計(jì)算子模塊,用于根據(jù)所要查詢的報(bào)文數(shù)據(jù)在所述第一報(bào)文數(shù)據(jù)中的位置,計(jì)算數(shù)據(jù)偏移量;
69、第五確定子模塊,用于根據(jù)所述數(shù)據(jù)偏移量和所述第一目標(biāo)行鍵,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù)。
70、本技術(shù)第五方面,提供了一種報(bào)文的查詢裝置,應(yīng)用于客戶端,所述裝置包括:
71、第一生成模塊,用于響應(yīng)于用戶的第一查詢操作生成第一查詢指令,并將所述第一查詢指令發(fā)送至服務(wù)器,所述第一查詢操作為數(shù)據(jù)查詢操作;
72、第三接收模塊,用于接收所述服務(wù)器返回的響應(yīng)于所述第一查詢指令查詢到的第一報(bào)文數(shù)據(jù),并將所述第一報(bào)文數(shù)據(jù)顯示給用戶;
73、第二生成模塊,用于響應(yīng)于用戶的第二查詢操作生成第二查詢指令,并將所述第二查詢指令發(fā)送至所述服務(wù)器,所述第二查詢操作為翻頁操作;
74、第四接收模塊,用于接收所述服務(wù)器返回的響應(yīng)于所述第二查詢指令查詢到的第二報(bào)文數(shù)據(jù),并將所述第二報(bào)文數(shù)據(jù)顯示給用戶。
75、本技術(shù)第六方面,提供了一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序以實(shí)現(xiàn)如本技術(shù)第一方面所述的報(bào)文的查詢方法或執(zhí)行如本技術(shù)第二方面所述的報(bào)文的查詢方法。
76、本技術(shù)的有益效果:
77、本技術(shù)提供了一種報(bào)文的查詢方法,所述方法包括:接收客戶端發(fā)送的針對目標(biāo)車輛報(bào)文的第一查詢指令,所述第一查詢指令為所述客戶端響應(yīng)用戶的數(shù)據(jù)查詢操作生成的;根據(jù)所述第一查詢指令,從預(yù)設(shè)存儲空間的行鍵列表中查詢第一目標(biāo)行鍵,并根據(jù)所述第一目標(biāo)行鍵,從預(yù)設(shè)數(shù)據(jù)庫中查詢所述第一目標(biāo)行鍵對應(yīng)的第一報(bào)文數(shù)據(jù),并將所述第一報(bào)文數(shù)據(jù)發(fā)送給所述客戶端;接收客戶端發(fā)送的針對所述目標(biāo)車輛的第二查詢指令,所述第二查詢指令為所述客戶端響應(yīng)用戶的翻頁操作生成的;根據(jù)所述第二查詢指令,以所述第一目標(biāo)行鍵作為參考,從所述第一報(bào)文數(shù)據(jù)中確定所述第二查詢指令對應(yīng)的第二報(bào)文數(shù)據(jù),并將所述第二報(bào)文數(shù)據(jù)發(fā)送給所述客戶端。
78、本技術(shù)通過接收客戶端的查詢指令,利用預(yù)設(shè)存儲空間中的行鍵列表,快速定位并查詢目標(biāo)車輛的報(bào)文數(shù)據(jù)。在首次查詢時(shí),根據(jù)行鍵精確定位第一報(bào)文數(shù)據(jù),并返回給客戶端;對于后續(xù)的翻頁操作,通過前一次查詢的行鍵作為參考,迅速確定并返回第二次查詢的第二報(bào)文數(shù)據(jù)。通過行鍵直接定位數(shù)據(jù),避免了大范圍的掃描操作,提高了查詢和翻頁效率;利用前后關(guān)聯(lián)的行鍵優(yōu)化翻頁查詢,減少了重復(fù)計(jì)算的負(fù)擔(dān);同時(shí),能夠在大規(guī)模數(shù)據(jù)查詢中降低服務(wù)器壓力,提升響應(yīng)速度,從而改善用戶體驗(yàn)。