李研研,王凱
吉林省地礦信息中心,吉林 長(zhǎng)春 130061
大數(shù)據(jù)是在二十世紀(jì)八十年代由全球知名咨詢公司麥肯錫在研究報(bào)告中首次提出,在該研究報(bào)告中定義大數(shù)據(jù)為通過網(wǎng)絡(luò)技術(shù)對(duì)數(shù)據(jù)進(jìn)行獲取、處理、分析,從中提取到海量的有價(jià)值的交易數(shù)據(jù)或傳感數(shù)據(jù)。當(dāng)前城市地質(zhì)工作,同樣要面對(duì)各種復(fù)雜類型數(shù)據(jù)的采集、挖掘、處理、分析、應(yīng)用問題,這些均與“大數(shù)據(jù)”的目的不謀而合。城市地質(zhì)資料應(yīng)該是“大數(shù)據(jù)”的重要組成部分。對(duì)城市地質(zhì)資料進(jìn)行數(shù)字化,并通過大數(shù)據(jù)的疊加分析,規(guī)律判定、可視化操作等程序,可以更加有效的支撐國土空間規(guī)劃、土地開發(fā)利用管理、地質(zhì)災(zāi)害防治救援、城鎮(zhèn)開發(fā)基礎(chǔ)等地質(zhì)信息輔助應(yīng)用服務(wù)。
城市地質(zhì)資料大數(shù)據(jù)存儲(chǔ)可以對(duì)所有城市地質(zhì)資料數(shù)據(jù)綜合考量,分類施策,對(duì)癥下藥,整合梳理,有效地解決城市地質(zhì)資料“數(shù)據(jù)孤島”問題。對(duì)于原始城市地質(zhì)靜態(tài)數(shù)據(jù),可以將數(shù)據(jù)帶進(jìn)程序,對(duì)于動(dòng)態(tài)數(shù)據(jù),可以帶程序進(jìn)數(shù)據(jù)。對(duì)于結(jié)構(gòu)化數(shù)據(jù)可以使用關(guān)系數(shù)據(jù)庫技術(shù)來處理,對(duì)于非結(jié)構(gòu)化數(shù)據(jù)則要用NoSQL(非關(guān)系型的數(shù)據(jù)庫)來處理。所有的地質(zhì)數(shù)據(jù)庫存儲(chǔ)設(shè)計(jì)主要是結(jié)合業(yè)務(wù)場(chǎng)景將用到的所有數(shù)據(jù)進(jìn)行抽取分類存儲(chǔ)管理,按照結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)、非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)、空間數(shù)據(jù)存儲(chǔ)以及動(dòng)態(tài)監(jiān)控?cái)?shù)據(jù)的存儲(chǔ),設(shè)計(jì)幾種方式進(jìn)行混合存儲(chǔ)設(shè)計(jì)。
結(jié)構(gòu)化數(shù)據(jù)采用關(guān)系型數(shù)據(jù)庫進(jìn)行管理,存儲(chǔ)數(shù)據(jù)主要為地質(zhì)矢量圖形表和地質(zhì)業(yè)務(wù)屬性表等二維關(guān)系結(jié)構(gòu)數(shù)據(jù)。
將非結(jié)構(gòu)化數(shù)據(jù)本身存儲(chǔ)在內(nèi)存介質(zhì)上,非結(jié)構(gòu)化數(shù)據(jù)元數(shù)據(jù)(如文件路徑、文件名、文件格式、文件大小等)存儲(chǔ)到數(shù)據(jù)庫表中,并與對(duì)應(yīng)空間數(shù)據(jù)對(duì)象建立關(guān)聯(lián)關(guān)系,降低數(shù)據(jù)庫資源消耗的同時(shí)也減輕了數(shù)據(jù)維護(hù)的壓力。
(1)非關(guān)系型數(shù)據(jù)庫存儲(chǔ)(NoSQL)。存儲(chǔ)數(shù)據(jù)可包括切片數(shù)據(jù)緩存、日志緩存數(shù)據(jù)。
(2)分布式文件系統(tǒng)(HDFS)。分布式文件系統(tǒng)存儲(chǔ)數(shù)據(jù)可包括辦公文檔、地質(zhì)報(bào)告、文本、圖片、圖像、音頻、視頻信息等格式數(shù)據(jù)。
1.3.1 矢量數(shù)據(jù)存儲(chǔ)
主要采用GIS空間數(shù)據(jù)庫+關(guān)系型數(shù)據(jù)庫來對(duì)空間數(shù)據(jù)進(jìn)行物理存儲(chǔ)設(shè)計(jì)。矢量空間數(shù)據(jù)采用關(guān)系型數(shù)據(jù)庫RDBMS+空間數(shù)據(jù)庫引擎等方式進(jìn)行存儲(chǔ)。存儲(chǔ)數(shù)據(jù)包括工作區(qū)以往區(qū)域地質(zhì)圖、構(gòu)造地質(zhì)圖、基巖地質(zhì)圖,調(diào)查區(qū)已有的遙感影像、地球物理、地球化學(xué)和礦區(qū)大比例尺填圖等提供全局總貌和揭示隱伏信息的各種矢量資料。
1.3.2 柵格數(shù)據(jù)存儲(chǔ)
對(duì)于遙感影像等柵格類數(shù)據(jù)由于數(shù)據(jù)量巨大,直接存儲(chǔ)到數(shù)據(jù)庫中不僅增加了數(shù)據(jù)庫運(yùn)行壓力,同時(shí)柵格數(shù)據(jù)本身的讀取速度也會(huì)大大降低。將體量巨大的柵格數(shù)據(jù)本身保留在數(shù)據(jù)庫外部而僅在數(shù)據(jù)庫中保存數(shù)據(jù)的引用。不僅便于柵格數(shù)據(jù)的管理和查詢,同時(shí)能夠提供高級(jí)柵格查詢功能以及實(shí)施函數(shù)處理,還可用作提供影像服務(wù)的數(shù)據(jù)源。
1.4.1 實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)
實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)主要包括平臺(tái)中的結(jié)構(gòu)化數(shù)據(jù)如站點(diǎn)信息、用戶信息等數(shù)據(jù)以及傳感器采集到的環(huán)境監(jiān)測(cè)數(shù)據(jù)。這兩類數(shù)據(jù)均可以采用關(guān)系形數(shù)據(jù)庫進(jìn)行存儲(chǔ)。
1.4.2 歷史數(shù)據(jù)的管理
動(dòng)態(tài)監(jiān)測(cè)數(shù)據(jù)不緊需要支持可視化及智能化分析,還需要支持對(duì)歷史數(shù)據(jù)查詢和回滾。系統(tǒng)需要接受多種類型終端設(shè)備采集上報(bào),數(shù)據(jù)刷新較快、只用關(guān)系型數(shù)據(jù)庫來存儲(chǔ)會(huì)出現(xiàn)數(shù)據(jù)量增長(zhǎng)過快、系統(tǒng)故障時(shí)會(huì)導(dǎo)致系統(tǒng)數(shù)據(jù)丟失。因此還需要對(duì)所有采集的原始數(shù)據(jù)進(jìn)行備份。采用基于分布式的NoSql數(shù)據(jù)庫來存儲(chǔ),能夠滿足存儲(chǔ)效率、數(shù)據(jù)庫擴(kuò)容、數(shù)據(jù)冗余備份以及與實(shí)時(shí)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步等多個(gè)方面的需求, 可以將監(jiān)測(cè)設(shè)備采集的數(shù)據(jù)及設(shè)備狀態(tài)信息記錄到NoSql類型的數(shù)據(jù)庫中。
元數(shù)據(jù)管理按照中國地質(zhì)調(diào)查局提出的元數(shù)據(jù)標(biāo)準(zhǔn),對(duì)地質(zhì)相關(guān)數(shù)據(jù)進(jìn)行統(tǒng)一描述,包括元數(shù)據(jù)基礎(chǔ)信息、標(biāo)識(shí)信息、數(shù)據(jù)質(zhì)量信息、空間參照系信息、分發(fā)信息、內(nèi)容信息、聯(lián)系單位等進(jìn)行描述。其主要功能包括新建元數(shù)據(jù)、導(dǎo)入元數(shù)據(jù)、導(dǎo)出元數(shù)據(jù)、刪除元數(shù)據(jù)、關(guān)聯(lián)元數(shù)據(jù)、編輯元數(shù)據(jù)、元數(shù)據(jù)查詢等(圖1)。
圖1 元數(shù)據(jù)管理主界面
提供對(duì)元數(shù)據(jù)的初始創(chuàng)建功能,通過選定目錄樹節(jié)點(diǎn),實(shí)現(xiàn)創(chuàng)建元數(shù)據(jù)功能。
通過將符合標(biāo)準(zhǔn)的元數(shù)據(jù)壓縮成文件拖放到界面中,實(shí)現(xiàn)對(duì)元數(shù)據(jù)的批量導(dǎo)入和創(chuàng)建。
通過對(duì)選擇的元數(shù)據(jù)進(jìn)行導(dǎo)出操作,實(shí)現(xiàn)將元數(shù)據(jù)導(dǎo)出為符合標(biāo)準(zhǔn)的元數(shù)據(jù)文件壓縮文檔。
實(shí)現(xiàn)將當(dāng)前選擇的元數(shù)據(jù)記錄從數(shù)據(jù)庫中刪除的操作。
通過選擇元數(shù)據(jù)和附件文件,自動(dòng)將當(dāng)前的元數(shù)據(jù)信息與附件文件關(guān)聯(lián)起來,當(dāng)查看元數(shù)據(jù)時(shí),可以看到關(guān)聯(lián)的文件內(nèi)容。
通過選擇的元數(shù)據(jù),進(jìn)行編輯元數(shù)據(jù)元素的屬性值,包括元數(shù)據(jù)基礎(chǔ)信息、標(biāo)識(shí)信息、數(shù)據(jù)質(zhì)量信息、空間參照系信息、分發(fā)信息、內(nèi)容信息、聯(lián)系單位等,實(shí)現(xiàn)對(duì)元數(shù)據(jù)信息的修改和更新。同時(shí)提供編輯中的后退、撤銷和保存功能(圖2)。
圖2 編輯元數(shù)據(jù)
通過在目錄樹中輸入的關(guān)鍵字進(jìn)行檢索,得到符合要求的元數(shù)據(jù),然后可以進(jìn)行查看、編輯、刪除、關(guān)聯(lián)、導(dǎo)出等操作。提供元數(shù)據(jù)目錄和樹狀圖兩種顯示方案(圖3)。
圖3 元數(shù)據(jù)查詢
城市地質(zhì)大數(shù)據(jù)來源具有多源異構(gòu)、海量、多比例尺、多時(shí)空尺度的特點(diǎn),因此,在傳統(tǒng)幾種數(shù)據(jù)庫引擎的基礎(chǔ)之上,針對(duì)城市地質(zhì)數(shù)據(jù)的特點(diǎn),還可以更加精細(xì)的采用構(gòu)建分布式數(shù)據(jù)庫引擎進(jìn)行管理,其集成整合了多種開源分布式數(shù)據(jù)庫和文件系統(tǒng),分別用來存儲(chǔ)和管理關(guān)系型數(shù)據(jù)、切片型數(shù)據(jù)、實(shí)時(shí)型數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),形成針對(duì)地質(zhì)大數(shù)據(jù)應(yīng)用場(chǎng)景相關(guān)的解決方案。
傳統(tǒng)關(guān)系型數(shù)據(jù)庫在存儲(chǔ)海量矢量數(shù)據(jù)時(shí),只能部署在單個(gè)服務(wù)器上,無法承受海量數(shù)據(jù)的存儲(chǔ)和查詢請(qǐng)求,尤其是對(duì)于對(duì)象個(gè)數(shù)超過千萬條的復(fù)雜空間數(shù)據(jù),其性能會(huì)急劇下降。PostgreSQL是一個(gè)功能強(qiáng)大的開源關(guān)系型數(shù)據(jù)庫,其具備矢量點(diǎn)線面的高效存儲(chǔ)和查詢的能力,并且可以構(gòu)建分布式的數(shù)據(jù)庫集群。通過將PostgreSQL集成可實(shí)現(xiàn)海量矢量數(shù)據(jù)的分布式存儲(chǔ),將傳統(tǒng)數(shù)據(jù)庫的復(fù)雜表進(jìn)行數(shù)據(jù)分塊分節(jié)點(diǎn),同時(shí)可控制每個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)量在千萬條左右,在此基礎(chǔ)之上利用空間索引分區(qū)技術(shù)實(shí)現(xiàn)快速查詢,最終有效解決傳統(tǒng)關(guān)系型數(shù)據(jù)存在的瓶頸問題。
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,它是一個(gè)跨平臺(tái)的、面向文檔的數(shù)據(jù)庫,旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB支持的數(shù)據(jù)結(jié)構(gòu)非常松散,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。MongoDB最大的特點(diǎn)是支持查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。MongoDB數(shù)據(jù)庫主要用來存儲(chǔ)柵格瓦片、矢量瓦片及三維瓦片等。
ElasticSearch是一個(gè)開源的搜索引擎,建立在全文搜索引擎庫Apache Lucene上。Apache Lucene被認(rèn)為是當(dāng)下最先進(jìn)、高性能、全功能的搜索引擎庫。但它僅僅是一個(gè)庫,為充分發(fā)揮其功能,需要使用Java并將其直接集成到應(yīng)用程序中。ElasticSearch實(shí)現(xiàn)了隨時(shí)可用和按需擴(kuò)容。ElasticSearch真正的擴(kuò)容能力來自水平擴(kuò)容,即通過為集群添加更多的節(jié)點(diǎn),并將負(fù)載壓力和穩(wěn)定性分散給這些節(jié)點(diǎn)來實(shí)現(xiàn)。
ElasticSearch主要用來進(jìn)行流數(shù)據(jù)的存儲(chǔ),它提供了一個(gè)分布式多用戶能力的全文搜索引擎,主要應(yīng)用于云計(jì)算環(huán)境中,能夠達(dá)到實(shí)時(shí)搜索、穩(wěn)定、可靠、快速的功能需求。
HDFS是Hadoop分布式系統(tǒng)體系結(jié)構(gòu)中的核心,主要實(shí)現(xiàn)了分布式文件系統(tǒng)。HDFS在處理超大文件上非常有優(yōu)勢(shì),而且支持流式的訪問數(shù)據(jù),它的設(shè)計(jì)建立在“一次寫入,多次讀取”任務(wù)的基礎(chǔ)上。HDFS中,一個(gè)數(shù)據(jù)集如果由數(shù)據(jù)源生成,就會(huì)被復(fù)制分發(fā)到不同的存儲(chǔ)節(jié)點(diǎn)中,響應(yīng)不同的數(shù)據(jù)請(qǐng)求。
3.4.1 實(shí)時(shí)數(shù)據(jù)存儲(chǔ)創(chuàng)建及配置
傳統(tǒng)關(guān)系型數(shù)據(jù)庫不適用于海量實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)和分析,主要原因是實(shí)時(shí)數(shù)據(jù)具有數(shù)據(jù)海量、結(jié)構(gòu)單一、存儲(chǔ)和交互速度頻繁等特征,如何有效實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的采集、存儲(chǔ)和檢索是實(shí)時(shí)數(shù)據(jù)的難題。實(shí)時(shí)數(shù)據(jù)具有持續(xù)產(chǎn)生、實(shí)時(shí)動(dòng)態(tài)更新等多種特點(diǎn),它需要持續(xù)的更新數(shù)據(jù)庫記錄,前端應(yīng)用中也需要實(shí)時(shí)展示最新狀態(tài),而這種更新頻率通常是秒級(jí)或者是分鐘級(jí)的,而傳統(tǒng)的、靜態(tài)的GIS數(shù)據(jù)更新頻率,可能會(huì)每半年或一年,或者更長(zhǎng)的周期,才會(huì)集中大規(guī)模的更新一次數(shù)據(jù)。
3.4.2 關(guān)系數(shù)據(jù)存儲(chǔ)創(chuàng)建及配置
傳統(tǒng)關(guān)系型數(shù)據(jù)庫在存儲(chǔ)海量矢量數(shù)據(jù)時(shí),只能部署在單個(gè)服務(wù)器上,無法承受海量數(shù)據(jù)的存儲(chǔ)和查詢請(qǐng)求,尤其是對(duì)于對(duì)象個(gè)數(shù)超過千萬條的復(fù)雜空間數(shù)據(jù),其性能會(huì)急劇下降。PostgreSQL是一個(gè)功能強(qiáng)大的開源關(guān)系型數(shù)據(jù)庫,其具備矢量點(diǎn)線面的高效存儲(chǔ)和查詢的能力,并且可以構(gòu)建分布式的數(shù)據(jù)庫集群。通過將PostgreSQL集成可實(shí)現(xiàn)海量矢量數(shù)據(jù)的分布式存儲(chǔ),將傳統(tǒng)數(shù)據(jù)庫的復(fù)雜表進(jìn)行數(shù)據(jù)分塊分節(jié)點(diǎn),同時(shí)可控制每個(gè)存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)量在千萬條左右,在此基礎(chǔ)之上利用空間索引分區(qū)技術(shù)實(shí)現(xiàn)快速查詢,最終有效解決傳統(tǒng)關(guān)系型數(shù)據(jù)存在的瓶頸問題。
3.4.3 瓦片數(shù)據(jù)存儲(chǔ)創(chuàng)建及配置
傳統(tǒng)關(guān)系型數(shù)據(jù)庫存儲(chǔ)海量切片數(shù)據(jù)時(shí),存在硬盤I/O讀寫瓶頸,另外為了維護(hù)數(shù)據(jù)的一致性,也會(huì)犧牲很大的讀寫效率,從而導(dǎo)致切片數(shù)據(jù)的并發(fā)讀取速度無法滿足應(yīng)用需求。MongoDB是一個(gè)基于分布式存儲(chǔ)的NoSQL型數(shù)據(jù)庫,其介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫之間,所支持的數(shù)據(jù)結(jié)構(gòu)非常松散,可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。集成MongoDB后,將其作為切片數(shù)據(jù)的存儲(chǔ)引擎,能夠?qū)崿F(xiàn)億級(jí)切片數(shù)據(jù)的存儲(chǔ),可方便的復(fù)制遷移以及秒級(jí)的并發(fā)訪問,實(shí)現(xiàn)了切片數(shù)據(jù)的高性能存儲(chǔ)和讀取,有效地解決切片數(shù)據(jù)的高并發(fā)讀取瓶頸。
3.4.4 分布文件存儲(chǔ)創(chuàng)建及配置
通過基于HDFS的數(shù)據(jù)引擎,HDFS是Hadoop分布式系統(tǒng)體系結(jié)構(gòu)中的核心,主要實(shí)現(xiàn)了分布式文件系統(tǒng)。創(chuàng)建分布式文件存儲(chǔ)即是指定HDFS數(shù)據(jù)庫的過程。
3.4.5 Hbase文件存儲(chǔ)創(chuàng)建及配置
Hbase是一種構(gòu)建在HDFS之上的分布式、面向列和提供高可靠性、高性能、可伸縮、實(shí)時(shí)讀寫的開源數(shù)據(jù)庫系統(tǒng),適用于需要實(shí)時(shí)讀寫、隨機(jī)訪問超大規(guī)模數(shù)據(jù)的場(chǎng)景。其基于分布式架構(gòu),即使單點(diǎn)出現(xiàn)故障,整個(gè)集群也不會(huì)受到影響,服務(wù)可用性高;采用Google的BigTable的核心設(shè)計(jì)理念,管理PB級(jí)數(shù)據(jù),擴(kuò)展能力強(qiáng),當(dāng)Hbase的性能不足,可以通過增加Hbase的服務(wù)器數(shù)量來提高性能,而且增加服務(wù)器對(duì)外部應(yīng)用來說都是透明的,外部應(yīng)用不會(huì)有任何感知,不需要修改任何東西。自動(dòng)分片技術(shù),當(dāng)數(shù)據(jù)寫入時(shí)根據(jù)節(jié)點(diǎn)存儲(chǔ)情況自動(dòng)切分?jǐn)?shù)據(jù),重新分布。Hbase具有超高效的數(shù)據(jù)讀寫能力,數(shù)據(jù)寫入時(shí),都會(huì)先存儲(chǔ)在內(nèi)存中,當(dāng)內(nèi)存達(dá)到一定數(shù)值時(shí)才會(huì)寫入磁盤中。當(dāng)數(shù)據(jù)還在內(nèi)存時(shí),可以進(jìn)行修改、查詢,直接在內(nèi)存中操作,非常高效。在Hbase中,所有涉及到數(shù)據(jù)的更改操作,都是優(yōu)先使用內(nèi)存中的數(shù)據(jù),減少了I/O時(shí)間,使整個(gè)系統(tǒng)保持高讀寫的性能。創(chuàng)建Hbase文件存儲(chǔ)就是安裝Hbase數(shù)據(jù)庫的過程和指定存儲(chǔ)路徑。
3.4.6 數(shù)據(jù)轉(zhuǎn)換ETL工具
數(shù)據(jù)轉(zhuǎn)換是通過ETL工具實(shí)現(xiàn)的,ETL(Extract, Transformation, Load)是清洗、轉(zhuǎn)換、加載,用戶用數(shù)據(jù)源抽出所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗、轉(zhuǎn)換,最終按照預(yù)定義好的數(shù)據(jù)倉庫模型,將數(shù)據(jù)加載到數(shù)據(jù)倉庫中去,使用GIS點(diǎn)圖層地名和地名地址數(shù)據(jù)庫之間的數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)與GIS要素?cái)?shù)據(jù)之間的轉(zhuǎn)換。
為適應(yīng)現(xiàn)代化大數(shù)據(jù)時(shí)代的挑戰(zhàn),簡(jiǎn)單、經(jīng)濟(jì),有效的地質(zhì)數(shù)據(jù)信息化管理有利于推行大數(shù)據(jù)技術(shù)標(biāo)準(zhǔn)體系化,促進(jìn)地質(zhì)資料信息化的進(jìn)程。為推動(dòng)地質(zhì)大數(shù)據(jù)綜合開發(fā)利用,整合多年來積累的原始地質(zhì)成果資料,建立系統(tǒng)一體化、數(shù)據(jù)集成化、信息綜合化和成果可視化的地質(zhì)大數(shù)據(jù)平臺(tái),促進(jìn)行業(yè)數(shù)據(jù)共享與整合,為實(shí)現(xiàn)地質(zhì)勘查業(yè)務(wù)信息化、管理信息化、服務(wù)信息化提供理論依據(jù)[2]。