
GeoMesa和GeoServer

與GeoMesa集成
為了方便用戶使用GeoMesa中存儲的數(shù)據(jù),GeoMesa通過實現(xiàn)GeoTools接口,提供了使用OGC標(biāo)準(zhǔn)服務(wù)接口訪問數(shù)據(jù)的能力,實現(xiàn)的OGC標(biāo)準(zhǔn)有:
Web Feature Service (WFS)
Web Mapping Service (WMS)
Web Processing Service (WPS)
Web Coverage Service (WCS)


鍵值對存儲和Z曲線
GeoMesa的數(shù)據(jù)存儲使用 key-value數(shù)據(jù)庫。key-value數(shù)據(jù)庫是一種NoSQL數(shù)據(jù)庫,其數(shù)據(jù)按照鍵值對的形式進行組織、索引和存儲。 Accumulo,HBase和Google Cloud Bigtable對這些鍵進行排序,并可將它們存儲在任意數(shù)量的節(jié)點(服務(wù)器)上。
當(dāng)使用key-value數(shù)據(jù)庫時,Key的良好設(shè)計可以使應(yīng)用程序更高效的運行。與關(guān)系數(shù)據(jù)庫不同的是,key-value數(shù)據(jù)庫中會頻繁的使用key進行查詢。例如在訂單數(shù)據(jù)庫中,會以訂單號作為key進行存儲,當(dāng)用戶查詢訂單的時候,即可用通過訂單號直接查詢到訂單數(shù)據(jù)并返回該條數(shù)據(jù)。Accumulo,HBase和Cloud Bigtable都是使用類似的機制進行工作,GeoMesa同樣也是使用該機制來進行數(shù)據(jù)組織。GeoMesa根據(jù)時空數(shù)據(jù)的特點,實現(xiàn)了生成包含時空信息的Key的算法,算法的基本思想如圖5:

圖中的紅線被稱為空間填充曲線,又稱為Z曲線。該線順序訪問每個單元格一次,并且能夠保證訪問次序的唯一性。Z曲線也能用于高分辨率地圖,如圖6:

Z曲線上的每個點都可以賦予一個順序值,通過這個順序值,GeoMesa將經(jīng)緯度表示為一個整數(shù),這樣就將二維數(shù)據(jù)降為一維數(shù)據(jù),可以作為key-value數(shù)據(jù)庫中的key使用。因為Z曲線支持多維數(shù)據(jù),所以GeoMesa也支持將多維數(shù)據(jù)降為一維數(shù)據(jù),作為key使用。
GeoMesa 索引
GeoMesa 索引的基本原理計算將三維(經(jīng)度、緯度、時間)的數(shù)據(jù)按照Z曲線進行降維,得到一維數(shù)據(jù)作為Key使用,方便在key-value數(shù)據(jù)庫中進行查詢。實際的Key結(jié)構(gòu)比簡單的鍵值對更復(fù)雜。在Accumulo中GeoMesa索引的結(jié)構(gòu)如圖7:
