一種Historian 數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)同步方法,特別是一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法。
【背景技術(shù)】
[0002]MongoDB是目前在IT行業(yè)非常流行的一種非關(guān)系型數(shù)據(jù)庫(NoSql),其靈活的數(shù)據(jù)存儲方式備受當(dāng)前IT從業(yè)人員的青睞。Historian是GE公司推出的適用于工業(yè)企業(yè)的一種高性能實(shí)時數(shù)據(jù)庫。它能能提供無與倫比的可擴(kuò)展性,支持多達(dá)500,000條標(biāo)簽。Historian保存的都是企業(yè)最原始的生產(chǎn)數(shù)據(jù),事關(guān)生產(chǎn)安全,正常情況下不同意直接連接該數(shù)據(jù)庫進(jìn)行數(shù)據(jù)分析工作。所以需要將Historian里面的數(shù)據(jù)同步到Mongodb數(shù)據(jù)庫,以便進(jìn)行整合、開發(fā)。目前還沒有Historian同步MongoDB的方法。
【發(fā)明內(nèi)容】
[0003]本實(shí)發(fā)明的目的在于提供一種Historian同步MongoDB的方法,以方便進(jìn)行整合、開發(fā)。
[0004]為達(dá)到上述目的,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,其包含:
同步程序服務(wù)器:用于存儲數(shù)組A、數(shù)組B和運(yùn)行數(shù)據(jù)同步模塊;
Historian服務(wù)器:包含實(shí)時運(yùn)行的Historian數(shù)據(jù)庫;
MongoDB集群:包含MongoDB數(shù)據(jù)庫,是大數(shù)據(jù)分析用到的No SQL數(shù)據(jù)庫集群;
所述方法包含以下步驟:
步驟一、所述數(shù)據(jù)同步模塊調(diào)用MongoDB C#驅(qū)動,連接MongoDB數(shù)據(jù)庫,將需要獲取的Tag名單保存到數(shù)組A中;
步驟二、所述數(shù)據(jù)同步模塊調(diào)用Historian數(shù)據(jù)庫中的Proficy.Historian.UserAPI數(shù)據(jù),將數(shù)組A中所有Tag在Proficy.Historian.UserAPI數(shù)據(jù)中對應(yīng)的最新的值取出來保存到數(shù)組B中;
步驟三、所述數(shù)據(jù)同步模塊調(diào)用MongoDB C#驅(qū)動,將數(shù)組B中的值插入到到MongoDB數(shù)據(jù)庫中;
步驟四、設(shè)置定時任務(wù),定時調(diào)用數(shù)據(jù)同步模塊。
[0005]步驟五、啟動定時任務(wù),觀察MongoDB數(shù)據(jù)庫,數(shù)組B中的值已經(jīng)同步到MongoDB數(shù)據(jù)庫,則同步成功。
[0006]進(jìn)一步地,所述的數(shù)據(jù)同步模塊的構(gòu)建方法為用Visual Stud1新建一個工程,將MongoDB驅(qū)動復(fù)制到該工程根目錄下,然后再新建一個類,該類包含以下動作:
A、引入MongoDBC#驅(qū)動;
B、弓I入Proficy.Historian.UserAPI ;
C、調(diào)用MongoDBC#驅(qū)動,連接MongoDB數(shù)據(jù)庫,將需要獲取的Tag名單保存到數(shù)組A中;
D、將數(shù)組A中所有Tag在Proficy.Historian.UserAPI數(shù)據(jù)中對應(yīng)的最新的值取出來保存到數(shù)組B中
E、調(diào)用MongoDBC#驅(qū)動,將數(shù)組B中的值插入到MongoDB數(shù)據(jù)庫中。
[0007]進(jìn)一步地,所述的同步程序服務(wù)器與Historian服務(wù)器、MongoDB集群通過TCP/IP協(xié)議通信。
[0008]進(jìn)一步地,所述的同步程序服務(wù)器操作系統(tǒng)為Windows Server 2012。
[0009]進(jìn)一步地,所述的定時任務(wù)新建在控制面板,每秒調(diào)用I次。
[0010]進(jìn)一步地,所述的定時任務(wù)設(shè)置為自動啟動。
[0011]進(jìn)一步地,所述的定時任務(wù)新建在控制面板,每秒調(diào)用I次。
[0012]進(jìn)一步地,所述的定時任務(wù)設(shè)置為自動啟動。
[0013]本發(fā)明的功效在于:發(fā)明可以達(dá)到讓開發(fā)人員能夠?qū)⒉粚ν忾_放的Historian數(shù)據(jù)同步到MongoDB,軟件開發(fā)時直接從MongoDB取數(shù)據(jù),便于企業(yè)基于MongoDB做大數(shù)據(jù)分析以及其他需求所需要的二次開發(fā)。
【附圖說明】
[0014]圖1是Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫同步過程示意圖。
[0015]圖2是Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫同步網(wǎng)絡(luò)架構(gòu)圖。
[0016]圖3是Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫同步實(shí)施過程示意圖。
【具體實(shí)施方式】
[0017]下面結(jié)合附圖對本發(fā)明作進(jìn)一步說明:
實(shí)施例1:開發(fā)過程。為了便于本領(lǐng)域技術(shù)人員理解,下面結(jié)合附圖1對本發(fā)明的開發(fā)過程做進(jìn)一步的說明。
[0018]本發(fā)明提供了一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,便于企業(yè)基于MongoDB做大數(shù)據(jù)分析以及其他需求所需要的二次開發(fā)。本項(xiàng)目開發(fā)語言為C#,開發(fā)工具為Visual Stud1,開發(fā)機(jī)操作系統(tǒng)為Windows7。
1、在開發(fā)機(jī)上搭建開發(fā)環(huán)境:安裝免費(fèi)版Historian,安裝.NET Framework4.5框架,安裝Visual Stud1 2012,到官方網(wǎng)站MongoDB C#驅(qū)動。
[0019]2、確認(rèn)Historian數(shù)據(jù)庫和MongoDB是否已經(jīng)啟動,如果沒有,則啟動這兩個數(shù)據(jù)庫。
[0020]3、在開發(fā)機(jī)上,打開Visual Stud1 2012,新建一個工程,構(gòu)建數(shù)據(jù)同步模塊。
[0021]4、將下載下來的MongoDB驅(qū)動復(fù)制到該工程根目錄下。
[0022]5、新建一個類,在類里面編寫數(shù)據(jù)同步代碼:
5.1引入MongoDB C#驅(qū)動
5.2 弓I入 Proficy.Historian.UserAPI
5.3調(diào)用MongoDB C#驅(qū)動,連接MongoDB數(shù)據(jù)庫,如果成功,則將要獲取的Tag名單保存到數(shù)組A中,如果失敗,則提示“MongoDB連接失敗,請聯(lián)系管理員”。收到該提示,則管理員核對數(shù)據(jù)庫是否啟動,網(wǎng)絡(luò)是否正常連接進(jìn)行核查,排查后重新調(diào)用MongoDB Cm動,連接MongoDB數(shù)據(jù)庫。
[0023]5.4 調(diào)用 Proficy.Historian.UserAPI,連接 MongoDB 數(shù)據(jù)庫,如果成功,則返回True,如果失敗,則提示“MongoDB連接失敗,請聯(lián)系管理員”。收到該提示,則管理員核對數(shù)據(jù)庫是否啟動,網(wǎng)絡(luò)是否正常連接進(jìn)行核查,排查后重新調(diào)用Proficy.Historian.UserAPI,連接 MongoDB 數(shù)據(jù)庫。
[0024]5.5 調(diào)用 Proficy.Historian.UserAPI,將數(shù)組 A 中所有 Tag 在 Proficy.Historian.UserAPI中的最新的值取出來保存在數(shù)組B中。
[0025]5.6調(diào)用MongoDB C#驅(qū)動,將數(shù)組B中值插入到MongoDB數(shù)據(jù)庫中。
[0026]實(shí)施例2:Historian與MongoDB數(shù)據(jù)同步部署實(shí)施。
[0027]本發(fā)明程序開發(fā)完成,測試通過后,即可部署到生產(chǎn)環(huán)境。下面結(jié)合圖2做進(jìn)一步闡述。
[0028]UHistorian服務(wù)器為企業(yè)已經(jīng)在運(yùn)行中的實(shí)時數(shù)據(jù)庫
2、MongoDB集群為企業(yè)將來大數(shù)據(jù)分析用到的NoSQL數(shù)據(jù)庫集群
3、同步程序服務(wù)器為本專利中提到的程序部署環(huán)境,用于存儲數(shù)組A、數(shù)組B和運(yùn)行數(shù)據(jù)同步模塊,該服務(wù)器與Historian服務(wù)器和MongoDB集群通過TCP/IP協(xié)議通信。操作系統(tǒng)為 Windows Server 2012。
[0029]部署實(shí)施過程:
3.1、在同步程序服務(wù)器安裝.NET Framework4.5, Historian試用版 3.2、將本發(fā)明開發(fā)的數(shù)據(jù)同步模塊程序,拷貝到D盤 3.3、在控制面板新建定時任務(wù),每秒調(diào)用I次本程序 3.4、啟動定時任務(wù),觀察MongoDB數(shù)據(jù)庫。若數(shù)據(jù)已經(jīng)同步過來,同步成功。
[0030]以上所記載,僅為利用本創(chuàng)作技術(shù)內(nèi)容的實(shí)施例,任何熟悉本項(xiàng)技藝者運(yùn)用本創(chuàng)作所做的修飾、變化,皆屬本創(chuàng)作主張的專利范圍,而不限于實(shí)施例所揭示者。
【主權(quán)項(xiàng)】
1.一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,其包含: 同步程序服務(wù)器:用于存儲數(shù)組A、數(shù)組B和運(yùn)行數(shù)據(jù)同步模塊; Historian服務(wù)器:包含實(shí)時運(yùn)行的Historian數(shù)據(jù)庫; MongoDB集群:包含MongoDB數(shù)據(jù)庫,是大數(shù)據(jù)分析用到的No SQL數(shù)據(jù)庫集群; 所述方法包含以下步驟: 步驟一、所述數(shù)據(jù)同步模塊調(diào)用MongoDB C#驅(qū)動,連接MongoDB數(shù)據(jù)庫,將需要獲取的Tag名單保存到數(shù)組A中; 步驟二、所述數(shù)據(jù)同步模塊調(diào)用Historian數(shù)據(jù)庫中的Proficy.Historian.UserAPI數(shù)據(jù),將數(shù)組A中所有Tag在Proficy.Historian.UserAPI數(shù)據(jù)中對應(yīng)的最新的值取出來保存到數(shù)組B中; 步驟三、所述數(shù)據(jù)同步模塊調(diào)用MongoDB C#驅(qū)動,將數(shù)組B中的值插入到MongoDB數(shù)據(jù)庫中; 步驟四、設(shè)置定時任務(wù),定時調(diào)用數(shù)據(jù)同步模塊; 步驟五、啟動定時任務(wù),觀察MongoDB數(shù)據(jù)庫,數(shù)組B中的值已經(jīng)同步到MongoDB數(shù)據(jù)庫,則同步成功。2.如權(quán)利要求1所述的一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,其特征在于所述的數(shù)據(jù)同步模塊的構(gòu)建方法為用Visual Stud1新建一個工程,將MongoDB驅(qū)動復(fù)制到該工程根目錄下,然后再新建一個類,該類包含以下動作: A、引入MongoDBC#驅(qū)動;B、弓I入Proficy.Historian.UserAPI ; C、調(diào)用MongoDBC#驅(qū)動,連接MongoDB數(shù)據(jù)庫,將需要獲取的Tag名單保存到數(shù)組A中; D、將數(shù)組A中所有Tag在Proficy.Historian.UserAPI數(shù)據(jù)中對應(yīng)的最新的值取出來保存到數(shù)組B中 E、調(diào)用MongoDBC#驅(qū)動,將數(shù)組B中的值插入到MongoDB數(shù)據(jù)庫中。3.如權(quán)利要求1所述的一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,其特征在于所述的同步程序服務(wù)器與Historian服務(wù)器、MongoDB集群通過TCP/IP協(xié)議通信。4.如權(quán)利要求1所述的一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,其特征在于所述的同步程序服務(wù)器操作系統(tǒng)為Windows Server 2012。5.如權(quán)利要求1所述的一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,其特征在于所述的定時任務(wù)新建在控制面板,每秒調(diào)用I次。6.如權(quán)利要求1所述的一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法,其特征在于所述的定時任務(wù)設(shè)置為自動啟動。
【專利摘要】本發(fā)明公開一種Historian數(shù)據(jù)庫與MongoDB數(shù)據(jù)庫數(shù)據(jù)同步的方法。所述方法包含主要通過數(shù)據(jù)同步模塊調(diào)用MongoDB C#驅(qū)動,連接MongoDB數(shù)據(jù)庫,將需要獲取的Tag名單保存到數(shù)組A中,然后調(diào)用Historian數(shù)據(jù)庫中的Proficy.Historian.UserAPI數(shù)據(jù),將數(shù)組A中所有Tag數(shù)據(jù)中對應(yīng)的最新的值取出來保存到數(shù)組B中;最后調(diào)用MongoDB C#驅(qū)動,將數(shù)組B中的值插入到MongoDB數(shù)據(jù)庫中。發(fā)明實(shí)現(xiàn)讓開發(fā)人員能夠?qū)⒉粚ν忾_放的Historian數(shù)據(jù)同步到MongoDB,軟件開發(fā)時直接從MongoDB取數(shù)據(jù),便于做大數(shù)據(jù)分析以及二次開發(fā)。
【IPC分類】G06F17/30
【公開號】CN104915380
【申請?zhí)枴緾N201510241908
【發(fā)明人】闕錦龍
【申請人】福建省納金網(wǎng)信息技術(shù)有限公司
【公開日】2015年9月16日
【申請日】2015年5月13日