譚凱中 , 秦 勃, 何亞文
(1. 中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院, 山東 青島 266100; 2. 中國(guó)石油大學(xué)(華東)海洋與空間信息學(xué)院, 山東 青島 266580)
近年來(lái),臺(tái)風(fēng)、颶風(fēng)、風(fēng)暴潮等各類海洋現(xiàn)象和災(zāi)害發(fā)生日益頻繁。如何利用已有的大量海洋現(xiàn)象特征數(shù)據(jù)對(duì)各類海域中海洋現(xiàn)象的生成、演變進(jìn)行分析、預(yù)測(cè)和追蹤,從而達(dá)到海洋現(xiàn)象過(guò)程的可視化分析、災(zāi)害預(yù)警等目的是目前研究的熱點(diǎn)。實(shí)現(xiàn)海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的組織與高效表達(dá),是達(dá)到上述目標(biāo)以及后期海洋時(shí)空數(shù)據(jù)分析、海洋時(shí)空模式挖掘等相關(guān)需求的基礎(chǔ)。
實(shí)現(xiàn)海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的組織與高效表達(dá),需要建立針對(duì)海洋現(xiàn)象過(guò)程的對(duì)象數(shù)據(jù)組織模型。連續(xù)漸變的時(shí)空現(xiàn)象的組織與表達(dá)一直是地理信息科學(xué)領(lǐng)域的熱點(diǎn)和難點(diǎn)問(wèn)題,文獻(xiàn)[1]提出了一種模擬地理過(guò)程的數(shù)據(jù)模型開發(fā)手段,對(duì)現(xiàn)有的動(dòng)態(tài)建模方法進(jìn)行補(bǔ)充,更詳細(xì)地描述了系統(tǒng)在每個(gè)時(shí)間步長(zhǎng)中的狀態(tài)。文獻(xiàn)[2]提出了時(shí)空變化追蹤查詢地理現(xiàn)象動(dòng)態(tài)交互框架,該框架將動(dòng)態(tài)現(xiàn)象的信息組織為靜態(tài)結(jié)構(gòu)、過(guò)程和場(chǎng)景的層次結(jié)構(gòu)。文獻(xiàn)[3]提出了過(guò)程思想的“事件-過(guò)程-狀態(tài)”地理現(xiàn)象的時(shí)空分級(jí)表達(dá)結(jié)構(gòu),實(shí)現(xiàn)了縱向時(shí)間尺度上地理動(dòng)態(tài)信息的表達(dá)。文獻(xiàn)[4-5]對(duì)時(shí)空過(guò)程進(jìn)行了不同角度的語(yǔ)義描述,建立了多種時(shí)空過(guò)程信息表達(dá)與組織模型。文獻(xiàn)[6]提出了過(guò)程對(duì)象的BNF范式組織,基于海洋時(shí)空過(guò)程模型構(gòu)建了原型系統(tǒng)。除去數(shù)據(jù)模型之外,可擴(kuò)展標(biāo)記語(yǔ)言XML等獨(dú)立的數(shù)據(jù)交換格式和管理方法作為信息的載體,可用于數(shù)據(jù)庫(kù)、地理空間數(shù)據(jù)之間的數(shù)據(jù)交換和數(shù)據(jù)編碼[7-8],美國(guó)環(huán)境系統(tǒng)研發(fā)公司開發(fā)shapefile空間數(shù)據(jù)開發(fā)格式借助點(diǎn)、線、面刻畫地理空間數(shù)據(jù)對(duì)象,也是目前業(yè)界的一個(gè)開放標(biāo)準(zhǔn)。
除了數(shù)據(jù)入庫(kù)前的預(yù)處理以外,還需要對(duì)信息多元結(jié)構(gòu)復(fù)雜的海洋時(shí)空數(shù)據(jù)建立空間數(shù)據(jù)索引。常見的空間索引技術(shù)包括二叉樹類型空間索引、基于B樹的空間索引以及空間目標(biāo)填充曲線等索引技術(shù)。其中R樹類型的空間索引是B樹在多維空間的擴(kuò)展,具有結(jié)構(gòu)平衡、空間利用率和查詢效率高等特點(diǎn)。在R樹的分布式并行構(gòu)建方面,文獻(xiàn)[12]設(shè)計(jì)了非共享并行環(huán)境下的Master-client R樹空間數(shù)據(jù)索引結(jié)構(gòu),通過(guò)搜索Master R樹葉子節(jié)點(diǎn)包含的空間數(shù)據(jù)對(duì)象所在clientR樹的client id 進(jìn)行進(jìn)一步空間查詢,同時(shí)在現(xiàn)有的云平臺(tái)和分布式技術(shù)上也提出了一些并行構(gòu)建R樹的方法[13-14]。文獻(xiàn)[15-16]提出了利用混合空間數(shù)據(jù)索引管理高密度點(diǎn)云數(shù)據(jù)的方法,以滿足大量點(diǎn)云數(shù)據(jù)的高效處理需求。文獻(xiàn)[17]針對(duì)NoSQL數(shù)據(jù)庫(kù)的時(shí)空查詢問(wèn)題,提出了一種適用于HBASE的雙層架構(gòu)的時(shí)空索引STEHIX, 并基于此結(jié)構(gòu)設(shè)計(jì)并優(yōu)化了空間范圍查詢和KNN查詢。
由于現(xiàn)有的時(shí)空數(shù)據(jù)研究大多局限于二維地理空間數(shù)據(jù)的存儲(chǔ)與查詢,在三維時(shí)變過(guò)程數(shù)據(jù)處理方面探索較少。本文針對(duì)海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的高效檢索與數(shù)據(jù)組織問(wèn)題,首先設(shè)計(jì)了海洋現(xiàn)象過(guò)程的對(duì)象數(shù)據(jù)組織模型?;诖藬?shù)據(jù)組織模型,提出了一種面向過(guò)程的海洋時(shí)空數(shù)據(jù)檢索算法。為保證算法的檢索效率,設(shè)計(jì)了三維空間海洋時(shí)空數(shù)據(jù)分片策略,并在數(shù)據(jù)分片策略之上構(gòu)建分布式R樹空間數(shù)據(jù)索引,以實(shí)現(xiàn)基于云平臺(tái)的海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)存儲(chǔ)與檢索系統(tǒng)。
海洋現(xiàn)象具有時(shí)刻變化的動(dòng)態(tài)特征,因此海洋現(xiàn)象過(guò)程是一個(gè)連續(xù)漸變的時(shí)空過(guò)程。由于數(shù)據(jù)采集技術(shù)的限制,目前發(fā)布的海洋觀測(cè)數(shù)據(jù)是按照某一長(zhǎng)度的時(shí)間間隔進(jìn)行采集的,所采集的時(shí)空數(shù)據(jù)是離散時(shí)變的。因此,為了支持后續(xù)數(shù)據(jù)的高效檢索,在數(shù)據(jù)組織階段以一系列海洋現(xiàn)象狀態(tài)對(duì)象的變化過(guò)程模擬海洋現(xiàn)象的連續(xù)漸變過(guò)程。海洋現(xiàn)象過(guò)程對(duì)象的BNF范式組織如下:
ProcecessID標(biāo)識(shí)海洋現(xiàn)象過(guò)程,ProcecessType標(biāo)識(shí)海洋現(xiàn)象過(guò)程類型,Time標(biāo)識(shí)海洋現(xiàn)象從生成到消亡的時(shí)間周期,SubProcess標(biāo)識(shí)海洋現(xiàn)象過(guò)程所包含的子過(guò)程。從數(shù)據(jù)檢索的語(yǔ)義上描述,海洋現(xiàn)象過(guò)程可以進(jìn)一步分解為一系列子過(guò)程。海洋現(xiàn)象過(guò)程對(duì)象的子過(guò)程具有類似的組織結(jié)構(gòu),其BNF范式組織如下:
其中SubProcess唯一標(biāo)識(shí)海洋現(xiàn)象過(guò)程的子過(guò)程,Time用于描述子過(guò)程的時(shí)態(tài),Space描述空間信息及其隨時(shí)間t的變化關(guān)系,
記錄上一子過(guò)程與下一子過(guò)程的指針。例如海洋現(xiàn)象過(guò)程從生成至消亡可分解為幾個(gè)生命周期階段,使用海洋現(xiàn)象階段對(duì)象表述完整海洋現(xiàn)象過(guò)程中的生命周期階段,其BNF范式組織如下:
::= 海洋現(xiàn)象的各階段有著固定的時(shí)間順序,所以除了ID標(biāo)識(shí)符等屬性外,還需記錄前一個(gè)以及下一個(gè)要發(fā)生的海洋現(xiàn)象階段對(duì)象,分別使用PreviousStageID、NextStageID記錄。
海洋現(xiàn)象狀態(tài)對(duì)象可用于組織海洋現(xiàn)象過(guò)程或子過(guò)程對(duì)象,主要包含空間描述和時(shí)態(tài)描述,且空間特征不隨時(shí)間變化。其BNF范式表示如下:
::= StatusID標(biāo)簽唯一標(biāo)識(shí)一個(gè)海洋現(xiàn)象狀態(tài)對(duì)象,Space標(biāo)簽為空間屬性,Time標(biāo)簽描述時(shí)態(tài),Attributes標(biāo)簽用于表示其他屬性特征。SquID用于標(biāo)志海洋現(xiàn)象狀態(tài)對(duì)象所屬的子過(guò)程。
1.2 海洋現(xiàn)象過(guò)程對(duì)象數(shù)據(jù)組織模型XML描述方式
海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的存儲(chǔ)與分布式檢索系統(tǒng)以XML作為海洋現(xiàn)象過(guò)程的對(duì)象數(shù)據(jù)組織模型的表述語(yǔ)言,本文以臺(tái)風(fēng)為例對(duì)時(shí)空過(guò)程進(jìn)行組織。
海洋現(xiàn)象臺(tái)風(fēng)的時(shí)空過(guò)程或子過(guò)程對(duì)應(yīng)狀態(tài)集合S,S={S1,S2,S3…Sn}。當(dāng)抽取臺(tái)風(fēng)的中心位置、風(fēng)圈半徑等信息為主要特征時(shí),每個(gè)海洋現(xiàn)象狀態(tài)Sn包含了時(shí)間屬性tn,中心位置On以及一組分層的空間形態(tài)特征集合,每一層可近似看作以O(shè)n為中心的一定半徑范圍內(nèi)的區(qū)域Cl。因此tn時(shí)刻狀態(tài)對(duì)應(yīng)的空間特征可描述為:
,其中l(wèi)max為最大層數(shù)。每一層的區(qū)域范圍與時(shí)間屬性t以及層數(shù)l有關(guān)即(t,l)→r,此處的層數(shù)也可近似看作高程。 海洋現(xiàn)象臺(tái)風(fēng)的特征數(shù)據(jù)包括臺(tái)風(fēng)中心,近中心最大風(fēng)速、各級(jí)風(fēng)圈半徑,層高與氣壓變化等特點(diǎn),其中時(shí)間、中心位置空間特征、層數(shù)等為海洋現(xiàn)象狀態(tài)對(duì)象檢索前需提供的鍵屬性。臺(tái)風(fēng)的狀態(tài)對(duì)象XML描述如圖1所示,臺(tái)風(fēng)的時(shí)空過(guò)程對(duì)象XML描述如圖2所示。
圖1 狀態(tài)對(duì)象XML描述
圖2 臺(tái)風(fēng)時(shí)空過(guò)程對(duì)象XML描述
數(shù)據(jù)模型中以每個(gè)采樣時(shí)間點(diǎn)對(duì)應(yīng)一個(gè)海洋現(xiàn)象狀態(tài)對(duì)象,臺(tái)風(fēng)的各海洋現(xiàn)象狀態(tài)對(duì)象除時(shí)間屬性外還包含位置信息和空間結(jié)構(gòu)信息,位置信息以臺(tái)風(fēng)中心經(jīng)緯度坐標(biāo)(lat,lon)表示,每一時(shí)刻的臺(tái)風(fēng)中心位置可構(gòu)成完整的臺(tái)風(fēng)路徑信息??臻g結(jié)構(gòu)則是一個(gè)三維體模型。數(shù)據(jù)采樣是分層且離散的,因此三維體模型采用面模型表示。每一層對(duì)應(yīng)的二維平面形狀表示待檢索的區(qū)域。由于臺(tái)風(fēng)邊界信息不規(guī)則且極為復(fù)雜,為了在檢索階段保證數(shù)據(jù)的完整性并為后續(xù)的海洋現(xiàn)象特征數(shù)據(jù)分析提供可靠的數(shù)據(jù)支撐,以距離臺(tái)風(fēng)中心7級(jí)風(fēng)圈半徑以內(nèi)區(qū)域表示待查詢范圍,以一百公里作為距離單位,完成每一層的空間結(jié)構(gòu)信息組織。
2 海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)相關(guān)索引設(shè)計(jì)
2.1 三維空間海洋時(shí)空數(shù)據(jù)分片策略
海洋時(shí)空數(shù)據(jù)處理在時(shí)間和空間上存在一定的連續(xù)性,并且海洋時(shí)空數(shù)據(jù)檢索查詢有一個(gè)重要特點(diǎn):存儲(chǔ)的海洋時(shí)空數(shù)據(jù)集規(guī)模很大,但是待檢索的數(shù)據(jù)結(jié)果集規(guī)模不大。因?yàn)楹Q髸r(shí)空數(shù)據(jù)處理通常計(jì)算量很大,例如某條臺(tái)風(fēng)路徑上的風(fēng)場(chǎng)、氣壓和降雨量等數(shù)據(jù)的實(shí)時(shí)計(jì)算和可視化等應(yīng)用,如果輸入的數(shù)據(jù)檢索結(jié)果集規(guī)模太大則難以滿足數(shù)據(jù)處理的時(shí)效性。因此設(shè)計(jì)一種合理的空間數(shù)據(jù)對(duì)象分片策略,通過(guò)劃分空間區(qū)域?qū)Q髸r(shí)空數(shù)據(jù)場(chǎng)進(jìn)行分片可以更好的支持海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的檢索工作。
三維空間區(qū)域的劃分工作最終會(huì)以海洋時(shí)空數(shù)據(jù)分片的方式將數(shù)據(jù)預(yù)處理階段得到的海洋時(shí)空數(shù)據(jù)輸出到云平臺(tái)。因此三維空間區(qū)域的劃分方式需要綜合考慮數(shù)據(jù)分片文件大小和分區(qū)劃分依據(jù)兩方面問(wèn)題。分片數(shù)據(jù)量大小可以結(jié)合具體系統(tǒng)考量,盡管區(qū)域劃分階段形成的網(wǎng)格較細(xì),可以降低后續(xù)數(shù)據(jù)檢索階段帶來(lái)的數(shù)據(jù)冗余,檢索查詢效率較高。但由于數(shù)據(jù)存儲(chǔ)平臺(tái)的限制,大量小文件會(huì)引發(fā)數(shù)據(jù)存儲(chǔ)平臺(tái)效率低下的問(wèn)題,例如HDFS分布式文件系統(tǒng)中常見的數(shù)據(jù)塊設(shè)置大小為64MB、128MB等。當(dāng)分片文件大小遠(yuǎn)大于系統(tǒng)數(shù)據(jù)分塊大小時(shí),也會(huì)引發(fā)存儲(chǔ)端的數(shù)據(jù)冗余。因此數(shù)據(jù)分片文件的大小最好接近于具體數(shù)據(jù)存儲(chǔ)系統(tǒng)的文件分塊大小,且文件分塊不宜過(guò)大,應(yīng)根據(jù)具體的應(yīng)用需求加以調(diào)整。
算法首先輸入海洋時(shí)空數(shù)據(jù)對(duì)象的分區(qū)數(shù)量,根據(jù)經(jīng)度方向和緯度方向的分區(qū)數(shù)量分別計(jì)算每個(gè)分區(qū)跨越的經(jīng)緯度latInterval、lonInterval,然后計(jì)算待分區(qū)數(shù)據(jù)對(duì)象的三維索引信息grid3DIdx,grid3DIdx包含了數(shù)據(jù)對(duì)象的經(jīng)度、緯度和高度信息。由于海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的檢索是一個(gè)分層查詢的過(guò)程,所以需要根據(jù)數(shù)據(jù)對(duì)象所在層數(shù)劃分區(qū)域。最后通過(guò)空間數(shù)據(jù)對(duì)象的三維索引信息及每個(gè)方向上的分區(qū)數(shù)量計(jì)算傳入數(shù)據(jù)對(duì)象的分區(qū)ID。
區(qū)域劃分的依據(jù)主要是數(shù)據(jù)的時(shí)間信息和空間信息。海洋時(shí)空數(shù)據(jù)以時(shí)間為最外層進(jìn)行組織,由于海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的檢索時(shí)間跨度不會(huì)太長(zhǎng),因此可以以年為單位劃分在最上層,也就是同一區(qū)域的海洋時(shí)空數(shù)據(jù)對(duì)應(yīng)的年份相同。下層子區(qū)域則以數(shù)據(jù)所在層數(shù)為單位進(jìn)行第二次劃分,然后按照經(jīng)緯度劃分得到最終的數(shù)據(jù)分片文件??臻g區(qū)域劃分是連續(xù)的,數(shù)據(jù)分區(qū)階段的主要工作則是按照數(shù)據(jù)對(duì)象的經(jīng)度、維度和層數(shù)三個(gè)維度加以分區(qū)。下面是三維空間海洋時(shí)空數(shù)據(jù)分片過(guò)程中數(shù)據(jù)分區(qū)的算法描述,其中經(jīng)緯度的兩個(gè)方向以均勻網(wǎng)格的形式加以劃分,算法1給出了數(shù)據(jù)分區(qū)算法的描述。
算法1:數(shù)據(jù)分區(qū)算法
輸入:point,partitionNum,levels
輸出:partitionID
1./*計(jì)算分區(qū)跨越的經(jīng)緯度*/
2.latInterval= 180/partitionNum.x
3.lonInterval= 360/partitionNum.y
4./*計(jì)算數(shù)據(jù)對(duì)象所在分區(qū)的索引*/
5.grid3DIdx.x= (90+point.x)/latIntervel
6.grid3DIdx.y=point.y/lonIntervel
7.grid3DIdx.level=point.level
8./*計(jì)算分區(qū)ID*/
9.partitionID=grid3DIdx.level*partionNum.x*partionNum.y+grid3DIdx.x*partionNum.y+grid3DIdx.y。
2.2 基于空間數(shù)據(jù)分區(qū)的R樹分布式空間索引算法
本文結(jié)合面向過(guò)程的海洋時(shí)空數(shù)據(jù)檢索算法思想設(shè)計(jì)基于空間數(shù)據(jù)分區(qū)的R樹分布式空間索引算法。以全球風(fēng)場(chǎng)為例,構(gòu)建的索引結(jié)構(gòu)如圖3所示。
圖3 基于數(shù)據(jù)分區(qū)的R樹索引
索引構(gòu)建的核心思想是基于三維空間海洋時(shí)空數(shù)據(jù)分片設(shè)計(jì)R樹分布式空間索引的基本數(shù)據(jù)結(jié)構(gòu),構(gòu)造的空間數(shù)據(jù)索引是一種單級(jí)的時(shí)空數(shù)據(jù)索引。在分區(qū)邊界信息分布式統(tǒng)計(jì)階段中,首先要分布式統(tǒng)計(jì)每個(gè)數(shù)據(jù)分片內(nèi)的海洋時(shí)空數(shù)據(jù)空間屬性信息,計(jì)算出數(shù)據(jù)分片的各維度邊界信息,建立最小外接矩形。使用數(shù)據(jù)分片在分布式存儲(chǔ)平臺(tái)上的文件查找路徑作為數(shù)據(jù)索引描述,將數(shù)據(jù)分片的最小外接矩形和文件查找路徑(I0,I1,Path)作為數(shù)據(jù)分片的索引信息描述。每個(gè)數(shù)據(jù)分片代表一個(gè)分區(qū),因此數(shù)據(jù)分片內(nèi)存儲(chǔ)的海洋時(shí)空數(shù)據(jù)對(duì)象每個(gè)空間維度的最大值和最小值就構(gòu)成了當(dāng)前數(shù)據(jù)分區(qū)的最小外接矩形。
索引信息收集階段主要對(duì)上述數(shù)據(jù)索引描述進(jìn)行收集并構(gòu)建索引信息描述集。遍歷索引信息描述集中的每個(gè)索引信息描述,并作為空間數(shù)據(jù)對(duì)象插入到R樹中,基于STR算法[18]構(gòu)建當(dāng)前層的全局R樹空間數(shù)據(jù)索引。構(gòu)建完成后分布式統(tǒng)計(jì)下一層的海洋時(shí)空數(shù)據(jù)分片文件信息,重復(fù)執(zhí)行上述過(guò)程。
圖3標(biāo)注了近地面的3層大氣,全球風(fēng)場(chǎng)數(shù)據(jù)共分為17層標(biāo)準(zhǔn)大氣,三維空間數(shù)據(jù)分片策略根據(jù)數(shù)據(jù)的經(jīng)度、維度和層數(shù)進(jìn)行區(qū)域劃分,通過(guò)分區(qū)階段形成的網(wǎng)格完成R樹索引的分層構(gòu)建。
3 面向過(guò)程的海洋時(shí)空數(shù)據(jù)檢索
3.1 面向過(guò)程的海洋時(shí)空數(shù)據(jù)檢索算法的設(shè)計(jì)
海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的檢索操作可以轉(zhuǎn)換為時(shí)空數(shù)據(jù)集合到時(shí)空過(guò)程數(shù)據(jù)集合的映射。由于海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)實(shí)際上是特定時(shí)間和空間區(qū)域范圍的海洋時(shí)空數(shù)據(jù)集合,因此數(shù)據(jù)的檢索包含空間屬性信息過(guò)濾和時(shí)間屬性信息過(guò)濾兩個(gè)過(guò)程,空間和時(shí)間屬性信息的過(guò)濾條件來(lái)自待檢索海洋現(xiàn)象過(guò)程對(duì)象所包含的一系列海洋現(xiàn)象狀態(tài)對(duì)象的空間和時(shí)態(tài)特征信息。海洋現(xiàn)象狀態(tài)對(duì)象的空間特征信息屬于不隨時(shí)間變化的靜態(tài)空間信息,時(shí)態(tài)信息的時(shí)間區(qū)間范圍較短或者僅包含某個(gè)時(shí)間采樣點(diǎn)。海洋時(shí)空數(shù)據(jù)經(jīng)過(guò)兩個(gè)階段的過(guò)濾篩選最終得到海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)。因此海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的分布式檢索可以采用單機(jī)-單機(jī)并行-分布式并行-單機(jī)的模式執(zhí)行,這里以Master-worker并行模式為例,總體上分為如下幾個(gè)過(guò)程:
(1)加載海洋現(xiàn)象過(guò)程的對(duì)象數(shù)據(jù)模型信息,將各個(gè)狀態(tài)的描述信息讀取到主節(jié)點(diǎn)的內(nèi)存中,根據(jù)海洋現(xiàn)象狀態(tài)的描述信息首先生成一個(gè)空間屬性約束條件。
(2)主節(jié)點(diǎn)進(jìn)程根據(jù)空間屬性約束條件查找空間數(shù)據(jù)索引,篩選出需要讀取的海洋時(shí)空數(shù)據(jù)分片。
(3)Worker節(jié)點(diǎn)進(jìn)程根據(jù)空間屬性約束條件分布式并行過(guò)濾每個(gè)分片內(nèi)的海洋時(shí)空數(shù)據(jù)。
(4)Worker節(jié)點(diǎn)進(jìn)程根據(jù)時(shí)間屬性約束條件分布式并行過(guò)濾海洋時(shí)空數(shù)據(jù)。
(5)主節(jié)點(diǎn)進(jìn)程收集滿足約束條件的海洋時(shí)空數(shù)據(jù),并進(jìn)行排序。最終合并構(gòu)造成完整的海洋現(xiàn)象過(guò)程數(shù)據(jù)對(duì)象并保存至分布式存儲(chǔ)平臺(tái)。
算法2描述了三維空間下海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的檢索流程,由于不同時(shí)間的海洋現(xiàn)象狀態(tài)數(shù)據(jù)相對(duì)獨(dú)立,其中數(shù)據(jù)分片的篩選過(guò)程可以在主節(jié)點(diǎn)內(nèi)存中并行查找數(shù)據(jù)分片,以多核多線程的方式搜索R樹索引。數(shù)據(jù)過(guò)濾過(guò)程在具體實(shí)現(xiàn)過(guò)程中以分布式并行的方式完成。
算法2:海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)檢索
輸入:最大層數(shù)level,時(shí)空過(guò)程對(duì)象Process,R樹空間數(shù)據(jù)索引
輸出:結(jié)果集result
1.result← {}
2.forl← 1tolevel
3.forstate∈Process
4.range←getRange(state,l)
5.RangeSet←
6.endfor
7.splits←Query(Rtree,RangeSet)
8.dataset←LoadData(splits)
9.filterResult←spaceFilter(dataset,rangeSet)
10.result←timeFilter(dataset,rangeSet)
11.endfor
12.sort(result)
3.2 面向過(guò)程的海洋時(shí)空數(shù)據(jù)檢索算法的實(shí)現(xiàn)
本文以海洋現(xiàn)象臺(tái)風(fēng)為例描述海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的檢索過(guò)程,如圖4所示。
圖4 臺(tái)風(fēng)時(shí)空過(guò)程數(shù)據(jù)檢索
海洋現(xiàn)象過(guò)程對(duì)象的時(shí)空特征預(yù)先組織在XML數(shù)據(jù)模型文件中,在元數(shù)據(jù)信息加載階段首先讀取各個(gè)海洋現(xiàn)象狀態(tài)對(duì)象在當(dāng)前層的空間特征,以臺(tái)風(fēng)路徑上的臺(tái)風(fēng)中心和風(fēng)圈半徑構(gòu)成空間距離數(shù)據(jù)對(duì)象。算法的空間屬性信息過(guò)濾階段可通過(guò)分布式距離連接查詢(將一組較小的數(shù)據(jù)點(diǎn)集和另一組空間數(shù)據(jù)對(duì)象集合以距離為約束條件進(jìn)行連接的查詢操作)實(shí)現(xiàn),其中的空間距離數(shù)據(jù)對(duì)象即距離連接操作的左集。集合構(gòu)建完畢后進(jìn)入數(shù)據(jù)分片篩選階段。
在分片篩選階段分區(qū)數(shù)據(jù)集的規(guī)模遠(yuǎn)小于海洋時(shí)空數(shù)據(jù)集,此過(guò)程不會(huì)超出單機(jī)的處理能力,因此可采用單機(jī)并行方式利用多核多線程實(shí)現(xiàn)數(shù)據(jù)分區(qū)的并行查詢。主節(jié)點(diǎn)各線程根據(jù)傳入的坐標(biāo)點(diǎn)及相應(yīng)的空間距離調(diào)用R樹分布式空間索引,篩選出與滿足空間查詢區(qū)域相交的海洋時(shí)空數(shù)據(jù)分片并獲取描述信息,應(yīng)用程序主線程將分片描述與空間距離數(shù)據(jù)對(duì)象傳入到距離約束查詢階段。
距離約束查詢是一個(gè)數(shù)據(jù)的分布式過(guò)濾過(guò)程,通過(guò)傳入的分片索引描述讀取分布式文件系統(tǒng)的存儲(chǔ)路徑,構(gòu)造海洋時(shí)空數(shù)據(jù)對(duì)象集合即距離連接操作的右集。此時(shí)集群系統(tǒng)的任務(wù)調(diào)度器根據(jù)待處理的數(shù)據(jù)分區(qū)向worker節(jié)點(diǎn)分發(fā)任務(wù),worker節(jié)點(diǎn)進(jìn)程在過(guò)濾過(guò)程中利用空間距離數(shù)據(jù)對(duì)象生成數(shù)據(jù)過(guò)濾的判定條件,通過(guò)多任務(wù)并行處理的方式實(shí)現(xiàn)海洋時(shí)空數(shù)據(jù)對(duì)象的空間屬性信息過(guò)濾,將滿足判定條件的數(shù)據(jù)對(duì)象傳遞到時(shí)間屬性信息過(guò)濾階段。
時(shí)間屬性信息過(guò)濾的完成需要構(gòu)造一個(gè)時(shí)間屬性過(guò)濾器。在距離連接查詢之后海洋時(shí)空數(shù)據(jù)對(duì)象會(huì)與海洋現(xiàn)象狀態(tài)的ID關(guān)聯(lián)。在具體實(shí)現(xiàn)中可以在過(guò)濾操作之前構(gòu)建一個(gè)海洋現(xiàn)象過(guò)程的時(shí)空關(guān)系集合,數(shù)據(jù)集合不包含海洋現(xiàn)象狀態(tài)的具體信息,以元組(id,position,time)的形式存儲(chǔ),從而減少了內(nèi)存占用空間。由于集合信息是只讀的,主節(jié)點(diǎn)以共享變量的方式將集合數(shù)據(jù)廣播到各Worker節(jié)點(diǎn)。根據(jù)當(dāng)前海洋現(xiàn)象狀態(tài)的時(shí)間屬性信息生成過(guò)濾判定條件構(gòu)造時(shí)間屬性過(guò)濾器。Worker節(jié)點(diǎn)進(jìn)程在接收到數(shù)據(jù)處理任務(wù)和廣播變量后,提取傳入到時(shí)間屬性過(guò)濾器的時(shí)間屬性信息,若對(duì)應(yīng)的時(shí)刻與當(dāng)前海洋現(xiàn)象狀態(tài)的時(shí)間屬性信息不一致,則海洋時(shí)空數(shù)據(jù)對(duì)象不符合過(guò)濾判定條件。經(jīng)過(guò)兩步過(guò)濾可以收集到各海洋現(xiàn)象狀態(tài)對(duì)象的海洋時(shí)空數(shù)據(jù)集。所有符合過(guò)濾判定條件的海洋時(shí)空數(shù)據(jù)對(duì)象將進(jìn)入到數(shù)據(jù)的收集過(guò)程。
主節(jié)點(diǎn)進(jìn)程的收集過(guò)程負(fù)責(zé)收集經(jīng)過(guò)空間和時(shí)間屬性信息過(guò)濾之后屬于各個(gè)海洋現(xiàn)象狀態(tài)的海洋時(shí)空數(shù)據(jù)對(duì)象。若當(dāng)前檢索的層數(shù)并未達(dá)到最大層,則需要加載海洋現(xiàn)象過(guò)程對(duì)象在下一層的信息描述,直至各層數(shù)據(jù)收集完畢,進(jìn)入合并與排序過(guò)程。先進(jìn)行數(shù)據(jù)對(duì)象集合的合并工作,再依據(jù)所屬狀態(tài)進(jìn)行數(shù)據(jù)集的劃分,按照層數(shù)、緯度、經(jīng)度的順序進(jìn)行排序,最后將得到的海洋現(xiàn)象過(guò)程對(duì)象數(shù)據(jù)寫入到分布式存儲(chǔ)平臺(tái)中。
由于全球范圍的海洋時(shí)空數(shù)據(jù)集合以數(shù)據(jù)分片的方式均勻分布在各節(jié)點(diǎn),臺(tái)風(fēng)的運(yùn)動(dòng)軌跡是連續(xù)的,經(jīng)過(guò)篩選后的數(shù)據(jù)分片所代表空間范圍則是多個(gè)在經(jīng)度和緯度上保持連續(xù)的地理空間區(qū)域,這些子區(qū)域的數(shù)據(jù)分片分布式存儲(chǔ)在集群中的各個(gè)節(jié)點(diǎn)。當(dāng)采用計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)統(tǒng)一部署時(shí),每個(gè)Worker節(jié)點(diǎn)處理的數(shù)據(jù)分區(qū)規(guī)模差距不大,從而在一定程度上保證了分布式并行處理過(guò)程中的負(fù)載均衡。
在基于GeoSpark的算法實(shí)現(xiàn)過(guò)程中,主要通過(guò)PointRDD抽象來(lái)實(shí)現(xiàn)數(shù)據(jù)集的篩選。通過(guò)讀取數(shù)據(jù)模型中的時(shí)空特征信息構(gòu)造空間距離數(shù)據(jù)對(duì)象,可利用Geometry抽象的Circle子類實(shí)現(xiàn)構(gòu)造,并對(duì)生成的空間距離數(shù)據(jù)對(duì)象進(jìn)行劃分。在距離約束查詢中向PointRDD的構(gòu)造函數(shù)中傳入數(shù)據(jù)分片文件路徑構(gòu)造海洋時(shí)空數(shù)據(jù)集,根據(jù)空間距離數(shù)據(jù)對(duì)象集合設(shè)計(jì)一個(gè)空間屬性判定器并代入到RDD中的fillter算子中進(jìn)行分布式過(guò)濾,也可將連接操作的左右集直接代入到JoinQuery內(nèi)置的空間連接查詢算子中實(shí)現(xiàn)過(guò)濾,并在后續(xù)數(shù)據(jù)的收集過(guò)程中分離空間距離數(shù)據(jù)對(duì)象。時(shí)間屬性過(guò)濾可將構(gòu)造好的時(shí)間屬性過(guò)濾器代入到filter算子中實(shí)現(xiàn)。操作完成后進(jìn)行一次collect操作,將分布在各個(gè)節(jié)點(diǎn)上的數(shù)據(jù)匯聚到主節(jié)點(diǎn)上進(jìn)行收集。
3.3 海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)存儲(chǔ)與檢索系統(tǒng)
海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)存儲(chǔ)與檢索系統(tǒng)提供了海洋時(shí)空數(shù)據(jù)預(yù)處理與組織、海洋時(shí)空數(shù)據(jù)存儲(chǔ)與索引構(gòu)建以及海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)分布式并行檢索與存儲(chǔ)等基本功能,并最終為相關(guān)的海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)應(yīng)用系統(tǒng)提供數(shù)據(jù)服務(wù),系統(tǒng)總體架構(gòu)如圖5所示。
圖5 系統(tǒng)架構(gòu)圖
系統(tǒng)包含三層架構(gòu),最下層的處理對(duì)象為不同來(lái)源的海洋數(shù)據(jù),例如衛(wèi)星遙感數(shù)據(jù)、觀測(cè)數(shù)據(jù)與海洋模擬數(shù)據(jù)等。系統(tǒng)針對(duì)不同類型的海洋時(shí)空數(shù)據(jù)進(jìn)行統(tǒng)一的整理和組織,并將用戶抽取的海洋現(xiàn)象過(guò)程時(shí)空特征集組織為XML格式的數(shù)據(jù)模型信息,上傳至海洋時(shí)空數(shù)據(jù)存儲(chǔ)系統(tǒng),為數(shù)據(jù)存儲(chǔ)系統(tǒng)提供數(shù)據(jù)來(lái)源。存儲(chǔ)層包含三個(gè)方面的數(shù)據(jù):海洋現(xiàn)象過(guò)程數(shù)據(jù)組織模型(XML文件)、不同種類不同年份的海洋時(shí)空數(shù)據(jù)(TSV文件)以及存儲(chǔ)于數(shù)據(jù)倉(cāng)庫(kù)的海洋現(xiàn)象過(guò)程對(duì)象數(shù)據(jù)。存儲(chǔ)平臺(tái)以分布式內(nèi)存文件系統(tǒng)HDFS與多級(jí)異構(gòu)存儲(chǔ)介質(zhì)為核心構(gòu)建,并利用基于Raft一致性算法的分布式協(xié)調(diào)服務(wù)ZooKeeper實(shí)現(xiàn)高可用支持模塊,滿足數(shù)據(jù)存儲(chǔ)的可靠性以及高可用性。最上層為海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)檢索系統(tǒng),系統(tǒng)通過(guò)數(shù)據(jù)存儲(chǔ)接口完成與存儲(chǔ)平臺(tái)的訪問(wèn)控制和交互。當(dāng)系統(tǒng)接收到檢索客戶端發(fā)來(lái)的索引建立或更新請(qǐng)求時(shí),索引構(gòu)建模塊根據(jù)收到的索引構(gòu)建參數(shù)對(duì)海洋時(shí)空數(shù)據(jù)進(jìn)行分區(qū),并基于數(shù)據(jù)分區(qū)構(gòu)建R樹空間數(shù)據(jù)索引。當(dāng)系統(tǒng)接收到檢索客戶端發(fā)送的數(shù)據(jù)檢索請(qǐng)求時(shí),檢索系統(tǒng)將檢索參數(shù)傳遞給分布式檢索引擎,實(shí)現(xiàn)對(duì)海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的分布式并行檢索,最后調(diào)用數(shù)據(jù)持久化模塊將檢索結(jié)果集導(dǎo)入至數(shù)據(jù)倉(cāng)庫(kù)。
4 實(shí)驗(yàn)
4.1 實(shí)驗(yàn)設(shè)計(jì)
實(shí)驗(yàn)通過(guò)測(cè)試海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)存儲(chǔ)與檢索系統(tǒng)的相關(guān)功能模塊,以臺(tái)風(fēng)的海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)檢索為基礎(chǔ),設(shè)計(jì)了對(duì)照實(shí)驗(yàn)組,分別測(cè)試了海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)查詢?cè)诨诤Q髸r(shí)空數(shù)據(jù)對(duì)象構(gòu)建的R樹空間數(shù)據(jù)索引和基于空間數(shù)據(jù)分區(qū)構(gòu)建的R樹空間數(shù)據(jù)索引上的執(zhí)行效率。基于海洋時(shí)空數(shù)據(jù)對(duì)象構(gòu)建的R樹空間數(shù)據(jù)索引將每個(gè)采樣點(diǎn)記錄的海洋時(shí)空數(shù)據(jù)對(duì)象的空間屬性信息作為葉節(jié)點(diǎn)中存儲(chǔ)的空間索引描述信息,根據(jù)數(shù)據(jù)的分區(qū)分布式構(gòu)建多個(gè)R樹空間數(shù)據(jù)索引,在算法執(zhí)行過(guò)程中將每個(gè)數(shù)據(jù)分區(qū)內(nèi)的R樹空間數(shù)據(jù)索引讀取到內(nèi)存緩存中,通過(guò)匯總每個(gè)分區(qū)內(nèi)的查詢結(jié)果實(shí)現(xiàn)所有海洋時(shí)空數(shù)據(jù)對(duì)象的過(guò)濾功能。
實(shí)驗(yàn)使用的海洋時(shí)空數(shù)據(jù)主要來(lái)自于NOAA的NCEP再分析數(shù)據(jù)集,地理網(wǎng)格經(jīng)度分別為2.5°,1.25°與0.83°,共分為17層,數(shù)據(jù)量大小為37.4、147.9和332.0 GB,經(jīng)過(guò)解析處理和插值加密等預(yù)處理操作以TSV文件格式預(yù)先存儲(chǔ)在分布式文件系統(tǒng)中。實(shí)驗(yàn)使用的臺(tái)風(fēng)中心、路徑、7級(jí)風(fēng)圈半徑等參數(shù)信息匯總了中國(guó)氣象網(wǎng)以及各地海洋預(yù)報(bào)臺(tái)網(wǎng)站發(fā)布的公開數(shù)據(jù),其中的2018年第22號(hào)臺(tái)風(fēng)山竹的參數(shù)信息整合為本次實(shí)驗(yàn)的XML數(shù)據(jù)模型信息。實(shí)驗(yàn)集群共包含12個(gè)物理節(jié)點(diǎn),Spark集群包含1個(gè)Master節(jié)點(diǎn)與11個(gè)Worker節(jié)點(diǎn),每個(gè)Worker節(jié)點(diǎn)使用了6 GB內(nèi)存存儲(chǔ)。高可用模塊使用了3個(gè)節(jié)點(diǎn)存儲(chǔ)日志和相關(guān)配置信息。
4.2 實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)設(shè)計(jì)了兩種不同的索引方案對(duì)臺(tái)風(fēng)的海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)查詢進(jìn)行測(cè)試,方案一使用了基于海洋時(shí)空數(shù)據(jù)對(duì)象構(gòu)建的R樹空間數(shù)據(jù)索引,方案二使用了基于空間數(shù)據(jù)分區(qū)構(gòu)建的R樹空間數(shù)據(jù)索引。檢索對(duì)象為臺(tái)風(fēng)山竹的時(shí)空過(guò)程,檢索的時(shí)間區(qū)間范圍為2018年的9月11日6 時(shí)—15日8時(shí),氣壓范圍為300~1 000 hPa。實(shí)驗(yàn)結(jié)果如表1,2所示。
表1 方案一檢索效率
表2 方案二檢索效率
表1記錄了方案1的查詢時(shí)間和效率,指標(biāo)中的1v1~lv7為檢索算法在查詢1~7層數(shù)據(jù)所消耗的時(shí)間。方案一在37.4 GB數(shù)據(jù)集上的分層平均查詢時(shí)間為8.2 s,檢索結(jié)果集大小為378.0 kB,檢索速率為6.6 kB/s;在147.9 GB數(shù)據(jù)集上的分層平均查詢時(shí)間為49.3 s,檢索結(jié)果集大小為1 525.8 kB,檢索速率為4.4 kB/s;在332.0 GB數(shù)據(jù)集上的分層平均查詢時(shí)間為95.7 s,檢索結(jié)果集大小為3 461.1 kB,檢索速率為5.2 kB/s。
表2記錄了方案2的查詢時(shí)間和效率。方案二中算法在37.4 GB數(shù)據(jù)集上的分層平均查詢時(shí)間為1.0 s,檢索結(jié)果集大小為378.0 kB,檢索速率為51.7 kB/s;在147.9 GB數(shù)據(jù)集上的分層平均查詢時(shí)間為3.7 s,檢索結(jié)果集大小為1 525.8 kB,檢索速率為58.4 kB/s;在332.0 GB數(shù)據(jù)集上的分層平均查詢時(shí)間為8.8 s,檢索結(jié)果集大小為3 461.1 kB,檢索速率為56.1 kB/s。
在海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的查詢實(shí)驗(yàn)中,數(shù)據(jù)檢索的總查詢時(shí)間為實(shí)驗(yàn)的核心指標(biāo),總查詢時(shí)間的增長(zhǎng)趨勢(shì)如圖6所示。在對(duì)照組1中,方案一總查詢時(shí)間為57.5 s,方案二為7.3 s,方案二的查詢速度比方案一快了7.85倍。在對(duì)照組2中,方案一總查詢時(shí)間為345.4 s,方案二為26.1 s,方案二的查詢速度比方案一快了13.2倍。在對(duì)照組2中,方案一總查詢時(shí)間為669.6 s,方案二為61.6 s,方案二的查詢速度比方案一快了10.9倍。橫向?qū)Ρ葋?lái)看,方案二的查詢速度明顯較快,且隨著數(shù)據(jù)量增大查詢效率進(jìn)一步拉大。
圖6 查詢時(shí)間增長(zhǎng)趨勢(shì)圖
經(jīng)過(guò)分析可知,方案一的查詢時(shí)間相對(duì)數(shù)據(jù)量的增長(zhǎng)速率較高,不過(guò)總體上趨近于線性增長(zhǎng)。主要原因是該查詢方案構(gòu)建的索引策略在空間屬性信息過(guò)濾階段需要訪問(wèn)各個(gè)數(shù)據(jù)分區(qū)內(nèi)的R樹,如果數(shù)據(jù)集的規(guī)模超過(guò)了集群Worker節(jié)點(diǎn)的內(nèi)存緩存限制時(shí),部分?jǐn)?shù)據(jù)分區(qū)需要保存在硬盤上,數(shù)據(jù)量增大時(shí)磁盤內(nèi)的數(shù)據(jù)分區(qū)所占比例越來(lái)越高,從而逐步降低查詢性能。方案二的查詢時(shí)間增長(zhǎng)率較低,原因在于該方案通過(guò)R樹空間數(shù)據(jù)索引查詢海洋時(shí)空數(shù)據(jù)對(duì)象所在分片文件的位置,因此在數(shù)據(jù)過(guò)濾的效率主要與分片篩選階段搜索到的分片文件數(shù)量以及每個(gè)分片文件的數(shù)據(jù)量有關(guān)。當(dāng)數(shù)據(jù)精度提高,而分片文件數(shù)據(jù)量大小保持不變,將使得空間區(qū)域的劃分更加細(xì)致。這樣使得分片篩選得到的數(shù)據(jù)冗余更小,存儲(chǔ)和檢索效率也得到進(jìn)一步提升。
圖7為兩種方案在不同數(shù)據(jù)集上的索引構(gòu)建時(shí)間對(duì)比圖。對(duì)比可得,方案一的索引構(gòu)建效率較高,但兩者索引構(gòu)建效率的比率并未拉開明顯差距,因此在保證數(shù)據(jù)檢索效率的前提下,方案二的索引構(gòu)建效率可以接受。雖然方案二因數(shù)據(jù)分區(qū)降低了索引構(gòu)建效率,但查詢效率穩(wěn)定高效,能夠應(yīng)對(duì)海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的檢索和處理需求。
圖7 索引建立時(shí)間對(duì)比圖
5 結(jié)語(yǔ)
針對(duì)海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的組織與檢索問(wèn)題,首先根據(jù)檢索查詢的語(yǔ)義提出了一種海洋現(xiàn)象過(guò)程對(duì)象數(shù)據(jù)組織模型,以支持后續(xù)數(shù)據(jù)檢索。在面向過(guò)程的海洋時(shí)空檢索算法中結(jié)合了分布式計(jì)算與R樹空間數(shù)據(jù)索引等技術(shù),實(shí)現(xiàn)了檢索階段的空間屬性信息過(guò)濾和時(shí)間屬性信息過(guò)濾,同時(shí)為了更好的優(yōu)化算法執(zhí)行效率,設(shè)計(jì)了三維空間數(shù)據(jù)分片策略對(duì)海洋時(shí)空數(shù)據(jù)場(chǎng)進(jìn)行空間區(qū)劃劃分,形成的每個(gè)海洋時(shí)空數(shù)據(jù)分片做為數(shù)據(jù)分區(qū),并基于空間數(shù)據(jù)分區(qū)構(gòu)建R樹空間數(shù)據(jù)索引,通過(guò)查找R樹篩選海洋時(shí)空數(shù)據(jù)分片。實(shí)驗(yàn)結(jié)果表明,面向過(guò)程的海洋時(shí)空數(shù)據(jù)檢索算法能夠?qū)崿F(xiàn)海洋現(xiàn)象過(guò)程時(shí)空數(shù)據(jù)的快速有效檢索。由于實(shí)驗(yàn)所使用的數(shù)據(jù)量和數(shù)據(jù)種類有限,后續(xù)的研究中有待于收集更為完備的數(shù)據(jù),在更大規(guī)模的數(shù)據(jù)集上測(cè)試,進(jìn)一步提高和優(yōu)化數(shù)據(jù)檢索的效率。
猜你喜歡上下分片與詞的時(shí)空佈局 詞學(xué)(2022年1期)2022-10-27 08:06:12跨越時(shí)空的相遇 四川黨的建設(shè)(2022年8期)2022-04-28 21:29:35鏡中的時(shí)空穿梭 小學(xué)生學(xué)習(xí)指導(dǎo)(低年級(jí))(2020年11期)2020-12-14 07:28:10分片光滑邊值問(wèn)題的再生核方法 數(shù)學(xué)物理學(xué)報(bào)(2020年5期)2020-11-26 06:06:48CDN存量MP4視頻播放優(yōu)化方法 廣東通信技術(shù)(2020年10期)2020-10-26 06:36:52基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn) 火控雷達(dá)技術(shù)(2018年4期)2019-01-15 05:07:22玩一次時(shí)空大“穿越” 作文大王·低年級(jí)(2018年10期)2018-12-06 06:22:44時(shí)空之門 小獼猴智力畫刊(2016年5期)2016-05-14 09:21:39元數(shù)據(jù)驅(qū)動(dòng)的多中心空間數(shù)據(jù)同步方法研究 測(cè)繪科學(xué)與工程(2016年4期)2016-04-17 06:51:13基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲(chǔ)與組織研究 測(cè)繪科學(xué)與工程(2014年2期)2014-02-27 07:05:49