何 歡,李高云,曠生玉,江 果,王冠華
(中國電子科技集團(tuán)公司第二十九研究所,四川成都 610036)
電子偵察是一種典型的無源偵察,即被動(dòng)接收對方輻射源發(fā)射的電磁波信號,經(jīng)信號級處理后得到電磁偵察數(shù)據(jù),該數(shù)據(jù)屬于典型的時(shí)序數(shù)據(jù),內(nèi)容包括時(shí)間戳、參數(shù)信息、空間信息和屬性信息等。眾多類型的偵察設(shè)備在各個(gè)時(shí)刻對當(dāng)面范圍目標(biāo)進(jìn)行探測,單日形成數(shù)億條、TB 級的海量時(shí)間序列大數(shù)據(jù),匯總后需要對其進(jìn)行高效存儲(chǔ),并要求存儲(chǔ)方式具有可擴(kuò)展性,以應(yīng)對數(shù)據(jù)量隨時(shí)間與日俱增的需求,方便后續(xù)利用人工智能、大數(shù)據(jù)分析等新興技術(shù)手段,提供高效的數(shù)據(jù)支撐,實(shí)現(xiàn)對數(shù)據(jù)潛在價(jià)值的挖掘和應(yīng)用。
針對電磁大數(shù)據(jù)的特點(diǎn)和處理需求,臧維明等人研究了電磁大數(shù)據(jù)挖掘分析架構(gòu),提出了電磁大數(shù)據(jù)混合存儲(chǔ)架構(gòu),滿足多來源、多屬性、多類型、多專業(yè)、小樣本、開環(huán)非配合、博弈規(guī)則不確定等典型特征的數(shù)據(jù)存儲(chǔ)治理需求。陳學(xué)淵等考慮電磁數(shù)據(jù)的跨域特性,研究了跨地域環(huán)境下的電磁數(shù)據(jù)分布式存儲(chǔ)架構(gòu)。業(yè)界Apache 基金會(huì)頂級項(xiàng)目HBase存儲(chǔ)方案,基于HDFS的開源、分布式、列式數(shù)據(jù)存儲(chǔ),是對Google 的Big Table的 開 源 實(shí) 現(xiàn),具 有 可 伸 縮、高 可靠性、高性能、行鍵單一索引等特點(diǎn),作為一個(gè)成熟的非關(guān)系型數(shù)據(jù)庫,已成功用于金融、交通、電網(wǎng)等大數(shù)據(jù)存儲(chǔ)領(lǐng)域。上述研究為電磁偵察大數(shù)據(jù)存儲(chǔ)設(shè)計(jì)提供了很好的借鑒。
本文首先分析了電磁偵察大數(shù)據(jù)的特點(diǎn)和關(guān)系型、非關(guān)系型數(shù)據(jù)庫2 種存儲(chǔ)方案的優(yōu)劣,然后結(jié)合按目標(biāo)、按區(qū)域和按時(shí)間范圍查詢的典型應(yīng)用需求,討論HBase 表設(shè)計(jì)的3 種方案,最后結(jié)合實(shí)際工程項(xiàng)目驗(yàn)證HBase 存儲(chǔ)和查詢大數(shù)據(jù)的有效性,旨在為電磁偵察大數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn)提供參考。
電磁偵察數(shù)據(jù)是典型的時(shí)序數(shù)據(jù),內(nèi)容包括時(shí)間戳、參數(shù)信息、空間信息和屬性信息等。以雷達(dá)對抗為例,雷達(dá)對抗偵察設(shè)備實(shí)時(shí)接收雷達(dá)電磁波信號,從裝備毫秒級中頻、全脈沖處理,到區(qū)域、總部級關(guān)聯(lián)、融合處理后,逐級積累形成TB 級、千萬甚至上億行的多源、異構(gòu)和跨域的海量電磁偵察結(jié)論數(shù)據(jù)。本文主要討論融合后的電磁偵察結(jié)論數(shù)據(jù)特點(diǎn)。海量電磁偵察數(shù)據(jù)表現(xiàn)出以下幾方面的特征:
1)數(shù)據(jù)項(xiàng)維度繁多
電磁偵察數(shù)據(jù)在識別、關(guān)聯(lián)和定位等處理后,通常能表征雷達(dá)射頻、重復(fù)周期、脈寬、掃描周期等多種參數(shù)、型號、用途、工作模式等設(shè)備信息,搭載平臺類型、型號、國別、敵我等屬性信息,經(jīng)度、維度、高度、速度、航向、航速等空間信息,處理時(shí)間、上報(bào)裝備等元數(shù)據(jù),使得電磁偵察數(shù)據(jù)表征維度廣、內(nèi)涵深。
2)數(shù)據(jù)量巨大
一個(gè)輻射源,通常被多個(gè)偵察設(shè)備以毫秒級的節(jié)拍截獲形成全脈沖信號,每個(gè)設(shè)備對接收到的信號進(jìn)行統(tǒng)一編號,并逐級上報(bào)到上一層處理系統(tǒng)。在上一層信息處理系統(tǒng)中,匯集所有電磁偵察數(shù)據(jù),集合在一起形成海量歷史偵察數(shù)據(jù)。隨著多源異構(gòu)偵察數(shù)據(jù)的積累,歷史數(shù)據(jù)通常超過千萬行,形成一張千萬級甚至上億行、幾十列甚至上百列的大表。
3)數(shù)據(jù)項(xiàng)不規(guī)范
雷達(dá)體制多變、信號復(fù)雜,信號級的分選處理可能出現(xiàn)錯(cuò)誤,導(dǎo)致參數(shù)解析不完整;關(guān)聯(lián)性弱或者關(guān)聯(lián)數(shù)據(jù)無法引入,導(dǎo)致空間信息的殘缺;識別庫的不完整也會(huì)使得型號、平臺等屬性信息無法得到。綜合影響下,電磁偵察數(shù)據(jù)可能出現(xiàn)信息殘缺、不一致的情況,需要完善的預(yù)處理和治理流程。殘缺不完整的半結(jié)構(gòu)化數(shù)據(jù)匯集成海量歷史數(shù)據(jù),使得數(shù)據(jù)整體上表現(xiàn)出稀疏二維矩陣的特點(diǎn)。
傳統(tǒng)關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)集中存儲(chǔ)在一個(gè)數(shù)據(jù)服務(wù)器中,存儲(chǔ)能力有限且不易擴(kuò)展。關(guān)系型數(shù)據(jù)庫的事務(wù)性、完整性和規(guī)范性等特征使海量數(shù)據(jù)存儲(chǔ)和查詢時(shí)CPU 和IO 負(fù)載急速上升,成為應(yīng)用的最大瓶頸。關(guān)系型數(shù)據(jù)庫通常采用讀寫分離、緩存、更加昂貴的硬件、分庫分表等方法部分地解決這些問題,但同時(shí)會(huì)引入降低一致性、刪除輔助索引、運(yùn)維困難等一系列新的問題。
關(guān)系型數(shù)據(jù)庫需要根據(jù)數(shù)據(jù)特點(diǎn)預(yù)先明確數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)數(shù)據(jù)模式,在一定程度上,這種預(yù)先定義的方法限制了數(shù)據(jù)之間的關(guān)系、限定了數(shù)據(jù)存儲(chǔ)的方式,而大數(shù)據(jù)挖掘分析的本質(zhì)卻是在預(yù)先不知道數(shù)據(jù)之間的關(guān)系的情況下,挖掘數(shù)據(jù)內(nèi)涵,在分析過程中提取價(jià)值,即數(shù)據(jù)模式是在分析過程中確定的而不是預(yù)先確定的;其次,關(guān)系型數(shù)據(jù)庫多用于回答確定性的問題,通過級聯(lián)查詢獲取精確的結(jié)果,而電磁偵察大數(shù)據(jù)分析多用于通過相關(guān)分析得到數(shù)據(jù)之間隱藏的關(guān)聯(lián)性,如空間和參數(shù)使用的聯(lián)合關(guān)系等,并利用這種關(guān)聯(lián)性進(jìn)行預(yù)測;同時(shí),多源異構(gòu)的電磁偵察大數(shù)據(jù)通常是稀疏數(shù)據(jù),如果利用關(guān)系型數(shù)據(jù)庫按行存儲(chǔ),則每一行的數(shù)據(jù)缺項(xiàng)會(huì)造成大量的存儲(chǔ)空間浪費(fèi)。
關(guān)系型數(shù)據(jù)庫在存儲(chǔ)電磁偵察大數(shù)據(jù)時(shí)其設(shè)計(jì)方法有一定的局限性,并不適應(yīng)于電磁偵察大數(shù)據(jù)的特點(diǎn),而非關(guān)系型數(shù)據(jù)庫HBase 從物理結(jié)構(gòu)上看,通過一個(gè)主節(jié)點(diǎn)(master node)和個(gè)計(jì)算節(jié)點(diǎn)(data node)的分布式物理結(jié)構(gòu)均衡海量數(shù)據(jù)存儲(chǔ)和查詢時(shí)的CPU 和IO 壓力,使HBase 非常適用于存儲(chǔ)半結(jié)構(gòu)化、非結(jié)構(gòu)化的具有上千萬甚至上億行、上百萬列規(guī)模的海量數(shù)據(jù),計(jì)算節(jié)點(diǎn)極易擴(kuò)展,運(yùn)維簡便。與Hadoop、Spark 等常用分布式存儲(chǔ)和計(jì)算平臺的無縫集成,使應(yīng)用能從HBase 中均衡地獲取數(shù)據(jù),加快分布式計(jì)算的速度。
面向大數(shù)據(jù)的存儲(chǔ)方案可以采用關(guān)系型或者非關(guān)系型數(shù)據(jù)庫,2 種方式各有特點(diǎn),2 種數(shù)據(jù)存儲(chǔ)方案比較如表1 所示。
表1 2 種數(shù)據(jù)存儲(chǔ)方案比較
可見,從存儲(chǔ)方式上分析,采用列式存儲(chǔ)方式的非關(guān)系型數(shù)據(jù)庫HBase 更契合電磁偵察大數(shù)據(jù)的前述特征,更符合大數(shù)據(jù)挖掘應(yīng)用的理念要求,是存儲(chǔ)海量電磁偵察數(shù)據(jù)的首選方式。從數(shù)據(jù)類型上分析,全脈沖數(shù)據(jù)、分選定位數(shù)據(jù)、合批關(guān)聯(lián)數(shù)據(jù)等處理流程過程中的中間結(jié)論,在數(shù)據(jù)特點(diǎn)(維度多、量大、規(guī)范性差)和應(yīng)用需求上,都與電磁偵察結(jié)論數(shù)據(jù)有相似性,所以使用HBase 作為存儲(chǔ)方式具備一定的通用性。
作為一種典型的分布式非關(guān)系型數(shù)據(jù)庫,HBase表設(shè)計(jì)并不遵循規(guī)范性等原則,其表結(jié)構(gòu)主要由行鍵結(jié)構(gòu)決定,行鍵作為索引鍵,數(shù)據(jù)內(nèi)容隨索引一起存儲(chǔ),且根據(jù)行鍵字節(jié)序按順序物理地存儲(chǔ)數(shù)據(jù)。通常根據(jù)數(shù)據(jù)的特點(diǎn)和應(yīng)用查詢的需求設(shè)計(jì)行鍵結(jié)構(gòu)。行鍵設(shè)計(jì)的基本要求是從電磁偵察大數(shù)據(jù)的時(shí)、空、頻、屬性等眾多特征中選擇若干具有特異性的數(shù)據(jù)項(xiàng)設(shè)計(jì)行鍵,使每條數(shù)據(jù)的行鍵唯一;行鍵的設(shè)計(jì)使數(shù)據(jù)在存儲(chǔ)和查詢時(shí)IO 能均衡分布在集群的所有機(jī)器中,不造成數(shù)據(jù)熱點(diǎn);滿足電磁偵察數(shù)據(jù)按時(shí)間遞增、區(qū)域分布廣、時(shí)空頻多維度聯(lián)合表征的特點(diǎn),并根據(jù)查詢的需求設(shè)計(jì)行鍵,滿足快速查詢數(shù)據(jù)的要求。以按型號、空間區(qū)域和時(shí)間范圍三類典型數(shù)據(jù)查詢需求為例,分別采用基于復(fù)合信息、Geohash 編碼和預(yù)分區(qū)策略的行鍵設(shè)計(jì)方法,設(shè)計(jì)目標(biāo)表、空間表和時(shí)間表,充分發(fā)揮HBase 的特點(diǎn),提升存儲(chǔ)和查詢效率。
電磁偵察大數(shù)據(jù)應(yīng)用中最常用的一類數(shù)據(jù)查詢需求是根據(jù)目標(biāo)型號查詢目標(biāo)的歷史數(shù)據(jù)。為了能快速從海量多目標(biāo)數(shù)據(jù)中快速定位到特定目標(biāo)型號的數(shù)據(jù),需要將目標(biāo)型號作為行鍵的第一部分,滿足按目標(biāo)型號快速查詢數(shù)據(jù)的需求。
根據(jù)電磁數(shù)據(jù)的特點(diǎn),為了保證行鍵索引的唯一性,除了目標(biāo)型號外,還需要將目標(biāo)的時(shí)間戳、批號等數(shù)據(jù)的標(biāo)簽信息一起存儲(chǔ)在復(fù)合行鍵中,保證由不同偵察站在不同時(shí)刻偵察到的關(guān)于不同目標(biāo)的數(shù)據(jù)能相互區(qū)分,不會(huì)被存儲(chǔ)到同一行中。
復(fù)合行鍵由多個(gè)部分組成,但各部分的長度不一致,為了能區(qū)分各個(gè)部分的內(nèi)容,采用MD5 定長編碼或者添加下劃線的方式將復(fù)合行鍵的各個(gè)部分區(qū)分,使得查詢時(shí)能準(zhǔn)確區(qū)分復(fù)合行鍵的不同部分。以下劃線區(qū)分的復(fù)合行鍵為例,目標(biāo)表的行鍵設(shè)計(jì)為:平臺型號_雷達(dá)型號_批號_時(shí)間戳_國家地區(qū)。加上列簇和稀疏列等信息,目標(biāo)表的邏輯存儲(chǔ)模型如圖1所示。
圖1 目標(biāo)表邏輯存儲(chǔ)模型圖
復(fù)合行鍵的設(shè)計(jì)既考慮了存儲(chǔ)時(shí)行鍵的唯一性,解決數(shù)據(jù)項(xiàng)重復(fù)的問題,又綜合考慮了查詢業(yè)務(wù)的特點(diǎn),使有殘缺項(xiàng)的海量數(shù)據(jù)在HBase 中能高效地存儲(chǔ)和檢索。
空間信息是電磁偵察數(shù)據(jù)的典型特征,按照任意閉合區(qū)域查詢區(qū)域空間內(nèi)的目標(biāo)是電磁偵察大數(shù)據(jù)應(yīng)用的另一種典型需求。
采用Geohash 編碼來表征電磁偵察數(shù)據(jù)的空間信息。Geohash 編碼將二維經(jīng)緯度聯(lián)合編碼成一維字符串,數(shù)學(xué)模型為:
式中,表示經(jīng)度,表示緯度,映射將二維的聯(lián)合信息通過迭代算法映射到一維的編碼表中,其典型特點(diǎn)是在一定的精度內(nèi)將二維經(jīng)緯度信息聯(lián)合編碼成一維字符串,并保證具有相同前綴的編碼在地理位置上接近。每一個(gè)編碼字符串都對應(yīng)一個(gè)長方形區(qū)域,并保證前綴相同的Geohash 編碼在同一片區(qū)域中,相同前綴的長度越長,距離越近,Geohash 編碼示意如圖2 所示。
圖2 Geohash 編碼示意圖
Geohash 編碼將二維的經(jīng)緯度空間信息壓縮編碼為一維的字符串,使大量連續(xù)的空間點(diǎn)聚類到離散的空間網(wǎng)格中,將傳統(tǒng)大數(shù)據(jù)量的空間位置數(shù)值運(yùn)算變?yōu)榭臻g網(wǎng)格集合的交集、并集等運(yùn)算,減少計(jì)算量,可以用于空間位置建模和搜索等需求。
為了能進(jìn)一步過濾在同一個(gè)區(qū)域內(nèi)的不同目標(biāo),在復(fù)合行鍵中添加目標(biāo)型號和時(shí)間戳等信息,即可使用更精確的條件快速查詢到所需要的數(shù)據(jù),如查詢在某一個(gè)時(shí)間段、某一個(gè)區(qū)域內(nèi)的出現(xiàn)過的特定型號目標(biāo)的歷史數(shù)據(jù)等,使得設(shè)計(jì)具有一定的靈活性。
綜上所述,按下劃線切分法設(shè)計(jì)空間表復(fù)合行鍵為:Geohash_平臺型號_雷達(dá)型號_批號_時(shí)間戳。采用Geohash 編碼作為復(fù)合行鍵的第一部分,根據(jù)HBase 按行鍵字節(jié)序順序存儲(chǔ)數(shù)據(jù)的特點(diǎn),保證了目標(biāo)位置相近的2 個(gè)點(diǎn),它們物理存儲(chǔ)也相鄰,可以快速地查詢地理位置鄰近的數(shù)據(jù)。通過Geohash 編碼描述數(shù)據(jù)的空間經(jīng)緯度信息,配合HBase 的大數(shù)據(jù)存儲(chǔ)能力,能有效地解決電磁偵察海量數(shù)據(jù)查詢業(yè)務(wù)中典型的閉合區(qū)域和定點(diǎn)查詢問題。
電磁偵察數(shù)據(jù)是一種典型的時(shí)序數(shù)據(jù),其每一行代表了某一個(gè)時(shí)間點(diǎn)上的電磁數(shù)據(jù)詳細(xì)信息。時(shí)間戳是典型的遞增式數(shù)據(jù),如不經(jīng)過特殊處理而直接作為行鍵的第一部分,根據(jù)HBase 按行鍵順序排序物理存儲(chǔ)的特性,在存儲(chǔ)時(shí)數(shù)據(jù)會(huì)全部涌向同一個(gè)存儲(chǔ)節(jié)點(diǎn)(region server),造成存儲(chǔ)熱點(diǎn)。在查詢時(shí),按時(shí)間范圍定位起始行鍵和終止行鍵,會(huì)局限在單個(gè)region查詢所有數(shù)據(jù),造成查詢熱點(diǎn)。熱點(diǎn)使得存儲(chǔ)和查詢時(shí)不能利用集群中所有機(jī)器資源,使單臺熱點(diǎn)機(jī)器的CPU 和IO 急速上升。如果將時(shí)間戳通過MD5 編碼后分散存儲(chǔ),雖然不會(huì)造成熱點(diǎn),但不能利用時(shí)間序列遞增的特點(diǎn)來查詢某一段時(shí)間范圍內(nèi)的數(shù)據(jù),不滿足業(yè)務(wù)查詢的要求。
對于電磁偵察數(shù)據(jù)中時(shí)間戳這種遞增數(shù)據(jù)格式,可采用基于預(yù)分區(qū)策略的行鍵設(shè)計(jì)方法。通常采用的預(yù)分區(qū)策略是加入前綴。前綴可以采用時(shí)間戳對集群數(shù)量取余的方法:
式 中,()表示時(shí)間戳,表示集群的機(jī)器數(shù)量,%表示求余運(yùn)算。例如,集群共有3 臺數(shù)據(jù)存儲(chǔ)服務(wù)器,連續(xù)時(shí)間戳的數(shù)據(jù)會(huì)被分散到3 臺region 進(jìn)行存儲(chǔ),達(dá)到均衡存儲(chǔ)的要求。按時(shí)間范圍進(jìn)行查詢時(shí),需要對以0、1、2 為前綴的region 同時(shí)發(fā)起請求,可以采用多線程的方法并行讀取數(shù)據(jù)以獲得更高的查詢效率。求余運(yùn)算使數(shù)據(jù)均衡地分布在集群中,但其擴(kuò)展性不強(qiáng)。如果集群數(shù)量增加,則需要對所有數(shù)據(jù)重新按式(2)的運(yùn)算得到新的前綴。對于可擴(kuò)展性要求較高的場景,也可以采用一致性哈希方法來計(jì)算前綴。
電磁偵察數(shù)據(jù)具有時(shí)效性,近三個(gè)月的數(shù)據(jù)比三年前的數(shù)據(jù)更具有分析價(jià)值。為了使近期的數(shù)據(jù)比歷史數(shù)據(jù)更快被查詢到,除了對時(shí)間戳預(yù)分區(qū)外,還需要使用最大值減去時(shí)間戳:
該變換使連續(xù)遞增的時(shí)間戳變?yōu)檫f減,HBase 按行鍵順序物理存儲(chǔ)數(shù)據(jù)的特性,使得近期時(shí)間的數(shù)據(jù)存儲(chǔ)在更為久遠(yuǎn)的歷史數(shù)據(jù)的前面,更易被獲取到,滿足快速查詢具有時(shí)效性的電磁數(shù)據(jù)的需求。
綜上所述,按下劃線切分法設(shè)計(jì)時(shí)間表復(fù)合行鍵為:prefix_時(shí)間戳_平臺型號_雷達(dá)型號_時(shí)間戳。其中,prefix 表示按取余或者按一致性哈希算法得到的行鍵前綴?;陬A(yù)分區(qū)策略的行鍵設(shè)計(jì)方法通過增加前綴項(xiàng),將海量數(shù)據(jù)均衡地分布在集群的所有機(jī)器中,能充分利用所有機(jī)器的CPU 和IO 資源,解決數(shù)據(jù)熱點(diǎn)問題,加快存儲(chǔ)和檢索海量數(shù)據(jù)的效率。
上文針對3 種典型的查詢需求,討論了3 種表設(shè)計(jì)方法,每張表都與電磁偵察大數(shù)據(jù)一類獨(dú)特的查詢需求對應(yīng),并以此建立了3 張內(nèi)容完全相同、僅行鍵不一致的表,這體現(xiàn)了HBase 為了快速查詢的反規(guī)范化設(shè)計(jì)。若應(yīng)用需要用參數(shù)列,如以射頻值為查詢主鍵,查詢某個(gè)射頻范圍內(nèi)的目標(biāo),則可以根據(jù)該查詢需求設(shè)計(jì)新的表,將射頻值設(shè)計(jì)在行鍵第一部分,以達(dá)到高效查詢的目的。
在實(shí)際工程項(xiàng)目中,使用HBase 存儲(chǔ)海量電磁偵察數(shù)據(jù)以驗(yàn)證其有效性。海量電磁偵察數(shù)據(jù)通過HBase 存儲(chǔ)到分布式文件系統(tǒng)后,通常需要分布式計(jì)算框架和其他組件協(xié)同配合對數(shù)據(jù)進(jìn)行二次開發(fā),以滿足特定的電磁偵察大數(shù)據(jù)應(yīng)用需求,如開關(guān)機(jī)時(shí)間規(guī)律分析、目標(biāo)協(xié)同配合分析等?;贖Base 的大數(shù)據(jù)存儲(chǔ)和計(jì)算系統(tǒng)的典型結(jié)構(gòu)如圖3 所示。
圖3 基于HBase 的典型應(yīng)用架構(gòu)圖
Spark 內(nèi)存計(jì)算框架或者M(jìn)apreduce 批處理框架可以將HBase 作為數(shù)據(jù)源,獲取數(shù)據(jù)并在分布式集群中并行計(jì)算。同時(shí),得益于HBase 的分布式數(shù)據(jù)存儲(chǔ)和負(fù)載均衡能力,Spark 或者M(jìn)apreduce 計(jì)算負(fù)載可以分布在所有的集群服務(wù)器中,讓“計(jì)算靠近數(shù)據(jù)”加快計(jì)算效率。通常采用Sqoop 作為ETL 工具,將數(shù)據(jù)從其他各類系統(tǒng)中導(dǎo)入HBase,在Zookeeper 的協(xié)調(diào)下,HBase 將數(shù)據(jù)均衡地存儲(chǔ)到HDFS 分布式文件系統(tǒng)中,使得Spark 等分布式計(jì)算框架可以在Yarn 調(diào)度框架的調(diào)度下進(jìn)行并行計(jì)算,計(jì)算結(jié)果通過Kafka 等消息中間件發(fā)送到特定組件并展現(xiàn),完成整個(gè)電磁偵察大數(shù)據(jù)全生命周期的管理和應(yīng)用。
在實(shí)際工程項(xiàng)目中,構(gòu)建1 主3 從的HBase 集群,同時(shí)搭建對應(yīng)的HDFS 和Spark 集群。在HBase 中存儲(chǔ)近600 G 的歷史偵察數(shù)據(jù),行鍵設(shè)計(jì)按照上述分析原則執(zhí)行。為對比分析HBase 存儲(chǔ)和關(guān)系型數(shù)據(jù)存儲(chǔ)的查詢效率,按100 萬條、500 萬條和超過1 億2 千萬條設(shè)計(jì)單表存儲(chǔ)量,按命中1 萬條、10 萬條數(shù)據(jù)對比兩者的查詢效率,如表2 所示。
表2 數(shù)據(jù)查詢時(shí)間對比
受HBase 主從節(jié)點(diǎn)通信限制,在小數(shù)量、小命中量條件下,其查詢效率不如傳統(tǒng)關(guān)系型數(shù)據(jù)庫,但隨著單表數(shù)據(jù)容量和命中數(shù)據(jù)量的增加,HBase 逐漸表現(xiàn)其優(yōu)勢,其查詢時(shí)間隨數(shù)據(jù)量線性增加,且不會(huì)出現(xiàn)單表數(shù)據(jù)量過大而無法存儲(chǔ)的現(xiàn)象。
時(shí)間查詢效率反比與查詢命中的數(shù)據(jù)量,正比與集群機(jī)器數(shù)量,三者之間的定性模型為:
式中,表示集群機(jī)器數(shù)量,表示命中數(shù)據(jù)量,φ()表示在集群規(guī)模為時(shí)查詢個(gè)數(shù)據(jù)量的效率,即當(dāng)數(shù)據(jù)急速增長時(shí),通過增加集群機(jī)器數(shù)量,查詢時(shí)間以O()的方式線性增長,滿足擴(kuò)展性要求。
通過3.2 節(jié)設(shè)計(jì)的空間表可以迅速地從HBase 中提取目標(biāo)空間信息,并利用HBase 提供的Endpoint 擴(kuò)展機(jī)制分布式地計(jì)算目標(biāo)空間統(tǒng)計(jì)信息。Geohash 編碼具有天然的空間聚類特點(diǎn),可以在一定的精度下將目標(biāo)運(yùn)動(dòng)的連續(xù)軌跡點(diǎn)轉(zhuǎn)換為離散的空間網(wǎng)格。通過Geohash 精度控制網(wǎng)格的大小,使得Geohash 空間網(wǎng)格可以在一定程度上平滑軌跡,從而提取出目標(biāo)運(yùn)動(dòng)骨干軌跡,以方便后續(xù)軌跡匹配等應(yīng)用,如圖4 所示。
圖4 基于GeoHash 的軌跡提取圖
圖4 中展示了對2 個(gè)目標(biāo)的運(yùn)動(dòng)軌跡提取Geohash 編碼后形成的空間網(wǎng)格,通過比較2 個(gè)空間網(wǎng)格集合的交集可以計(jì)算得到2 個(gè)空間軌跡的重合度,無需進(jìn)行時(shí)間對齊,極大地減小了空間位置的數(shù)值運(yùn)算量,可以用于多目標(biāo)空間關(guān)聯(lián)應(yīng)用。
實(shí)踐證明,結(jié)合業(yè)務(wù)的特點(diǎn)設(shè)計(jì)行鍵,在HBase分布式集群中存儲(chǔ)電磁偵察數(shù)據(jù),速度快、效率高、易擴(kuò)展,相比傳統(tǒng)關(guān)系型數(shù)據(jù)庫存儲(chǔ),基于HBase 的分布式存儲(chǔ)能有效地解決海量電磁時(shí)序大數(shù)據(jù)的高效存儲(chǔ)、檢索和應(yīng)用問題。
針對海量電磁時(shí)序偵察數(shù)據(jù)的特點(diǎn),本文討論了應(yīng)用分布式列式數(shù)據(jù)庫HBase 存儲(chǔ)海量數(shù)據(jù)的表結(jié)構(gòu)設(shè)計(jì)方案,針對按目標(biāo)、按閉合區(qū)域和按時(shí)間三種典型的業(yè)務(wù)查詢需求,詳細(xì)設(shè)計(jì)了三種不同的表結(jié)構(gòu)方案,并在實(shí)際工程項(xiàng)目中無縫集成Spark、Mapreduce 等分布式計(jì)算框架進(jìn)行驗(yàn)證,結(jié)果表明在數(shù)據(jù)模式、應(yīng)用方向和存儲(chǔ)結(jié)構(gòu)等方面,基于HBase 的分布式非關(guān)系型數(shù)據(jù)存儲(chǔ)方案更貼近數(shù)據(jù)需求、查詢需求和應(yīng)用需求,解決了電磁偵察大數(shù)據(jù)近實(shí)時(shí)存儲(chǔ)和按業(yè)務(wù)查詢的效率問題,具有較重要的實(shí)用意義。■