基于云平臺的定位解算方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于云平臺的定位解算方法和系統(tǒng),涉及定位領(lǐng)域。本發(fā)明對于海量定位請求,將每個定位請求轉(zhuǎn)換為每個用戶的定位解算任務(wù),并且采用MapReduce并行計算技術(shù)同時執(zhí)行定位解算任務(wù),然后同時輸出每個定位解算任務(wù)相應(yīng)的定位結(jié)果,從而提高定位解算系統(tǒng)的并發(fā)處理能力,為數(shù)百萬用戶提供定位服務(wù)。
【專利說明】基于云平臺的定位解算方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及定位領(lǐng)域,特別涉及一種基于云平臺的定位解算方法和系統(tǒng)。
【背景技術(shù)】
[0002] 定位數(shù)據(jù)解算系統(tǒng)需要采集室內(nèi)外海量定位數(shù)據(jù),定位數(shù)據(jù)的存儲規(guī)模往往高達 TB (Terabyte,萬億字節(jié))級別,并且還需要為數(shù)百萬用戶提供定位服務(wù)。如何實現(xiàn)海量數(shù) 據(jù)的存儲,并且及時響應(yīng)數(shù)百萬甚至更多用戶的并發(fā)定位服務(wù)請求,是定位數(shù)據(jù)解算系統(tǒng) 面臨的技術(shù)挑戰(zhàn)。
[0003] 傳統(tǒng)的定位解算技術(shù)采用的是主機方案,即小型機+磁盤陣列的方案,單個小型 機的CPU和內(nèi)存能力有限,而且還有網(wǎng)絡(luò)和硬盤I/O瓶頸,因此并發(fā)處理能力不足。
[0004] 由于傳統(tǒng)主機方案的處理能力有限,只能支持數(shù)百個用戶的并發(fā)定位服務(wù)請求, 不適用于海量定位數(shù)據(jù)解算系統(tǒng)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施例所要解決的一個技術(shù)問題是:解決現(xiàn)有定位數(shù)據(jù)解算系統(tǒng)并發(fā)處理 能力不足的問題。
[0006] 根據(jù)本發(fā)明實施例的一個方面,提出一種基于云平臺的定位解算方法,包括: 接收輸入的海量的定位請求;將每個定位請求轉(zhuǎn)換為每個用戶的定位解算任務(wù),并采用 MapReduce并行計算技術(shù)同時執(zhí)行定位解算任務(wù);同時輸出每個定位解算任務(wù)相應(yīng)的定位 結(jié)果。
[0007] 所述采用MapReduce并行計算技術(shù)同時執(zhí)行定位解算任務(wù)包括:讀取任一定位請 求攜帶的接入點列表信息,接入點列表信息包括接入點地址信息和接入點場強信息;掃描 樓宇數(shù)據(jù)表,通過接入點地址信息定位出樓宇標識;基于定位出的樓宇標識,進行指紋匹 配;根據(jù)指紋匹配結(jié)果解算出最優(yōu)定位結(jié)果。
[0008] 所述樓宇數(shù)據(jù)表采用行存儲HIVE數(shù)據(jù)表,數(shù)據(jù)結(jié)構(gòu)為:字段={接入點地址信息, 接入點地址信息所在的樓宇標識}。
[0009] 所述基于定位出的樓宇標識,進行指紋匹配包括:基于定位出的樓宇標識,判斷 該樓宇是否為熱數(shù)據(jù),如果該樓宇是熱數(shù)據(jù),在內(nèi)存中進行指紋匹配,如果該樓宇不是熱數(shù) 據(jù),在指紋庫中進行指紋匹配。
[0010] 基于云平臺的定位解算方法還包括:采用MemoryCache數(shù)據(jù)緩存技術(shù),將熱數(shù)據(jù) 加載到內(nèi)存中。
[0011] 所述指紋庫采用列存儲HBASE數(shù)據(jù)表,數(shù)據(jù)結(jié)構(gòu)為:主鍵為網(wǎng)格的位置信息,列為 接入點地址信息,列值為接入點場強信息。
[0012] 根據(jù)本發(fā)明實施例的再一個方面,提出一種基于云平臺的定位解算系統(tǒng),包括:輸 入單元,用于接收輸入的海量的定位請求;解算單元,用于將每個定位請求轉(zhuǎn)換為每個用戶 的定位解算任務(wù),并采用MapReduce并行計算技術(shù)同時執(zhí)行定位解算任務(wù);輸出單元,用于 同時輸出每個定位解算任務(wù)相應(yīng)的定位結(jié)果。
[0013] 所述解算單元,具體用于:讀取任一定位請求攜帶的接入點列表信息,接入點列表 信息包括接入點地址信息和接入點場強信息;掃描樓宇數(shù)據(jù)表,通過接入點地址信息定位 出樓宇標識;基于定位出的樓宇標識,進行指紋匹配;根據(jù)指紋匹配結(jié)果解算出最優(yōu)定位 結(jié)果。
[0014] 所述樓宇數(shù)據(jù)表采用行存儲HIVE數(shù)據(jù)表,數(shù)據(jù)結(jié)構(gòu)為:字段={接入點地址信息, 接入點地址信息所在的樓宇標識}。
[0015] 所述解算單元指紋匹配時具體用于:基于定位出的樓宇標識,判斷該樓宇是否為 熱數(shù)據(jù),如果該樓宇是熱數(shù)據(jù),在內(nèi)存中進行指紋匹配,如果該樓宇不是熱數(shù)據(jù),在指紋庫 中進行指紋匹配。
[0016] 定位解算系統(tǒng)還包括:緩存單元,用于采用MemoryCache數(shù)據(jù)緩存技術(shù),將熱數(shù)據(jù) 加載到內(nèi)存中。
[0017] 所述指紋庫采用列存儲HBASE數(shù)據(jù)表,數(shù)據(jù)結(jié)構(gòu)為:主鍵為網(wǎng)格的位置信息,列為 接入點地址信息,列值為接入點場強信息。
[0018] 本發(fā)明具有以下優(yōu)點:
[0019] 首先,對于海量定位請求,將每個定位請求轉(zhuǎn)換為每個用戶的定位解算任務(wù),并且 采用MapReduce并行計算技術(shù)同時執(zhí)行定位解算任務(wù),然后同時輸出每個定位解算任務(wù)相 應(yīng)的定位結(jié)果,從而提高定位解算系統(tǒng)的并發(fā)處理能力,為數(shù)百萬用戶提供定位服務(wù)。
[0020] 其次,對于用戶經(jīng)常訪問的樓宇數(shù)據(jù),即熱數(shù)據(jù),采用MemoryCache數(shù)據(jù)緩存技術(shù) 加載到內(nèi)存中,隨機查詢熱數(shù)據(jù)時可以直接從內(nèi)存中讀取而不需要從指紋庫中讀取,從而 提高數(shù)據(jù)訪問速度,確保數(shù)據(jù)查詢的實時性。并且,與單個主機利用自己的內(nèi)存提供緩存功 能不同,本發(fā)明的MemoryCache數(shù)據(jù)緩存技術(shù)是利用多臺機器的內(nèi)存組成一個大容量的內(nèi) 存堆,可以有效解決海量數(shù)據(jù)的快速訪問問題,保證數(shù)百萬用戶并發(fā)實時查詢的效率。
[0021] 最后,指紋庫采用HBASE列存儲的分布式數(shù)據(jù)倉庫實現(xiàn)海量數(shù)據(jù)的存儲和高速訪 問,可以提供毫秒級數(shù)據(jù)查詢。
[0022] 通過以下參照附圖對本發(fā)明的示例性實施例的詳細描述,本發(fā)明的其它特征及其 優(yōu)點將會變得清楚。
【專利附圖】
【附圖說明】
[0023] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。
[0024] 圖1為本發(fā)明基于云平臺的定位解算方法一個實施例的流程示意圖。
[0025] 圖2為本發(fā)明采用MapReduce并行計算技術(shù)同時執(zhí)行定位解算任務(wù)一個實施例的 流程示意圖。
[0026] 圖3為本發(fā)明基于云平臺的定位解算系統(tǒng)一個實施例的結(jié)構(gòu)示意圖。
[0027] 圖4為本發(fā)明基于云平臺的定位解算系統(tǒng)再一個實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0028] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。以下 對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發(fā)明及其應(yīng)用或使 用的任何限制?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提 下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0029] 為了解決現(xiàn)有定位數(shù)據(jù)解算系統(tǒng)并發(fā)處理能力不足的問題,本發(fā)明提出一種面對 海量數(shù)據(jù)的定位解算技術(shù)。本發(fā)明提出的定位解算技術(shù)是一種基于云平臺的定位解算技 術(shù),該云平臺例如可以是hadoop云平臺,hadoop是一種開源的云計算平臺。下面詳細說明 本發(fā)明的定位解算方案。
[0030] 圖1為本發(fā)明基于云平臺的定位解算方法一個實施例的流程示意圖。
[0031] 如圖1所示,本實施例基于云平臺的定位解算方法可以由定位解算系統(tǒng)執(zhí)行,具 體可以包括以下步驟:
[0032] S101,接收輸入的海量的定位請求。
[0033] 其中,本發(fā)明中的"海量"是針對云平臺的定位請求量來說的,例如可以是百萬數(shù) 量級,甚至更高,如萬億(TB)數(shù)量級。
[0034] 其中,定位請求通常攜帶接入點列表信息,接入點列表信息包括接入點地址信息 和接入點場強信息。接入點地址信息例如可以是接入點MAC (Media Access Control,介 質(zhì)訪問控制)地址,接入點場強信息例如可以是接入點RSSI (Received Signal Strength Indication,接收信號強度指示)。另外,接入點列表中可以包括一項或多項接入點地址信 息及其對應(yīng)的接入點場強信息?;诙囗椊尤朦c地址信息及其對應(yīng)的接入點場強信息的定 位可以提供更準確的定位結(jié)果。
[0035] S102,將每個定位請求轉(zhuǎn)換為每個用戶的定位解算任務(wù),并采用MapReduce并行 計算技術(shù)同時執(zhí)行定位解算任務(wù)。本步驟為本發(fā)明的核心,后續(xù)將詳細說明其實現(xiàn)過程。
[0036] 其中,MapReduce是一個軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集(如1TB及以上數(shù)據(jù))的并 行運算。"Map"是指定一個Map (映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對。 "Reduce"是指定并發(fā)的Reduce (化簡)函數(shù),用來保證所有映射的鍵值對中的每一個共享 相同的鍵組。
[0037] S103,同時輸出每個定位解算任務(wù)相應(yīng)的定位結(jié)果,從而完成定位解算過程。
[0038] 下面結(jié)合圖2對步驟S102的一種示例性實施方式進行說明。
[0039] 如圖2所示,采用MapReduce并行計算技術(shù)同時執(zhí)行定位解算任務(wù),每一定位解 算任務(wù)的執(zhí)行過程大體相同,對于其中任一定位解算任務(wù)來說,解算過程可以包括以下步 驟:
[0040] S201,讀取任一定位請求攜帶的接入點列表信息,接入點列表信息包括接入點地 址信息和接入點場強信息等。接入點列表信息的相關(guān)描述可以參考前述步驟S101,這里不 再贅述。
[0041] S202,掃描樓宇數(shù)據(jù)表,通過定位請求攜帶的接入點地址信息定位出樓宇標識。
[0042] 其中,樓宇數(shù)據(jù)表用于樓宇定位,為了實現(xiàn)快速定位,樓宇數(shù)據(jù)表可以采用行存儲 HIVE數(shù)據(jù)表,數(shù)據(jù)結(jié)構(gòu)為:字段={:接入點地址信息,接入點地址信息所在的樓宇標識},如 表1所示,該數(shù)據(jù)結(jié)構(gòu)可以表示為:字段= {AP,樓宇I(lǐng)D},一個AP對應(yīng)一個樓宇I(lǐng)D。HIVE是 分布式運行,多個節(jié)點同時進行數(shù)據(jù)計算。HIVE提供了一套SQL (結(jié)構(gòu)化查詢語言)的查詢 語言,以sql為基礎(chǔ),使得查詢簡單化。
[0043] 其中一種示例性實施方式,可以采用Key-Value方式掃描樓宇數(shù)據(jù)表,Key-Value 方式是一種快速匹配查詢方式,Key類似數(shù)據(jù)庫中的index (索引)主鍵,其中每個AP作為 Key (主鍵)保存,而樓宇I(lǐng)D作為Value (值),掃描樓宇數(shù)據(jù)表中的AP信息,直接通過這些 AP就能快速查詢到對應(yīng)的樓宇。
[0044] 表1樓宇數(shù)據(jù)表
[0045]
【權(quán)利要求】
1. 一種基于云平臺的定位解算方法,包括: 接收輸入的海量的定位請求; 將每個定位請求轉(zhuǎn)換為每個用戶的定位解算任務(wù),并采用MapReduce并行計算技術(shù)同 時執(zhí)行定位解算任務(wù); 同時輸出每個定位解算任務(wù)相應(yīng)的定位結(jié)果。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用MapReduce并行計算技術(shù)同時執(zhí) 行定位解算任務(wù)包括: 讀取任一定位請求攜帶的接入點列表信息,接入點列表信息包括接入點地址信息和接 入點場強信息; 掃描樓宇數(shù)據(jù)表,通過接入點地址信息定位出樓宇標識; 基于定位出的樓宇標識,進行指紋匹配; 根據(jù)指紋匹配結(jié)果解算出最優(yōu)定位結(jié)果。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述樓宇數(shù)據(jù)表采用行存儲HIVE數(shù)據(jù)表, 數(shù)據(jù)結(jié)構(gòu)為:字段={接入點地址信息,接入點地址信息所在的樓宇標識}。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于定位出的樓宇標識,進行指紋匹 配包括: 基于定位出的樓宇標識,判斷該樓宇是否為熱數(shù)據(jù),如果該樓宇是熱數(shù)據(jù),在內(nèi)存中進 行指紋匹配,如果該樓宇不是熱數(shù)據(jù),在指紋庫中進行指紋匹配。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法還包括:采用MemoryCache數(shù)據(jù)緩 存技術(shù),將熱數(shù)據(jù)加載到內(nèi)存中。
6. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述指紋庫采用列存儲HBASE數(shù)據(jù)表,數(shù) 據(jù)結(jié)構(gòu)為:主鍵為網(wǎng)格的位置信息,列為接入點地址信息,列值為接入點場強信息。
7. -種基于云平臺的定位解算系統(tǒng),包括: 輸入單元,用于接收輸入的海量的定位請求; 解算單元,用于將每個定位請求轉(zhuǎn)換為每個用戶的定位解算任務(wù),并采用MapReduce 并行計算技術(shù)同時執(zhí)行定位解算任務(wù); 輸出單元,用于同時輸出每個定位解算任務(wù)相應(yīng)的定位結(jié)果。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述解算單元,具體用于: 讀取任一定位請求攜帶的接入點列表信息,接入點列表信息包括接入點地址信息和接 入點場強信息; 掃描樓宇數(shù)據(jù)表,通過接入點地址信息定位出樓宇標識; 基于定位出的樓宇標識,進行指紋匹配; 根據(jù)指紋匹配結(jié)果解算出最優(yōu)定位結(jié)果。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述樓宇數(shù)據(jù)表采用行存儲HIVE數(shù)據(jù)表, 數(shù)據(jù)結(jié)構(gòu)為:字段={接入點地址信息,接入點地址信息所在的樓宇標識}。
10. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述解算單元指紋匹配時具體用于: 基于定位出的樓宇標識,判斷該樓宇是否為熱數(shù)據(jù),如果該樓宇是熱數(shù)據(jù),在內(nèi)存中進 行指紋匹配,如果該樓宇不是熱數(shù)據(jù),在指紋庫中進行指紋匹配。
11. 根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,該系統(tǒng)還包括:緩存單元,用于采用 MemoryCache數(shù)據(jù)緩存技術(shù),將熱數(shù)據(jù)加載到內(nèi)存中。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述指紋庫采用列存儲HBASE數(shù)據(jù)表, 數(shù)據(jù)結(jié)構(gòu)為:主鍵為網(wǎng)格的位置信息,列為接入點地址信息,列值為接入點場強信息。
【文檔編號】G06F17/30GK104424189SQ201310363080
【公開日】2015年3月18日 申請日期:2013年8月20日 優(yōu)先權(quán)日:2013年8月20日
【發(fā)明者】劉源, 孫智強, 邵齊海, 羅智勇 申請人:中國電信集團公司