• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MongoDB存儲和分析輔助決策系統(tǒng)中的海量日志

      2019-12-12 10:00宋瑜輝
      科技創(chuàng)新與應(yīng)用 2019年33期
      關(guān)鍵詞:日志

      宋瑜輝

      摘? 要:在輔助決策系統(tǒng)中,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫已經(jīng)難以滿足對海量日志數(shù)據(jù)的管理,非關(guān)系型數(shù)據(jù)庫的出現(xiàn),為大規(guī)模數(shù)據(jù)存儲挖掘問題提供了卓有成效的解決方案。文章著重分析非關(guān)系數(shù)據(jù)庫MongoDB的特點(diǎn)和優(yōu)勢,通過存儲和檢索算法設(shè)計(jì)和實(shí)際的海量日志數(shù)據(jù)查詢性能仿真,提出將MongoDB數(shù)據(jù)庫應(yīng)用于輔助決策系統(tǒng)中,有效提高了大規(guī)模日志數(shù)據(jù)存儲和分析效率。

      關(guān)鍵詞:MongoDB;輔助決策;日志

      中圖分類號:TP311.13? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? ?文章編號:2095-2945(2019)33-0005-04

      Abstract: In the auxiliary decision-making system, the traditional relational database has been difficult to meet the management of massive log data, the emergence of non-relational database, which provides a fruitful solution for the problem of large-scale data storage mining. This paper focuses on the characteristics and advantages of non-relational database MongoDB. Through the design of storage and retrieval algorithm and the simulation of massive log data query performance, this paper proposes to apply MongoDB database to auxiliary decision-making system. It effectively improves the efficiency of large-scale log data storage and analysis.?Keywords: MongoDB; aided decision-making; log

      引言

      國家電網(wǎng)的經(jīng)營輔助分析決策支持系統(tǒng)是展現(xiàn)財(cái)務(wù)管理信息,全面實(shí)施財(cái)務(wù)分析,科學(xué)支持財(cái)務(wù)相關(guān)決策,輔助生成管理報(bào)告的專業(yè)化、一體化、集成化管理平臺。隨著多年信息化建設(shè)和企業(yè)信息化的不斷發(fā)展,輔助決策系統(tǒng)中積累了大量的日志信息,包括系統(tǒng)的運(yùn)行情況日志、業(yè)務(wù)訪問日志、賬戶管理日志、登錄認(rèn)證日志等等。

      這些日志信息真實(shí)的記錄了每個用戶的訪問行為,分析這些數(shù)據(jù)具有重要的意義:首先,通過收集和分析用戶行為數(shù)據(jù),可以及時掌握用戶的需求變化,按照用戶需求來優(yōu)化和升級應(yīng)用和服務(wù),不斷提高服務(wù)質(zhì)量和滿足用戶不斷變化需求的能力,持續(xù)改善用戶體驗(yàn),達(dá)到增加用戶粘性,減少用戶流失的目的。其次,通過對收集到的各種日志數(shù)據(jù)進(jìn)行挖掘,能發(fā)現(xiàn)系統(tǒng)的潛在問題,通過日志分析,可以發(fā)現(xiàn)系統(tǒng)中軟件、硬件和系統(tǒng)的問題,監(jiān)控系統(tǒng)中發(fā)生的時間,檢查錯誤發(fā)生的原因,幫助追蹤軟件發(fā)生的問題;因此,這些日志數(shù)據(jù)的存儲和分析具有重要的意義。

      傳統(tǒng)解決日志存儲和分析的方法主要是將日志數(shù)據(jù)存放到關(guān)系型數(shù)據(jù)庫中,如Oracle數(shù)據(jù)庫或MySQL數(shù)據(jù)庫,關(guān)系型數(shù)據(jù)庫對結(jié)構(gòu)化數(shù)據(jù)的支持較好,能采用SQL標(biāo)準(zhǔn)語法進(jìn)行數(shù)據(jù)的檢索查詢和分析;但是隨著企業(yè)信息化的發(fā)展和業(yè)務(wù)的廣泛應(yīng)用,其產(chǎn)生的數(shù)據(jù)量呈指數(shù)增長,對于這些海量數(shù)據(jù)的存儲和檢索統(tǒng)計(jì)的任務(wù)也日益增多,如何快速存儲、檢索、統(tǒng)計(jì)這些海量日志數(shù)據(jù),從中獲取知識并產(chǎn)生商業(yè)價值,成為企業(yè)急需解決的問題。傳統(tǒng)存儲到關(guān)系型數(shù)據(jù)庫的技術(shù)對于海量數(shù)據(jù)的處理已不能夠滿足要求,不但開發(fā)成本高、效率低、擴(kuò)展性能差,最大的問題是難以滿足業(yè)務(wù)發(fā)展需求,數(shù)據(jù)量一旦增大,這部分問題將成為瓶頸。然而,隨著非關(guān)系型數(shù)據(jù)庫的出現(xiàn),基于分布式思想的MongoDB文檔數(shù)據(jù)庫能夠很好的解決這個難題,且其具有以下優(yōu)勢:成本低、擴(kuò)展性能好、數(shù)據(jù)安全可靠、支持非結(jié)構(gòu)化數(shù)據(jù)存儲和檢索等。

      因此,本文提出一種基于MongoDB數(shù)據(jù)存儲和檢索海量日志數(shù)據(jù)的技術(shù),通過存儲和檢索算法設(shè)計(jì)和實(shí)際的海量日志數(shù)據(jù)查詢性能仿真,展示了本文設(shè)計(jì)的海量日志數(shù)據(jù)庫查詢方法的高效性和準(zhǔn)確性。

      1 海量日志數(shù)據(jù)存儲需求分析

      國家電網(wǎng)的經(jīng)營輔助分析決策支持系統(tǒng)中的日志主要包括以下內(nèi)容:用戶賬戶ID、事件類型、事件產(chǎn)生的時間、事件的內(nèi)容、操作是否成功、請求的來源(如請求的IP地址),其他附屬的實(shí)踐屬性信息等;由于在實(shí)際生產(chǎn)中客戶的需求經(jīng)常不同,因此不同類型日志常常要求增加一些額外的附屬信息以便于日后分析,因此不同類型日志格式并不完全相同;因此傳統(tǒng)的結(jié)構(gòu)化日志存儲并不適用這種非結(jié)構(gòu)化日志數(shù)據(jù)的存儲。

      目前,經(jīng)營輔助分析決策支持系統(tǒng)中的日志的主要需求如下:(1)不同類型的日志格式不完全相同;(2)能夠存儲海量上億級的日志數(shù)據(jù);數(shù)據(jù)能保存1至3年;(3)存儲海量日志數(shù)據(jù)的寫入性能要求高效;(4)能夠通過多種條件組合檢索日志信息;(5)具有日志分類匯總統(tǒng)計(jì)功能;

      (6)當(dāng)主機(jī)資源達(dá)到瓶頸時,能通過動態(tài)擴(kuò)展主機(jī)方式增加系統(tǒng)的性能。

      2 設(shè)計(jì)與實(shí)現(xiàn)

      經(jīng)營輔助分析決策支持系統(tǒng)中海量日志數(shù)據(jù)的管理和應(yīng)用方向集中在兩個領(lǐng)域。第一,在線處理數(shù)據(jù)操作,日志的并發(fā)寫入操作,海量數(shù)據(jù)檢索查詢操作。第二,海量數(shù)據(jù)分析相關(guān),針對海量日志數(shù)據(jù)的挖掘、復(fù)雜的分析計(jì)算; 分布式數(shù)據(jù)庫則是針對海量大數(shù)據(jù)管理誕生的,強(qiáng)調(diào)滿足大數(shù)據(jù)在實(shí)時高并發(fā)請求壓力下的交互業(yè)務(wù)場景。由于分布式數(shù)據(jù)庫的落地更簡單,開發(fā)運(yùn)維上更接近于傳統(tǒng)數(shù)據(jù)管理系統(tǒng)。

      2.1 MongoDB介紹

      MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。為應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。MongoDB是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它可以存儲比較復(fù)雜的數(shù)據(jù)類型。最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,還支持對數(shù)據(jù)建立索引。

      MongoDB集群包括以下幾個組件:

      (1)分片節(jié)點(diǎn):用來存儲數(shù)據(jù),為了提供系統(tǒng)可用性和數(shù)據(jù)一致性,一個生產(chǎn)環(huán)境的分片集群,通常每個分片是一個副本集。

      (2)查詢路由:指客戶端應(yīng)用訪問每個分片的路徑。

      (3)配置服務(wù)器:存儲集群的元數(shù)據(jù),這些數(shù)據(jù)包含了集群數(shù)據(jù)集到各分片的映射關(guān)系。查詢路由就是通過這些元數(shù)據(jù)到特定的分片上執(zhí)行指定的數(shù)據(jù)操作。

      MongoDB總體架構(gòu)如圖1所示。

      MongoDB功能如下:(1)面向集合的存儲:適合存儲對象及 JSON 形式的數(shù)據(jù)。(2)動態(tài)查詢:MongoDB 支持豐富的查詢表達(dá)式。查詢指令使用 JSON 形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對象及數(shù)組。(3)完整的索引支持:包括文檔內(nèi)嵌對象及數(shù)組。MongoDB 的查詢優(yōu)化器會分析查詢表達(dá)式,并生成一個高效的查詢計(jì)劃。(4)查詢監(jiān)視:MongoDB 包含一系列監(jiān)視工具用于分析數(shù)據(jù)庫操作的性能。(5)復(fù)制及自動故障轉(zhuǎn)移:MongoDB 數(shù)據(jù)庫支持服務(wù)器之間的數(shù)據(jù)復(fù)制,支持主-從模式及服務(wù)器之間的相互復(fù)制。復(fù)制的主要目標(biāo)是提供冗余及自動故障轉(zhuǎn)移。(6)高效的傳統(tǒng)存儲方式:支持二進(jìn)制數(shù)據(jù)及大型對象(如照片或圖片)。(7)自動分片以支持云級別的伸縮性:自動分片功能支持水平的數(shù)據(jù)庫集群,可動態(tài)添加額外的機(jī)器。

      MongoDB特點(diǎn)如下:(1)面向集合(Collenction-Orented)。(2)數(shù)據(jù)被分組存儲在數(shù)據(jù)集中,被稱為一個集合(Collenction)。每個集合在數(shù)據(jù)庫中都有一個唯一的標(biāo)識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關(guān)系型數(shù)據(jù)庫(RDBMS)里的表(table),不同的是它不需要定義任何模式(schema)。(3)模式自由(schema-free)。(4)意味著對于存儲在 MongoDB 數(shù)據(jù)庫中的文件,不需提前定義它的任何結(jié)構(gòu)定義。(5)文檔型。(6)存儲的數(shù)據(jù)是鍵-值對的集合,鍵是字符串,值可以是數(shù)據(jù)類型集合里的任意類型,包括數(shù)組和文檔。這個數(shù)據(jù)格式稱作“BSON”即“Binary Serialized dOcument Notation.”

      2.2 日志表設(shè)計(jì)

      2.2.1 表模型設(shè)計(jì)

      表名t_log,由于不同類型的日志格式不同,以下是公共部分的定義:

      2.2.2 表分片設(shè)計(jì)

      由于海量日志需要存儲較長時間,因此需要支持?jǐn)?shù)據(jù)分片功能,未來當(dāng)集群主機(jī)性能到達(dá)瓶頸時可以輕松的增加主機(jī)節(jié)點(diǎn)方式擴(kuò)展,因此需要對日志表進(jìn)行數(shù)據(jù)分片。

      一般來說,完美的分片鍵將會有下列的特征:(1)所有的插入、更新以及刪除將會均勻分發(fā)到集群中的所有分片中。(2)所有的查詢將會在集群中的所有分片中平均地分發(fā)。(3)所有的操作將會只面向相關(guān)的分片:更新或者刪除操作將不會發(fā)送到一個沒有存儲被修改數(shù)據(jù)的分片上。(4)一個查詢將不會被送到?jīng)]有存儲被查詢數(shù)據(jù)的分片上。

      好的分片鍵的五個準(zhǔn)則如下:(1)分片鍵基數(shù)。(2)寫分布。(3)讀分布。(4)定向讀。(5)讀本地性。分片鍵的選擇原則如下:(1)不要選時間日期,選盡可能使數(shù)據(jù)分散的字段。(2)分析下最常見的查詢,防止使用單一自增的字段,避免新增數(shù)據(jù)始終路由到一個分片,造成寫熱點(diǎn)。(3)如果有范圍查詢的,最好包含一個對應(yīng)的業(yè)務(wù)字段,避免查詢的時候數(shù)據(jù)太分散。

      綜上所述,分片的語句定義如下:對數(shù)據(jù)庫啟用分片:sh.enableSharding(“fzjcdb”);日志表分片鍵建立主鍵:db.t_log.createIndex({workid: 1, _id:1})日志表建立分片sh.shardCollection(“fzjcdb.t_log”, {workid: 1, _id:1} )

      2.3 日志表分析

      由于業(yè)務(wù)要求對日志表有統(tǒng)計(jì)分析的需求,因此需要MongoDB中的日志表也能支持按小時,按天,按月的統(tǒng)計(jì)分析。

      針對統(tǒng)計(jì)分析,MongoDB中聚合(aggregate)主要用于處理數(shù)據(jù)(諸如統(tǒng)計(jì)平均值,求和等),并返回計(jì)算后的數(shù)據(jù)結(jié)果。類似關(guān)系型數(shù)據(jù)庫中的分組求和函數(shù)。

      常見的MongoDB的聚合操作和MySQL的查詢對比如表2。

      3 系統(tǒng)測試結(jié)果分析

      測試實(shí)驗(yàn)分10線程,100線程,200線程并發(fā)測試,分別監(jiān)控各主機(jī)CPU,IO,網(wǎng)絡(luò)變化。

      4 結(jié)束語

      本文主要提出了一種基于MongoDB存儲和分析輔助決策系統(tǒng)中的海量日志的高效計(jì)算和分析方法。通過對海量日志數(shù)據(jù)進(jìn)行數(shù)據(jù)分片設(shè)計(jì),使得海量日志的存儲具有高擴(kuò)展性,高性能等優(yōu)點(diǎn)的同時也具有一定的統(tǒng)計(jì)分析查詢支持的功能,通過壓力測試驗(yàn)證,這種存儲海量日志的方式較好,滿足高性能寫入和查詢的需求。

      參考文獻(xiàn):

      [1]李紀(jì)偉,段中帥,王順曄.非結(jié)構(gòu)化數(shù)據(jù)庫MongoDB的數(shù)據(jù)存儲[J].電腦知識與技術(shù),2018,14(27):7-9.

      [2]張路路.基于MongoDB的大數(shù)據(jù)存儲方法研究與應(yīng)用[D].成都理工大學(xué),2015.

      [3]馮國瑞,王亮.基于大數(shù)據(jù)和云計(jì)算的電網(wǎng)財(cái)務(wù)系統(tǒng)決策研究[J].通信電源技術(shù),2017,34(01):113-115.

      [4]王昌照.基于大數(shù)據(jù)的“三統(tǒng)一”配電網(wǎng)規(guī)劃輔助決策系統(tǒng)[J].供用電,2017,34(01):32-37+23.

      [5]毋毅,趙康.基于大數(shù)據(jù)平臺的電網(wǎng)全業(yè)務(wù)數(shù)據(jù)分析域研究[J].電腦知識與技術(shù),2016,12(34):15-17.

      猜你喜歡
      日志
      高效管理日志文件用命令行就可以
      讀扶貧日志
      面向日志結(jié)構(gòu)化數(shù)據(jù)存儲的高效數(shù)據(jù)加載
      雅皮的心情日志
      雅皮的心情日志
      雅皮的心情日志
      雅皮的心情日志
      雅皮的心情日志
      雅皮的心情日志
      雅皮的心情日志
      芦溪县| 剑阁县| 溧阳市| 东光县| 金湖县| 宾川县| 远安县| 洛扎县| 库尔勒市| 沙河市| 闵行区| 唐河县| 宜川县| 凤城市| 红原县| 抚远县| 万源市| 长春市| 喜德县| 涿州市| 昌吉市| 岳阳县| 松溪县| 衢州市| 太仆寺旗| 清新县| 娱乐| 桦南县| 横峰县| 敖汉旗| 汉中市| 和平区| 新巴尔虎左旗| 元谋县| 迭部县| 桐柏县| 霞浦县| 濉溪县| 定日县| 遂昌县| 晴隆县|