国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MongoDB在期刊數(shù)據(jù)庫日志管理應(yīng)用的探析
——以上海圖書館《全國報刊索引》全文庫為例

2021-12-29 03:55:24王靜
現(xiàn)代計算機 2021年31期
關(guān)鍵詞:上海圖書館數(shù)據(jù)量日志

王靜

(上海圖書館,上海 200031)

0 引言

圖書館電子文獻數(shù)據(jù)庫每天都有很多用戶訪問和下載文獻,后臺記錄用戶信息、行為的日志信息大量增長,并發(fā)量也急劇增大。本文以上海圖書館《全國報刊索引》平臺為例,為全文數(shù)據(jù)庫系統(tǒng)的日志管理提供一種解決方案。

上海圖書館《全國報刊索引》平臺日志數(shù)據(jù)記錄了用戶信息、登錄信息、全文下載信息和數(shù)據(jù)庫檢索信息等。平臺日志數(shù)據(jù)特點:①數(shù)據(jù)量大,機構(gòu)用戶900多家,個人用戶近2萬人;平均日登錄數(shù)1萬多次,日檢索信息70多萬條,日全文下載量2萬多條,總?cè)罩緮?shù)量級上億。②數(shù)據(jù)結(jié)構(gòu)松散,不同數(shù)據(jù)調(diào)取和統(tǒng)計分析,需要提供不同的報表。③讀寫操作的高并發(fā)性,隨著個人服務(wù)功能的上線,對數(shù)據(jù)庫訪問的并發(fā)性要求也日益增強。④開發(fā)要更加敏捷:開發(fā)周期短,平臺日志管理系統(tǒng)開發(fā)需在短時間內(nèi)完成。

傳統(tǒng)使用關(guān)系數(shù)據(jù)庫,在日志數(shù)據(jù)管理上結(jié)果松散、讀寫效率不高。為了優(yōu)化日志數(shù)據(jù)的存儲,提高報表效率,逐步建設(shè)開放報表中心的需求,要建立一個有效的日志數(shù)據(jù)管理系統(tǒng)。

1 MongoDB簡介

MongoDB是一個基于文檔模型的,支持索引、復(fù)制、事務(wù)、分片水平擴展的數(shù)據(jù)庫,非常適用于分析和管理日志。第一,它易擴展,靈活的文檔數(shù)據(jù)模型使得處理數(shù)據(jù)更加直觀;第二,它類似于關(guān)系型數(shù)據(jù)庫,有豐富的數(shù)據(jù)查詢語言,可建立索引和分布式可擴展設(shè)計;第三,它的數(shù)據(jù)以文件形式加載在內(nèi)存中,其插入和查詢效率要優(yōu)于關(guān)系型數(shù)據(jù)庫。

2 上海圖書館《全國報刊索引》平臺采用MongoDB的原因

《全國報刊索引》平臺日志管理系統(tǒng)實驗調(diào)研了非關(guān)系型數(shù)據(jù)庫MongoDB和關(guān)系型數(shù)據(jù)庫MySQL,來確定哪種更為適應(yīng)需求。

2.1 實驗設(shè)計和結(jié)果分析

2.1.1 測試目的

因為日志最主要是寫入與查詢操作,實驗就關(guān)注日志數(shù)據(jù)存儲記錄越來越多的時候,其插入和查詢效率將會受到怎樣的影響。

2.1.2 測試條件

服務(wù)器,Xeon E5-2630,16 G內(nèi)存,Win2008 64位。MongoDB版本:3.0,無任何優(yōu)化配置,單機測試;MySQL版本:5.1.49,無任何優(yōu)化配置,單機測試。數(shù)據(jù)庫接口驅(qū)動:Mon?goDB:PyMongo 2.1.1;MySQL:MySQLdb 1.2.3。

2.1.3 測試方法和結(jié)果

模擬一個用戶登錄信息的格式數(shù)據(jù),數(shù)據(jù)庫中已備有1億條數(shù)據(jù),在此基礎(chǔ)上向數(shù)據(jù)庫里插入數(shù)據(jù)。本次測試,插入數(shù)據(jù)量為1,20,50,100,1000,5000,10000,100000,200000。

插入性能測試,如圖1所示。

圖1 插入速率數(shù)據(jù)

分析:如圖1所示,MongoDB的批量插入性能要優(yōu)于MySQL,隨著插入數(shù)據(jù)量的增大,兩者的速率差距越大。在插入數(shù)據(jù)量小于10000條時,兩者速率基本持平。上漲到10000條以上時,兩者拉開差異,MySQL比MongoDB要慢很多。

查詢功能測試,如圖2所示。

圖2 查詢速率數(shù)據(jù)

分析:如圖2所示,在讀取的數(shù)據(jù)規(guī)模不大時,MongoDB和MySQL都能滿足用戶的需求,但在讀取數(shù)據(jù)規(guī)模變大后,MongoDB的查詢性能明顯優(yōu)于MySQL,甚至相差2倍。

查詢穩(wěn)定性測試,如圖3所示。

圖3 查詢穩(wěn)定性比較

分析:不同數(shù)量級下面每1000條數(shù)據(jù)查詢的時間:縱坐標(biāo)是每查詢1000條數(shù)據(jù)所需要的時間;橫坐標(biāo)是查詢時數(shù)據(jù)庫的數(shù)量,分別為1萬,10萬,20萬,50萬和100萬。MySQL的穩(wěn)定性強于Mon?goDB。

MongoDB穩(wěn)定性雖弱于關(guān)系型數(shù)據(jù)庫,但隨著數(shù)據(jù)量的增大,MongoDB插入查詢效率更高,且存儲結(jié)構(gòu)靈活。最終選取MongoDB做《全國報刊索引》平臺的日志數(shù)據(jù)管理系統(tǒng)。

3 《全國報刊索引》平臺日志管理系統(tǒng)的設(shè)計規(guī)劃

《全國報刊索引》平臺日志數(shù)據(jù)庫結(jié)構(gòu),如圖4所示。

圖4 報表結(jié)構(gòu)

幾種類型的表設(shè)計:

(1)個人用戶信息表。存儲用戶信息。一對一關(guān)系,userId作為主鍵。

(2)組織用戶信息表。一個組織可以包含多個用戶,一個用戶只能屬于一個組織。一對多的關(guān)系,兩張表,用戶表和組織表,在用戶表中設(shè)計Orgid字段,通過其關(guān)聯(lián)用戶與組織關(guān)系。

(3)用戶下載報表。一個用戶可以下載多個數(shù)據(jù)庫的文章,一個數(shù)據(jù)庫的文章也可以被多個用戶下載。多對多的關(guān)系,采用嵌套的設(shè)計方案:兩張表,Download表存儲下載該數(shù)據(jù)庫的所有用戶。User表存儲用戶所有下載的數(shù)據(jù)庫。

4 《全國報刊索引》平臺應(yīng)用MongoDB日志管理后的成效

4.1 服務(wù)功能改善

日志管理系統(tǒng)建成后,管理員可以查看用戶在網(wǎng)站的任何行為,也可以查看每個模塊的操作情況,如查詢、新建、刪除、編輯等。系統(tǒng)每月自動生成訪問報表,郵件形式發(fā)送。也可根據(jù)管理員的需要,設(shè)定特定條件,生成報表。例如本月、上月新增機構(gòu)用戶數(shù)、總的機構(gòu)用戶數(shù),本月機構(gòu)原文索取金額、個人原文索取金額等。

4.2 圖形化呈現(xiàn)和分析功能

報表設(shè)計了圖形化顯示,更直觀生動的體現(xiàn)數(shù)據(jù)趨勢。管理員分析數(shù)據(jù)時,一眼就看清新增用戶的增長趨勢或是各類用戶的數(shù)據(jù)庫使用情況。如圖5所示。

圖5 圖形化報表樣例

5 《全國報刊索引》平臺采用MongoDB日志管理遇到的問題及解決方案

5.1 數(shù)據(jù)量、并發(fā)量增大的問題

運行一段時間后,數(shù)據(jù)量與并發(fā)量快速增長,對存儲帶來了一定壓力。雖然MongoDB帶有自動分片功能,但目前還沒有太多的數(shù)據(jù)需要分片,所以采用副本集來保證自動故障轉(zhuǎn)移。

日志數(shù)據(jù)有一個明顯的特性,就是隨著時間的增加,其價值變得越來越小?;谶@個特性,日志存儲日益增大的問題,解決方案是按照一定的周期進行詳情歸檔,再把具體明細移到其他地方存儲。

目前是每日歸檔,把用戶的登錄信息按日匯總,縮小數(shù)據(jù)量,提高統(tǒng)計效率,降低存儲成本。

5.2 Mongo DB的時間問題

在按日期統(tǒng)計用戶登錄信息時,歸檔數(shù)量總與實際數(shù)量不一致。通過查找資料,發(fā)現(xiàn)可能是MongoDB的“時差”問題。當(dāng)MongoDB保存到數(shù)據(jù)庫的時候,默認為UTC時間(世界標(biāo)準(zhǔn)時間),北京時間比UTC時間早8小時,即UTC時間1月21日中午12:00,北京時間是1月21日20:00。解決方法開始是在RoboMongo通過“Options”-“Display Dates in...”-“Local Timezone”來設(shè)置顯示本地時間。但在每次讀取的時,都需要來回進行轉(zhuǎn)換,比較麻煩。后來發(fā)現(xiàn)MongoDB本身提供了解決方法:[BsonDateTimeOptions(Kind=DateTimeKind.Local)]public DateTime OperTime{get;set;}。經(jīng)過處理后,歸檔的數(shù)量與實際數(shù)量終于一致了。

最后結(jié)果如圖6所示。

圖6 MongoDB時差解決方法

6 結(jié)語

MongoDB性能的各項實驗,它具備的高性能、高擴展性、類SQL的豐富查詢和索引等特性,非常適用于上海圖書館《全國報刊索引》的后臺日志管理系統(tǒng)。系統(tǒng)建立后,提高了用戶日志數(shù)據(jù)分析的能力,滿足了業(yè)務(wù)發(fā)展隨時響應(yīng)的需求,提供了專業(yè)報表服務(wù)和圖形化呈現(xiàn)。同時,支持PC端與移動端,增強了基于數(shù)據(jù)記錄基礎(chǔ)上的統(tǒng)計功能,增加詞頻分析功能,完全將讀者的檢索詞形成詞云,保存待進一步分析和利用等。

本文通過MongoDB在上海圖書館《全國報刊索引》日志管理系統(tǒng)中的應(yīng)用,證明它在文獻數(shù)據(jù)庫日志管理上的應(yīng)用可顯著提高文獻數(shù)據(jù)庫日志的管理系統(tǒng)性和查詢效率,而且成本較低。

猜你喜歡
上海圖書館數(shù)據(jù)量日志
一名老黨員的工作日志
華人時刊(2021年13期)2021-11-27 09:19:02
基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
扶貧日志
心聲歌刊(2020年4期)2020-09-07 06:37:14
圖書館中文圖書借閱排行榜(2019年12月)
出版人(2020年2期)2020-04-07 10:24:36
寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
電子制作(2019年13期)2020-01-14 03:15:18
游學(xué)日志
數(shù)字閱讀推廣新形式研究
卷宗(2017年2期)2017-05-16 22:24:23
中美公共圖書館社交媒體營銷比較研究
圖書與情報(2016年6期)2017-04-17 00:02:32
澳门| 胶州市| 赤峰市| 昌图县| 佳木斯市| 乐安县| 梅河口市| 米泉市| 克东县| 汨罗市| 潜江市| 凌海市| 津市市| 吴旗县| 开化县| 广南县| 桃园县| 靖宇县| 青州市| 彭泽县| 南安市| 融水| 屯门区| 隆昌县| 亳州市| 滁州市| 克东县| 邵阳市| 故城县| 南溪县| 南皮县| 喜德县| 舟山市| 富顺县| 南昌市| 竹北市| 牙克石市| 上蔡县| 南岸区| 汤阴县| 高唐县|