孟令達(dá),朱琳,3,陳瑞瓊,劉婭,3,李孝輝,3
基于非關(guān)系型的時間頻率科學(xué)數(shù)據(jù)存儲策略研究*
孟令達(dá)1,2,朱琳1,2,3,陳瑞瓊1,2,劉婭1,2,3,李孝輝1,2,3
(1. 中國科學(xué)院 國家授時中心,西安 710600;2. 中國科學(xué)院 時間頻率基準(zhǔn)重點(diǎn)實驗室,西安 710600;3. 中國科學(xué)院大學(xué),北京 100049)
針對時間頻率科學(xué)數(shù)據(jù)入庫與檢索效率低、多源異構(gòu)數(shù)據(jù)存儲管理困難、多用戶高并發(fā)數(shù)據(jù)服務(wù)能力差的問題,提出了一種基于非關(guān)系型(NoSQL)數(shù)據(jù)庫的時間頻率科學(xué)數(shù)據(jù)混合存儲策略。首先,分析了時間頻率科學(xué)數(shù)據(jù)特征及主流NoSQL數(shù)據(jù)庫的特點(diǎn),結(jié)合數(shù)據(jù)及信息服務(wù)需求,提出了基于NoSQL數(shù)據(jù)庫的混合存儲策略;然后,基于提出的混合存儲策略設(shè)計了數(shù)據(jù)存儲系統(tǒng)架構(gòu)及模型;最后,對提出的存儲策略進(jìn)行可行性和有效性進(jìn)行驗證。結(jié)果表明,提出的混合存儲策略較傳統(tǒng)存儲策略性能有較大提升,能夠有效地滿足時間頻率科學(xué)數(shù)據(jù)服務(wù)、數(shù)據(jù)分析及知識獲取中對數(shù)據(jù)實時請求、高并發(fā)訪問及擴(kuò)展性的需求。
時間頻率;科學(xué)數(shù)據(jù)管理;數(shù)據(jù)存儲策略;數(shù)據(jù)庫
時間頻率科學(xué)數(shù)據(jù)來源于時間頻率研究、重大科學(xué)儀器研制與試驗和國家大科學(xué)裝置建設(shè)與運(yùn)行過程中產(chǎn)生的科學(xué)研究實驗數(shù)據(jù)、大科學(xué)儀器試驗數(shù)據(jù),和大科學(xué)裝置產(chǎn)生的觀測數(shù)據(jù)及國內(nèi)外時間頻率科學(xué)研究機(jī)構(gòu)和組織的相關(guān)時間頻率資料和信息等數(shù)據(jù)。加強(qiáng)和規(guī)范時間頻率科學(xué)數(shù)據(jù)管理,保障科學(xué)數(shù)據(jù)安全,提高數(shù)據(jù)存儲管理與開放共享水平,將進(jìn)一步促進(jìn)數(shù)據(jù)資源共享、按需使用、個性化定制等新數(shù)據(jù)及信息服務(wù)模式。同時,為大數(shù)據(jù)時代海量時間頻率科學(xué)數(shù)據(jù)知識獲取和科學(xué)發(fā)現(xiàn)提供基礎(chǔ),更好地支撐國家科技創(chuàng)新、經(jīng)濟(jì)社會發(fā)展和國家安全。
近年來,時間頻率科學(xué)的發(fā)展以及信息技術(shù)尤其數(shù)據(jù)獲取技術(shù)的發(fā)展和在時間頻率科學(xué)中的廣泛應(yīng)用,推動了時間頻率科學(xué)數(shù)據(jù)的獲取、傳輸、存儲和處理技術(shù)的進(jìn)步。隨著時間頻率科學(xué)大科學(xué)裝置、科學(xué)工程以及重大科學(xué)儀器的研制和建設(shè),各系統(tǒng)都開展了時間頻率科學(xué)數(shù)據(jù)庫建設(shè)工作。這造成了時間頻率科學(xué)數(shù)據(jù)種類越來越多、數(shù)據(jù)獲取周期越來越短、數(shù)據(jù)量爆炸式增長,各系統(tǒng)建設(shè)的時間頻率科學(xué)數(shù)據(jù)中心在科學(xué)數(shù)據(jù)的采集、存儲管理和數(shù)據(jù)服務(wù)在地理上呈分布式態(tài)勢,在科學(xué)數(shù)據(jù)業(yè)務(wù)類型上呈互補(bǔ)態(tài)勢。這一方面促使時間頻率科學(xué)數(shù)據(jù)產(chǎn)品的種類、數(shù)據(jù)量不斷增加,時間頻率應(yīng)用領(lǐng)域不斷拓展,另一方面海量、異構(gòu)、分布式的時間頻率科學(xué)數(shù)據(jù)為傳統(tǒng)的數(shù)據(jù)管理方法帶來了巨大挑戰(zhàn)。因此,如何高效地對海量時間頻率科學(xué)數(shù)據(jù)進(jìn)行存儲管理,實現(xiàn)面向服務(wù)的多用戶并發(fā)數(shù)據(jù)處理,以更好地滿足知識獲取,成為亟待解決的技術(shù)問題。
時間頻率科學(xué)數(shù)據(jù)按照時間頻率科學(xué)業(yè)務(wù)系統(tǒng)類型并結(jié)合時間頻率科學(xué)研究特點(diǎn),可將我國時間頻率科學(xué)數(shù)據(jù)來源劃分為守時系統(tǒng)類數(shù)據(jù)、授時系統(tǒng)類數(shù)據(jù)、授時監(jiān)測系統(tǒng)類數(shù)據(jù)和科學(xué)實驗與儀器研制類數(shù)據(jù)四個方面,具體時間頻率科學(xué)數(shù)據(jù)來源和數(shù)據(jù)種類如表1所示。
表1 時間頻率科學(xué)數(shù)據(jù)種類匯總表
續(xù)表1
時間頻率科學(xué)由于業(yè)務(wù)面向?qū)ο蟆I(yè)務(wù)系統(tǒng)分布區(qū)域、時間頻率測量比對手段、時間頻率數(shù)據(jù)處理方法、時間頻率科學(xué)業(yè)務(wù)系統(tǒng)關(guān)聯(lián)性等方面的因素,時間頻率科學(xué)數(shù)據(jù)具有數(shù)據(jù)量大(TB或PB級)、數(shù)據(jù)種類繁多、數(shù)據(jù)結(jié)構(gòu)復(fù)雜、數(shù)據(jù)計算密集、數(shù)據(jù)交叉融合、多層級數(shù)據(jù)迭代演化、短期應(yīng)用時效性和長期研究高價值特征。
現(xiàn)階段,時間頻率科學(xué)數(shù)據(jù)主要采用集中式存儲,數(shù)據(jù)管理方式包括文件方式、關(guān)系數(shù)據(jù)庫及文件加數(shù)據(jù)庫索引3種管理方式。其中,基于文件方式的時間頻率科學(xué)數(shù)據(jù)管理是采用操作系統(tǒng)中的文件管理系統(tǒng)實現(xiàn)數(shù)據(jù)文件組織管理。文件管理系統(tǒng)是操作系統(tǒng)用于明確存儲介質(zhì)和分區(qū)的方法與結(jié)構(gòu),對文件存儲介質(zhì)的空間進(jìn)行組織分配,并對存儲的文件的保護(hù)和檢索提供系統(tǒng)接口、對象操作和管理。通過附加的文本數(shù)據(jù)描述信息和文件組織規(guī)范,實現(xiàn)數(shù)據(jù)組織和數(shù)據(jù)實例之間的關(guān)聯(lián)[1]。關(guān)系型數(shù)據(jù)庫是一種廣為應(yīng)用的數(shù)據(jù)庫管理系統(tǒng),利用數(shù)據(jù)庫系統(tǒng)提供的接口實現(xiàn)數(shù)據(jù)的查詢和存取。采用數(shù)據(jù)庫存儲時間頻率科學(xué)數(shù)據(jù)是將測量比對設(shè)備產(chǎn)生的科學(xué)數(shù)據(jù),通過關(guān)系表和表的列屬性實現(xiàn)數(shù)據(jù)記錄的存儲和數(shù)據(jù)之間關(guān)系的描述[2-3]。但由于時間頻率科學(xué)數(shù)據(jù)存在種類、結(jié)構(gòu)與格式多樣化的特征,采用單一且更適用于結(jié)構(gòu)化、事務(wù)型的關(guān)系型數(shù)據(jù)庫管理方式,將難以實現(xiàn)海量、異構(gòu)數(shù)據(jù)的有效處理;文件加數(shù)據(jù)庫索引是采用文件系統(tǒng)和關(guān)系型性數(shù)據(jù)庫組合的存儲管理模式,數(shù)據(jù)文件中實體數(shù)據(jù)存儲于文件系統(tǒng)中,文件存儲目錄和元數(shù)據(jù)信息則存儲于關(guān)系型數(shù)據(jù)庫中[4-5]。文件加數(shù)據(jù)庫索引方式實現(xiàn)了復(fù)雜時間頻率科學(xué)數(shù)據(jù)文件目錄的有效管理和數(shù)據(jù)文件檢索,但由于數(shù)據(jù)文件和元數(shù)據(jù)的分別存儲會導(dǎo)致數(shù)據(jù)一致性差以及管理困難,同時在進(jìn)行數(shù)據(jù)服務(wù)和數(shù)據(jù)分析時,仍存在數(shù)據(jù)量大、數(shù)據(jù)結(jié)構(gòu)復(fù)雜時傳統(tǒng)文件系統(tǒng)讀寫效率低的問題。
綜上分析,現(xiàn)有的時間頻率科學(xué)數(shù)據(jù)存儲上要采用集中式存儲架構(gòu)和基于文件系統(tǒng)或關(guān)系型數(shù)據(jù)庫的統(tǒng)一數(shù)據(jù)存儲管理方式,這類系統(tǒng)數(shù)據(jù)入庫與檢索效率低、存儲容量有限、擴(kuò)展能力差、數(shù)據(jù)模型固定,無法滿足云計算和大數(shù)據(jù)計算環(huán)境下海量、異構(gòu)、分布式數(shù)據(jù)在知識獲取與和面向服務(wù)應(yīng)用中的高效數(shù)據(jù)存儲管理和多用戶高并發(fā)訪問需求。
大數(shù)據(jù)技術(shù)的分布式文件系統(tǒng)與NoSQL(not only SQL)數(shù)據(jù)庫為海量數(shù)據(jù)高效存儲、快速檢索、大數(shù)據(jù)知識獲取和在線數(shù)據(jù)分析與信息服務(wù)時間頻率科學(xué)數(shù)據(jù)存儲管理提供技術(shù)解決途徑。NoSQL數(shù)據(jù)庫提供了比關(guān)系型數(shù)據(jù)庫簡單、靈活的架構(gòu)和數(shù)據(jù)關(guān)系,具有高可用性、可伸縮性、負(fù)載均衡、高容錯能力和異構(gòu)環(huán)境運(yùn)行的特征[6-7]。典型的NoSQL產(chǎn)品有谷歌的Big Table、Apache Hadoop的Key-Column數(shù)據(jù)庫HBase、文檔數(shù)據(jù)庫MonogoDB、Key-Value數(shù)據(jù)庫(InfluxDB)和圖數(shù)據(jù)庫Hyper-GraphDB等[8-9]。各類NoSQL主要特征如表2所示。
表2 典型NoSQL數(shù)據(jù)庫及特征
HBase在HDFS(hadoop distributed file system)之上提供了對大數(shù)據(jù)的可伸縮、分布式、容錯和隨機(jī)讀寫導(dǎo)向。HBase根據(jù)列族來存儲數(shù)據(jù),列族包含多個列且可任意增加和刪除(百萬級);HBase通過添加RegionServer提升HBase上層的處理能力,通過添加Datanode擴(kuò)容;高并發(fā)時HBase集群中的單個節(jié)點(diǎn)IO延遲相對平穩(wěn),能獲得高并發(fā)、低延遲的服務(wù);稀疏主要是針對HBase列的靈活性,在列族中指定任意多的列,在列實體數(shù)據(jù)為空的情況下不占用存儲空間[10-11]。
InfluxDB是一個專門用于處理時間序列數(shù)據(jù)的高寫入和查詢負(fù)載的數(shù)據(jù)庫。InfluxDB采用LSM(log-structured mergetree)結(jié)構(gòu),數(shù)據(jù)先寫入內(nèi)存,當(dāng)內(nèi)存容量達(dá)到一定閾值之后flush到文件,將時間序列數(shù)據(jù)按照時間線進(jìn)行管理,使得同一數(shù)據(jù)源的tags不再冗余存儲,降低了數(shù)據(jù)的存儲量;時間序列和數(shù)值可在同一個Block內(nèi)獨(dú)立存儲,極大地提高了數(shù)據(jù)壓縮和檢索效率[12]。
時間頻率科學(xué)數(shù)據(jù)具有非結(jié)構(gòu)化、半結(jié)構(gòu)化、時序化及結(jié)構(gòu)化數(shù)據(jù)并存的特征。同時,數(shù)據(jù)存儲管理策略需滿足數(shù)據(jù)服務(wù)、數(shù)據(jù)分析與知識獲取的高效存取性能需求。因此,本文采用分布式文件系統(tǒng)、分布式數(shù)據(jù)庫管理系統(tǒng)、時間序列數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫管理系統(tǒng)組合存儲管理策略,設(shè)計符合各數(shù)據(jù)特征的數(shù)據(jù)存儲模型。基于NoSQL時間頻率科學(xué)數(shù)據(jù)混合存儲策略如圖1所示。
圖1 基于NoSQL的時間頻率科學(xué)數(shù)據(jù)存儲策略
本文采用HDFS對時間頻率科學(xué)數(shù)據(jù)中非結(jié)構(gòu)化數(shù)據(jù)文件存儲,HDFS多副本、高吞吐量等特性,結(jié)合其計算引擎可滿足海量歷史數(shù)據(jù)批量處理、格式轉(zhuǎn)換和用戶導(dǎo)入和讀取海量的數(shù)據(jù)文件存儲需求。同時,HDFS用于HBase、MapReduce和Spark等數(shù)據(jù)管理和并行計算引擎的底層數(shù)據(jù)文件永久性存儲。采用HBase分布式數(shù)據(jù)庫存儲管理時間頻率科學(xué)數(shù)據(jù)中的半結(jié)構(gòu)化和無關(guān)聯(lián)的結(jié)構(gòu)化科學(xué)數(shù)據(jù),HBase的易擴(kuò)展、高并發(fā)及稀疏等特征,可滿足數(shù)據(jù)格式變化和面向服務(wù)時用戶高并發(fā)低延遲的存儲管理需求。采用MySQL關(guān)系型數(shù)據(jù)庫存儲管理時間頻率科學(xué)數(shù)據(jù)中的具有關(guān)聯(lián)特性的設(shè)備信息、用戶信息等事務(wù)型結(jié)構(gòu)化數(shù)據(jù),滿足關(guān)聯(lián)型、事務(wù)型數(shù)據(jù)存儲管理需求。采用InfluxDB時間序列數(shù)據(jù)庫存儲管理具有時間序列特征的測量比對、狀態(tài)監(jiān)控等時間頻率科學(xué)數(shù)據(jù)。InfluxDB在數(shù)據(jù)模型的存儲上針對時間序列數(shù)據(jù)進(jìn)行多項優(yōu)化及其時序性、類SQL語法、支持時間和無結(jié)構(gòu)的特性,滿足多源時序數(shù)據(jù)的高寫入和實時分析的查詢負(fù)載需求。
1)基于HBase的時間頻率科學(xué)數(shù)據(jù)存儲架構(gòu)
HBase(hadoop database)是一個高可靠性、高性能、面向列、可伸縮的建立在HDFS上的分布式數(shù)據(jù)庫,HBase以HTable數(shù)據(jù)表存儲數(shù)據(jù)。HTable是一張多維增強(qiáng)的稀疏映射表,具有海量、面向列、極易擴(kuò)展、高并發(fā)和稀疏等主要特征,在半結(jié)構(gòu)化與結(jié)構(gòu)化大數(shù)據(jù)存儲、分析方面具有很好的性能?;贖Base數(shù)據(jù)管理系統(tǒng)的特性結(jié)合時間頻率科學(xué)數(shù)據(jù)存儲管理需求和應(yīng)用場景,設(shè)計了基于HBase的時間頻率科學(xué)數(shù)據(jù)存儲架構(gòu),如圖2所示。
圖2 基于HBase的時間頻率科學(xué)數(shù)據(jù)存儲系統(tǒng)
基于HBase的時間頻率科學(xué)數(shù)據(jù)存儲系統(tǒng)分為以硬件層、存儲層、應(yīng)用層和管理與接口層。硬件層有多臺服務(wù)器組成集群,采用虛擬化技術(shù)構(gòu)建資源池并創(chuàng)建系統(tǒng)所需的Linux操作系統(tǒng)主機(jī);存儲層為Master管理下的Hadoop集群,采用Hadoop平臺建立HDFS文件系統(tǒng)持久存儲HBase表數(shù)據(jù);應(yīng)用層包括HBase相關(guān)組件與MapReduce編程模型,提供數(shù)據(jù)存儲以及應(yīng)用開發(fā)的訪問接口。管理與接口層由數(shù)據(jù)產(chǎn)生區(qū)域、客戶端和Master組成,并通過客戶端完成海量結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)存儲和快速訪問。
2)基于HBase的GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)存儲模型
GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)是時間頻率科學(xué)數(shù)據(jù)中典型的半結(jié)構(gòu)化大數(shù)據(jù)。主要是由于GNSS系統(tǒng)和衛(wèi)星數(shù)量多使得GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)大,GNSS系統(tǒng)時差監(jiān)測系統(tǒng)平均每天采集19.8萬條數(shù)據(jù)。同時GNSS定時接收機(jī)輸出數(shù)據(jù)格式隨著觀測周期內(nèi)可視衛(wèi)星數(shù)量而變化,而各GNSS升級更新后監(jiān)測數(shù)據(jù)參量類型也在變化,導(dǎo)致監(jiān)測數(shù)據(jù)格式不固定。
GNSS系統(tǒng)時差監(jiān)測一條數(shù)據(jù)記錄主要包括觀測時間的年月日時分秒(TIME)、計數(shù)器值(TICV)、可見衛(wèi)星數(shù)量(SUM)、衛(wèi)星號(PRN)、接收機(jī)鐘差(RCLK)、衛(wèi)星鐘差(SCLK)、偽距(R1)、X(SATX)、Y(SATY)、Z(SATZ)、電離層延遲(IONC)、對流層延遲(TROP)等,數(shù)據(jù)長度隨可見衛(wèi)星數(shù)量不同而變化,數(shù)據(jù)格式如圖3所示。
圖3 GNSS系統(tǒng)時間監(jiān)測原始數(shù)據(jù)格式
基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫存儲的GNSS系統(tǒng)時差監(jiān)測原始數(shù)據(jù),由于關(guān)系型數(shù)據(jù)庫數(shù)據(jù)存儲模型的限制,將同一時間觀測到的數(shù)據(jù)按照衛(wèi)星編號轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù)進(jìn)行存儲,數(shù)據(jù)存儲模型如圖4所示,由于篇幅所限,圖中只列出了前7項數(shù)據(jù)列中少數(shù)幾行數(shù)據(jù)記錄。
圖4 GNSS系統(tǒng)時差監(jiān)測原始數(shù)據(jù)RMDB數(shù)據(jù)存儲邏輯視圖
GNSS系統(tǒng)時差原始監(jiān)測數(shù)據(jù)經(jīng)結(jié)構(gòu)化轉(zhuǎn)換后,原來一條數(shù)據(jù)記錄轉(zhuǎn)換為多條數(shù)據(jù)記錄存儲在數(shù)據(jù)庫的表中,這樣雖然實現(xiàn)數(shù)據(jù)的結(jié)構(gòu)化存儲管理,滿足數(shù)據(jù)的查詢和分析。但面對海量數(shù)據(jù)存儲管理時,這種結(jié)構(gòu)化轉(zhuǎn)換導(dǎo)致數(shù)據(jù)記錄翻倍增長,NUM、TIME、TICV等數(shù)據(jù)列出現(xiàn)大量冗余存儲,使得數(shù)據(jù)存儲容量增大且降低了數(shù)據(jù)管理系統(tǒng)性能。同時,傳統(tǒng)關(guān)系型數(shù)據(jù)庫的范式要求也限制了數(shù)據(jù)表的結(jié)構(gòu),當(dāng)監(jiān)測數(shù)據(jù)中數(shù)據(jù)內(nèi)容列進(jìn)行增加或刪除時需要重新設(shè)計數(shù)據(jù)庫表結(jié)構(gòu)。
針對GNSS系統(tǒng)時差原始監(jiān)測數(shù)據(jù)的半結(jié)構(gòu)化和海量數(shù)據(jù)記錄的特點(diǎn),結(jié)合數(shù)據(jù)用戶需求和科學(xué)數(shù)據(jù)分析場景需求,本文提出了基于HBase分布式數(shù)據(jù)庫的GNSS系統(tǒng)時差原始監(jiān)測數(shù)據(jù)存儲模型。根據(jù)圖4中的數(shù)據(jù)格式,設(shè)計了HBase數(shù)據(jù)管理系統(tǒng)中表的結(jié)構(gòu),存儲模型如圖5所示。
圖5 GNSS系統(tǒng)時差監(jiān)測原始數(shù)據(jù)HBase存儲邏輯視圖
續(xù)圖5
基于數(shù)據(jù)常用的讀場景即基于時間、衛(wèi)星號和少數(shù)情況下的可視衛(wèi)星數(shù)進(jìn)行檢索查詢,表的Row Key由數(shù)據(jù)采樣時間(TIME)、可視衛(wèi)星總數(shù)(SUM)和可視衛(wèi)星的編號集合(PRNS)組合而成;根據(jù)GNSS系統(tǒng)時差原始監(jiān)測數(shù)據(jù)來源分別定義了兩個列族,反映衛(wèi)星參數(shù)的Parameter列族和其他數(shù)據(jù)來源的EP列族。Parameter列族中采用衛(wèi)星編號和衛(wèi)星參數(shù)組合的方式定義多個列,EP列族中定義了一個計數(shù)器值的列。這些列標(biāo)識可以在建表時創(chuàng)建,也可以在表創(chuàng)建完以后動態(tài)插入數(shù)據(jù)時添加。但列標(biāo)識名字的長度和列族名字的長度都會影響I/O的讀寫性能和發(fā)送給客戶端的數(shù)據(jù)量,所以它們的命名應(yīng)該遵循簡潔的原則。
1)基于InfluxDB的時序數(shù)據(jù)表存儲模式
InfluxDB是基于時間序列數(shù)據(jù)索引實現(xiàn)高效數(shù)據(jù)查詢,索引是以Measurement表中數(shù)據(jù)記錄的時間戳(time stamp)和數(shù)據(jù)屬性(Tags)組合的方式建立。時間頻率科學(xué)數(shù)據(jù)中的具有時間序列特征的數(shù)據(jù)主要來源于業(yè)務(wù)系統(tǒng)中的測量比對數(shù)據(jù)、監(jiān)控數(shù)據(jù),數(shù)據(jù)結(jié)果由元數(shù)據(jù)信息和包括采集時間、多個測量參數(shù)的數(shù)據(jù)記錄組成,數(shù)據(jù)模型如表3所示。
表3 時間頻率測量數(shù)據(jù)的InfuxDB表存儲模式
注:元數(shù)據(jù)信息:設(shè)備ID,參考源ID,觀測站ID,設(shè)備基本信息參數(shù),…
在時間頻率測量比對中存在大量基于不同測量比對技術(shù)的同源測量結(jié)果數(shù)據(jù),即元數(shù)據(jù)信息中參考源ID、觀測站ID相同,而對應(yīng)的設(shè)備ID、設(shè)備基本信息參數(shù)不同;數(shù)據(jù)記錄中的采集時間和測量參數(shù)也基本相同。對于InfluxDB的數(shù)據(jù)表,如果每條數(shù)據(jù)記錄都包含一次元數(shù)據(jù)信息中的設(shè)備基本信息,將造成數(shù)據(jù)的大量冗余,且影響數(shù)據(jù)記錄的查詢效率。針對這一特點(diǎn),可采用時間序列數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)混合存儲管理模式。
2)基于InfluxDB的溯源比對數(shù)據(jù)存儲模型
溯源比對數(shù)據(jù)和系統(tǒng)監(jiān)測數(shù)據(jù)具備典型的時間序列特征,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲管理方法,在應(yīng)對千萬或上億條數(shù)據(jù)記錄存儲管理時性能無法數(shù)據(jù)分析要求。以某系統(tǒng)的系統(tǒng)時間主鐘溯源比對鏈路為例,溯源比對數(shù)據(jù)和溯源系統(tǒng)監(jiān)測數(shù)據(jù)根據(jù)溯源比對系統(tǒng)類型分為共視溯源比對和光纖溯源比對兩個數(shù)據(jù)表進(jìn)行存儲,對應(yīng)的關(guān)系型數(shù)據(jù)存儲模型如表4和表5所示。
表4 光纖溯源比對鐘差數(shù)據(jù)模型
表5 GNSS common-view比對數(shù)據(jù)模型
存儲在InfluxDB中的數(shù)據(jù)通常是基于時間的數(shù)據(jù)點(diǎn)序列,包括時間戳和其他Fields、Tags。結(jié)合溯源比對數(shù)據(jù)特征及InfluxDB時序數(shù)據(jù)庫表Tag與Field字段的查詢特點(diǎn),設(shè)計了某系統(tǒng)的系統(tǒng)時間溯源比對數(shù)據(jù)表存儲模式,如圖6所示。
圖6 基于InfluxDB的比對數(shù)據(jù)表存儲模式
針對某系統(tǒng)的系統(tǒng)時間主鐘兩種溯源比對數(shù)據(jù)和溯源監(jiān)測數(shù)據(jù)特點(diǎn),將沒有被索引的列clock、cpu和mem定義為Fields,將可用于索引的列type和state定義為Tags。表Trace中有type和state兩個Tag Key,其中type對應(yīng)的維度值Tag Values為{op,cv},state對應(yīng)的維度值Tag Values為{0,1},Tags組合作為記錄的主鍵,通過time進(jìn)行數(shù)據(jù)過濾得到一條數(shù)據(jù)記錄;表中有兩個數(shù)據(jù)源(op,cv),每個數(shù)據(jù)源有3種指標(biāo)clock、cpu和mem。
測試數(shù)據(jù)采用GNSS系統(tǒng)時差監(jiān)測原始實際觀測數(shù)據(jù),平臺分別部署了4個節(jié)點(diǎn)的HBase集群和四個節(jié)點(diǎn)的MySQL集群,各節(jié)點(diǎn)硬件配置均為2核CPU(Intel(R) Xeon(R))、16 G內(nèi)存、200 G SDD云盤。HBase集群在搭建的Hadoop中部署HBase1.3.5組件,MySQL集群在配置相同的4臺服務(wù)器上部署Centos 7.5操作系統(tǒng)以及JDK 1.8,MySQL 5.5,MyCat 1.6等組件。測試分別對比分析了HBase與MySQL集群數(shù)據(jù)導(dǎo)入性能和HBase集群的讀/寫和并發(fā)性能。
1)GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase導(dǎo)入性能測試
測試使用HBase Shell Put接口將實際觀測的2019年共1億條GNSS系統(tǒng)時差監(jiān)測原始數(shù)據(jù)記錄分別寫入設(shè)計的HBase表和MySQL集群數(shù)據(jù)庫表中,比對驗證所設(shè)計存儲模式的數(shù)據(jù)導(dǎo)入性能,測試結(jié)果如圖7所示。
圖7 HBase與MySQL集群數(shù)據(jù)導(dǎo)入性能
由圖7可知,GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase存儲集群的平均吞吐量達(dá)到18 932條/s,MySQL集群平均吞吐量達(dá)到8 290條/s,HBase集群的平均吞吐量是MySQL集群平均吞吐量的2倍。
2)GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase集群讀/寫性能測試
測試采用云服務(wù)基礎(chǔ)測試工具YCSB驗證HBase集群的頻繁數(shù)據(jù)讀取和更新操作請求的性能。模擬多站、多地GNSS系統(tǒng)時間監(jiān)測和多用戶數(shù)據(jù)服務(wù)應(yīng)用中海量數(shù)據(jù)快速讀/寫操作。測試中對本文設(shè)計實現(xiàn)的GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase表執(zhí)行300 000次的訪問操作,包括50%的數(shù)據(jù)查詢操作和50%的數(shù)據(jù)寫入操作,每組測試重復(fù)執(zhí)行了10次。測試結(jié)果中的平均訪問延遲和吞吐量的變化情況如圖8所示。
從圖8可看出,GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase存儲系統(tǒng)在數(shù)據(jù)讀取和更新操作頻繁的應(yīng)用場景下,重復(fù)10次的讀/寫測試平均訪問時延與系統(tǒng)吞吐量變化平緩、系統(tǒng)運(yùn)行穩(wěn)定。測試中10次Read平均訪問時延為279 μs、Update平均訪問時延為568 μs,整體上HBase集群的Read操作性能高于Update操作性能,HBase更適用于歷史數(shù)據(jù)快速查詢場景。
圖8 GNSS數(shù)據(jù)存儲系統(tǒng)讀寫操作平均延遲
3)GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase集群只讀測試
測試針對GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)服務(wù)和分析型應(yīng)用中大量的數(shù)據(jù)讀取、少量的數(shù)據(jù)更新或?qū)懭雸鼍埃瑴y試了HBase集群性能。測試通過設(shè)定YCSB對GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase表執(zhí)行包括95%查詢和5%寫總計共300 000次訪問操作,每組測試重復(fù)10次,測試結(jié)果中的平均訪問延遲和吞吐量的變化如圖9所示。
圖9 GNSS數(shù)據(jù)存儲系統(tǒng)只讀平均延遲
從圖9中可以看出,對于GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase存儲集群,在頻繁數(shù)據(jù)讀取操作場景,測試中10次只讀操作的平均訪問延遲和系統(tǒng)吞吐量平穩(wěn)、平均訪問時延259 μs、平均吞吐量為3 438條/s,數(shù)據(jù)讀取操作平均延遲遠(yuǎn)小于更新操作平均延遲。
4)GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase并發(fā)訪問性能測試
為了驗證GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)HBase存儲系統(tǒng)多用戶并發(fā)訪問性能,測試采用YCSB設(shè)定HBase集群并發(fā)線程數(shù)量由10個增至100個,每個線程分別對HBase集群的GNSS系統(tǒng)時差監(jiān)測數(shù)據(jù)執(zhí)行 300 000次的讀取、更新請求,包括50%的Read操作和50%的Update操作,測試結(jié)果中平均吞吐量以及訪問時延的結(jié)果如圖10所示。
圖10 GNSS數(shù)據(jù)存儲系統(tǒng)并發(fā)訪問性能
從圖10中可以看出,當(dāng)系統(tǒng)并發(fā)訪問線程的不斷增加時,系統(tǒng)吞吐量和平均執(zhí)行時間趨于平穩(wěn),未出現(xiàn)明顯的性能變化。測試結(jié)果表明HBase數(shù)據(jù)存儲管理系統(tǒng)在高并發(fā)訪問場景中系統(tǒng)性能穩(wěn)定,適合歷史數(shù)據(jù)高并發(fā)快速查詢訪問場景。同時,本測試方法和測試結(jié)果為生產(chǎn)環(huán)境下HBase數(shù)據(jù)庫管理系統(tǒng)集群并發(fā)訪問數(shù)據(jù)量和性能變化趨勢提供參考。
測試以某系統(tǒng)的系統(tǒng)時間主鐘溯源比對數(shù)據(jù)為例,在所搭建的服務(wù)器平臺上分別部署單機(jī)版的InfluxDB、MySQL和4節(jié)點(diǎn)的MySQL集群。測試平臺的4個節(jié)點(diǎn)服務(wù)器配置均為2核CPU(Intel(R) Xeon(R))16 G內(nèi)存,200 G SDD硬盤,操作系統(tǒng)使用Centos 7.5,部署的組件或軟件包括JDK 1.8,Inflluxdb 1.5.2,MySQL 5.5,MyCat 1.6。
主鐘的光纖溯源比對數(shù)據(jù)是時間頻率科學(xué)數(shù)據(jù)中典型的時間序列數(shù)據(jù),數(shù)據(jù)來自于實測數(shù)據(jù),測試數(shù)據(jù)記錄總計9百萬條。將數(shù)據(jù)存入表3~5所示的InfluxDB表和Mysql數(shù)據(jù)表中,比對驗證了3種存儲管理方法數(shù)據(jù)寫入和查詢的性能。
1)溯源比對數(shù)據(jù)InfluxDB導(dǎo)入性能測試
在本地客戶端將數(shù)據(jù)文件通過訪問接口,將數(shù)據(jù)一次性批量導(dǎo)入,以10萬條數(shù)據(jù)記錄遞增的方式記錄數(shù)據(jù)庫各節(jié)點(diǎn)數(shù)據(jù)每秒平均導(dǎo)入數(shù)據(jù)記錄的個數(shù),測試結(jié)果如圖11所示。
圖11 InfluxDB數(shù)據(jù)導(dǎo)入性能
InfluxDB數(shù)據(jù)庫表中統(tǒng)計的平均每秒寫入數(shù)據(jù)記錄達(dá)149587,MySQL單機(jī)的平均每秒寫入數(shù)據(jù)記錄達(dá)84133,MySQL集群的平均每秒寫入數(shù)據(jù)記錄達(dá)72789。InfluxDB的每秒寫入速度遠(yuǎn)大于單機(jī) MySQL和MySQL集群,寫入速度是近MySQL數(shù)據(jù)庫的2倍。
2)溯源比對數(shù)據(jù)查詢性能測試
測試分別對InfluxDB和MySQL表中的數(shù)據(jù)記錄進(jìn)行查詢訪問,查詢策略是隨機(jī)讀取某一天中1h的數(shù)據(jù)記錄,即隨機(jī)查詢86 400個數(shù)據(jù)記錄中的3 600個數(shù)據(jù)點(diǎn),每次查詢重復(fù)執(zhí)行1 000次并計算查詢時間的平均值,測試結(jié)果如圖12所示。
圖12 InfluxDB數(shù)據(jù)查詢性能
InfluxDB的平均查詢時間為105 ms、MySQL單機(jī)平均查詢時間3 371 ms、MySQL集群的平均查詢時間為674 ms。MySQL單機(jī)平均查詢時間是InfluxDB的33倍、MySQL集群平均查詢時間是InfluxDB的6倍,且MySQL單機(jī)和MySQL集群在連續(xù)查詢場景下查詢時間遞增。測試中InfluxDB查詢時間出現(xiàn)的突跳點(diǎn),主要原因是由GO語言開發(fā)的內(nèi)存型數(shù)據(jù)庫InfluxDB,內(nèi)存積累到臨界點(diǎn)后會執(zhí)行內(nèi)存回收操作影響性能導(dǎo)致的查詢時間抖動。測試結(jié)果表明InfluxDB的數(shù)據(jù)查詢性能明顯且遠(yuǎn)優(yōu)于MySQL集群和MySQL單機(jī)且其性能更加穩(wěn)定,更適合作為時間頻率科學(xué)數(shù)據(jù)中時間序列數(shù)據(jù)的存儲引擎。
為解決海量時間頻率科學(xué)數(shù)據(jù)存儲管理面臨的挑戰(zhàn),提出了基于NoSQL的時間頻率科學(xué)數(shù)據(jù)混合存儲策略。在時間頻率科學(xué)數(shù)據(jù)特征和NoSQL數(shù)據(jù)庫特征基礎(chǔ)上,構(gòu)建時間頻率科學(xué)數(shù)據(jù)混合存儲策略和存儲模型。采用某系統(tǒng)的時間頻率系統(tǒng)運(yùn)行過程中積累的GNSS系統(tǒng)時差監(jiān)測原始數(shù)據(jù)、溯源比對數(shù)據(jù)對傳統(tǒng)關(guān)系型數(shù)據(jù)庫和混合策略數(shù)據(jù)存儲、并發(fā)效率進(jìn)行測試。結(jié)果表明,本文提出的HBase數(shù)據(jù)存儲方法的平均寫入性能是MySQL集群的2.1倍、高并發(fā)和讀寫性能在任務(wù)量增加時性能平穩(wěn);基于InfluxDB的溯源比對數(shù)據(jù)平均寫速度是MySQL集群數(shù)據(jù)庫的2.3倍、查詢速度是MySQL集群的6.4倍。文章提出的時間頻率科學(xué)數(shù)據(jù)混合存儲策略,能夠為海量時間頻率科學(xué)數(shù)據(jù)分析、數(shù)據(jù)共享及信息服務(wù)提供高效和及時的服務(wù),為時間頻率科學(xué)大數(shù)據(jù)知識獲取和科學(xué)發(fā)現(xiàn)提供技術(shù)支撐。
[1] 王玉琢, 王偉波, 張愛敏. 守時原子鐘數(shù)據(jù)交互系統(tǒng)[J]. 計算機(jī)系統(tǒng)應(yīng)用, 2016, 25(9): 119-123.
[2] 王燕平, 董紹武, 袁海波. 時間頻率科學(xué)數(shù)據(jù)庫的建設(shè)和應(yīng)用[C]//2009全國時間頻率學(xué)術(shù)會議論文集, 成都:2009全國時間頻率學(xué)術(shù)會議組委會, 2009: 554-558.
[3] 高海軍. 時間頻率科學(xué)數(shù)據(jù)庫系統(tǒng)設(shè)計與實現(xiàn)[D]. 成都:電子科技大學(xué), 2013.
[4] 楊軍.iGMAS數(shù)據(jù)中心MySQL高可用系統(tǒng)的研究與實現(xiàn)[D]. 西安: 西安電子科技大學(xué), 2019.
[5] 徐道柱. 面向服務(wù)的空間數(shù)據(jù)管理關(guān)鍵技術(shù)研究[D]. 鄭州: 解放軍信息工程大學(xué), 2017.
[6] 黎建輝, 李躍鵬, 王華進(jìn), 等. 科學(xué)大數(shù)據(jù)管理技術(shù)與系統(tǒng)[J]. 中國科學(xué)院院刊, 2018, 33(8): 796-803.
[7] AN T.Science opportunities and challenges associated with SKA big data[J]. Science China (Physics Mechanics & Astronomy), 2019, 62(8): 121-126.
[8] 關(guān)兆雄. 面向非結(jié)構(gòu)化的分布式存儲系統(tǒng)的性能分析系統(tǒng)研究[J]. 自動化與儀器儀表, 2018, 34(2): 40-43.
[9] RAO T R, MITRA P, BHATT R, et al.The big data system, components, tools, and technologies: a survey[J]. Knowledge and Information Systems, 2019, 60(3): 1165-1245.
[10] 施曉峰. 基于分布式NoSQL數(shù)據(jù)庫的檔案大數(shù)據(jù)存儲與檢索方案研究[J]. 計算機(jī)應(yīng)用與軟件, 2019, 36(5): 15-20.
[11] 季一木, 張寧, 堯海昌.HOS: 一種基于HBase的分布式存儲系統(tǒng)設(shè)計與實現(xiàn)[J]. 南京郵電大學(xué)學(xué)報(自然科學(xué)版), 2019, 39(5): 63-71.
[12] CHEN L X, ZHANG N, SUN H M, et al.Secure search for encrypted personal health records from big data NoSQL databases in cloud[J]. Computing (prepublish), 2019: 1-25.
Research on the storage strategy of time and frequency scientific data based on non-relational database
MENG Ling-da1,2, ZHU Lin1,2,3, CHEN Rui-qiong1,2, LIU Ya1,2,3, LI Xiao-hui1,2,3
(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China;2. Key Laboratory of Time and Frequency Primary Standards, Chinese Academy of Sciences, Xi’an 710600, China;3. University of Chinese Academy of Sciences, Beijing 100049, China)
In order to solve problems in storage and retrieval of time and frequency data, such as low retrieval efficiency, management of heterogeneous data, poor service capability of multi-user high concurrent data, a hybrid storage strategy of time and frequency data, based on non-relational (NoSQL) database, was proposed. The reasons of the proposed hybrid storage strategy of time and frequency data are firstly discussed, which are mainly due to the properties of time and frequency data and requirements on services of the data. Then, we design a architecture model of the data storage system. Finally, the feasibility and effectiveness of the proposed hybrid storage strategy are verified. The results show that, compared with traditional storage strategy, performances of the proposed storage strategy are greatly improved, on subjects of real-time data request, high concurrent access, and expandability of time and frequency data.
time and frequency; scientific data management; data storage strategy; database
10.13875/j.issn.1674-0637.2021-04-0331-14
孟令達(dá), 朱琳, 陳瑞瓊, 等. 基于非關(guān)系型的時間頻率科學(xué)數(shù)據(jù)存儲策略研究[J]. 時間頻率學(xué)報, 2021, 44(4): 331-344.
2021-05-31;
2021-07-05
國家自然科學(xué)基金資助項目(12003040)