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

?

數(shù)據(jù)同步技術(shù)在高校數(shù)據(jù)中心的應(yīng)用

2020-06-08 10:26魏李方
電腦知識與技術(shù) 2020年10期
關(guān)鍵詞:觸發(fā)器數(shù)據(jù)庫

魏李方

摘要:針對我校應(yīng)用系統(tǒng)眾多、數(shù)據(jù)庫繁雜的情況,根據(jù)不同的場景、要求和條件,采用不同的數(shù)據(jù)同步技術(shù)來保證我校人事、財務(wù)、教務(wù)、學生、學工和一卡通等基礎(chǔ)數(shù)據(jù)的一致性。該文分析了幾種常用的數(shù)據(jù)同步技術(shù),并結(jié)合我校實際情況,介紹我校數(shù)據(jù)中心在不同的應(yīng)用場景下所采用的數(shù)據(jù)同步技術(shù)。

關(guān)鍵詞:數(shù)據(jù)庫;數(shù)據(jù)同步;觸發(fā)器;ODI;Oracle Job

中圖分類號:TP311 文獻標識碼:A

文章編號:1009-3044(2020)10-0266-03

1背景

隨著信息化的發(fā)展,高校中各種應(yīng)用系統(tǒng)越建越多,數(shù)據(jù)庫環(huán)境也越來越復(fù)雜,同時這些龐雜的數(shù)據(jù)庫之間還需要保持各種基礎(chǔ)數(shù)據(jù)的一致和正確,為此就需要使用各種數(shù)據(jù)同步技術(shù)。所謂數(shù)據(jù)同步,就是將數(shù)據(jù)從源數(shù)據(jù)源經(jīng)過清洗、轉(zhuǎn)換之后復(fù)制到另一個或多個目標數(shù)據(jù)源的過程,復(fù)制完成后雙方數(shù)據(jù)達到一致。

為了滿足日益復(fù)雜的數(shù)據(jù)同步需求,很多學者已經(jīng)在數(shù)據(jù)同步相關(guān)領(lǐng)域進行了各種技術(shù)層面的研究和實踐,比如寇媛媛,王曉明,喬文文的數(shù)據(jù)庫同步技術(shù)的研究與應(yīng)用,羅永有、梁超香的基于ODI的高校異構(gòu)系統(tǒng)數(shù)據(jù)集成的研究與實現(xiàn)。劉樹、徐碩等一種基于觸發(fā)器的數(shù)據(jù)同步系統(tǒng)的研究及關(guān)鍵技術(shù)實現(xiàn)等。本文結(jié)合實際情況,介紹了常用的數(shù)據(jù)同步技術(shù)和這些技術(shù)在我校的應(yīng)用情況。

2主要技術(shù)

2.1觸發(fā)器數(shù)據(jù)同步

在數(shù)據(jù)庫中,觸發(fā)器(trigger)是與表事件相關(guān)的特殊的存儲過程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動,而是由事件來觸發(fā)。當對一個表進行insert、delete或update等操作時,觸發(fā)器就會被執(zhí)行。觸發(fā)器可以是簡單的查詢SQL語句,也可以是復(fù)雜的插入、刪除、更新SQL語句。觸發(fā)器分為語句級觸發(fā)器和行級觸發(fā)器。所謂語句級觸發(fā)器,是在指定的操作語句之前或之后執(zhí)行一次,不管影響多少行數(shù)據(jù),都只會執(zhí)行一次。而行級觸發(fā)器則是指在每一條數(shù)據(jù)發(fā)生變化時操作都會被觸發(fā),即多少行數(shù)據(jù)發(fā)生變化,就觸發(fā)多少次觸發(fā)器。

不同的數(shù)據(jù)庫有不同的觸發(fā)器規(guī)則,在Oracle數(shù)據(jù)中,一個表上最多可有12個觸發(fā)器,同一時間、同一事件、同一類型的觸發(fā)器只能有一個。一般而言,在觸發(fā)器的執(zhí)行部分只能用DML語句(SELECT,INSERT,UPDATE,DELETE),不能使用DDL語句(CREATE,ALTER,DROP)。在觸發(fā)語句中一般不能包含事務(wù)控制語句fcOMMIT,ROLLBACK,SAVEPOINT),在觸發(fā)器主體中調(diào)用的任何過程、函數(shù),也不能使用事務(wù)控制語句。

觸發(fā)器是在表中數(shù)據(jù)發(fā)生變化時自動強制執(zhí)行,當觸發(fā)器由于某種原因執(zhí)行失敗時會阻斷數(shù)據(jù)更新過程,從而導(dǎo)致該數(shù)據(jù)庫之上的業(yè)務(wù)系統(tǒng)執(zhí)行時出現(xiàn)異常,一般這種異常無法被業(yè)務(wù)系統(tǒng)捕捉到。觸發(fā)器的這種固有缺陷也限制了其在數(shù)據(jù)同步中的使用。

2.2定時任務(wù)

所謂定時任務(wù),就是一個Job,在規(guī)定的時間內(nèi),執(zhí)行數(shù)據(jù)庫中指定的“存儲過程”。在實際數(shù)據(jù)同步時,先在源數(shù)據(jù)庫和目標數(shù)據(jù)庫之間建立一個遠程連接;之后編寫一個用于完成將源數(shù)據(jù)庫中的數(shù)據(jù)同步到目標數(shù)據(jù)庫的存儲過程;最后設(shè)置一個定時任務(wù),在該定時任務(wù)中執(zhí)行上述存儲過程,即可實現(xiàn)定時數(shù)據(jù)同步。

使用定時任務(wù)進行數(shù)據(jù)同步,由于數(shù)據(jù)同步操作不是在業(yè)務(wù)數(shù)據(jù)更新時同時進行,而是在一個固定的時間間隔內(nèi)進行,所以數(shù)據(jù)同步過程對業(yè)務(wù)數(shù)據(jù)更新沒有任何影響。由于數(shù)據(jù)存儲過程功能強大,也能實現(xiàn)比較復(fù)雜的需求。在不同的使用場景中,定時任務(wù)間隔時間可以根據(jù)需要進行調(diào)整,基本能滿足高校環(huán)境中數(shù)據(jù)同步的時限要求。

2.3數(shù)據(jù)同步工具

由于數(shù)據(jù)同步的非常重要并存在廣泛的需求,很多公司都開發(fā)了適應(yīng)于不同場景和工作要求的數(shù)據(jù)同步工具。這些數(shù)據(jù)同步工具也在高校數(shù)據(jù)中心的數(shù)據(jù)同步中得到了廣泛的應(yīng)用。下面介紹幾種比較常用的數(shù)據(jù)同步工具。

2.3.1ODI

ODI(Oracle Data Integratorl是Oracle公司開發(fā)的一個綜合數(shù)據(jù)集成平臺。ODI完成數(shù)據(jù)集成過程中最為重要的ETL(Ex-tract-Transform-Load,提取一轉(zhuǎn)換一加載)環(huán)節(jié)。ODI能夠在異構(gòu)數(shù)據(jù)源之間以批量、實時、同步、異步模式實現(xiàn)高性能的數(shù)據(jù)轉(zhuǎn)換與傳輸。ODI能保證數(shù)據(jù)在各業(yè)務(wù)系統(tǒng)之間的一致性,避免冗余數(shù)據(jù),消除“信息孤島”。由于ODI強大的功能,ODI非常適合在高校的數(shù)據(jù)環(huán)境中進行數(shù)據(jù)同步。

2.3.2DataX

阿里公司的DataX是一款異構(gòu)數(shù)據(jù)源離線同步工具。DataX基于python開發(fā),可以實現(xiàn)包括Oracle、SQL Server、MySQL、OceanBase等多種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。DataX提供了豐富的數(shù)據(jù)讀寫插件,支持多線程執(zhí)行,從而使數(shù)據(jù)同步非常便捷高效。

Datax還可以根據(jù)實際業(yè)務(wù)需求對同步的數(shù)據(jù)按照一定的規(guī)則進行清洗、過濾及轉(zhuǎn)換,進而提高數(shù)據(jù)同步的數(shù)據(jù)準確度,最終為數(shù)據(jù)高質(zhì)量同步提供可靠的保障。

2.3.3 Sqoop

Sqoop是一款開源的數(shù)據(jù)同步工具,主要用于在Hadoop與傳統(tǒng)的數(shù)據(jù)庫(Mysql、Postgre等)之間進行數(shù)據(jù)的傳遞,可以將關(guān)系型數(shù)據(jù)庫(例如:Oracle、SQL Serv-er、MySQL、Postgres等)中的數(shù)據(jù)導(dǎo)進到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進到關(guān)系型數(shù)據(jù)庫中。

2.4定制數(shù)據(jù)同步程序

在高校眾多的應(yīng)用系統(tǒng)中,很多應(yīng)用系統(tǒng)(如財務(wù)收繳費系統(tǒng)、網(wǎng)絡(luò)計費系統(tǒng)等1出于安全、性能方面的考慮,沒有向數(shù)據(jù)中心開放底層數(shù)據(jù)庫訪問。這類應(yīng)用系統(tǒng)的數(shù)據(jù)同步無法通過之前提到的數(shù)據(jù)庫同步方式來完成,而是通過提供南北向接口的方式來向其他應(yīng)用系統(tǒng)提供業(yè)務(wù)數(shù)據(jù)或完成本應(yīng)用系統(tǒng)的基礎(chǔ)數(shù)據(jù)更新。這種情況就需要定制開發(fā)數(shù)據(jù)同步程序來完成數(shù)據(jù)同步工作。

定制開發(fā)的數(shù)據(jù)同步程序能實現(xiàn)更為復(fù)雜的數(shù)據(jù)過濾、轉(zhuǎn)換、清洗功能,并能根據(jù)時效性要求選用不同的技術(shù)方案實現(xiàn)實時或定時的數(shù)據(jù)同步。定制開發(fā)的數(shù)據(jù)同步程序由于功能強大、靈活性高、適應(yīng)性強,在高校的數(shù)據(jù)同步中使用非常廣泛。

3數(shù)據(jù)同步技術(shù)的應(yīng)用

根據(jù)不同的要求和場景在數(shù)據(jù)同步時選用不同的數(shù)據(jù)同步技術(shù)。下面簡單介紹各種技術(shù)在我校的使用情況。

3.1觸發(fā)器數(shù)據(jù)同步

同一個數(shù)據(jù)庫服務(wù)器上部署的多個數(shù)據(jù)庫之間數(shù)據(jù)同步可以使用觸發(fā)器來完成。我校數(shù)字化校園系統(tǒng)采用的是正方軟件股份有限公司的統(tǒng)一門戶平臺、統(tǒng)一身份認證平臺和統(tǒng)一數(shù)據(jù)庫產(chǎn)品。統(tǒng)一數(shù)據(jù)庫平臺中存放教工、學生、財務(wù)等公共數(shù)據(jù)。統(tǒng)一身份認證平臺存放了數(shù)字化校園的用戶信息、權(quán)限信息等身份認證信息。當統(tǒng)一數(shù)據(jù)庫中教工、學生信息發(fā)生變化時,使用觸發(fā)器將變化的信息同步到統(tǒng)一身份認證系統(tǒng)中,并由統(tǒng)一身份認證系統(tǒng)將更新信息發(fā)送到LDAP服務(wù)器,供其他應(yīng)用系統(tǒng)使用。圖1為觸發(fā)器數(shù)據(jù)同步。

3.2定時任務(wù)

定時任務(wù)一般用來處理需求比較簡單、現(xiàn)有數(shù)據(jù)同步工具處理不方便,又不需要定制開發(fā)程序就可以完成的數(shù)據(jù)同步。我校數(shù)據(jù)中心到一卡通的教工和學生的基本信息的數(shù)據(jù)同步就是通過定時任務(wù)來實現(xiàn)的。定時任務(wù)主要有名稱、類型、存儲過程、開始日期、結(jié)束日期、運行頻率等幾個因素。配置示例如圖2。

3.3數(shù)據(jù)同步工具

在眾多的數(shù)據(jù)同步工具中,我校主要使用的是Oracle公司開發(fā)的ODI。目前,ODI完成了教務(wù)系統(tǒng)到數(shù)據(jù)中心的學生、學籍、成績、課程、教室、考試安排的教務(wù)相關(guān)信息;完成學工系統(tǒng)到數(shù)據(jù)中心的收繳費信息、貸款信息、注冊信息等學工相關(guān)信息;完成財務(wù)系統(tǒng)到數(shù)據(jù)中心的學生、人事、組織結(jié)構(gòu)、收繳費信息等財務(wù)相關(guān)信息;完成安保信息系統(tǒng)和數(shù)據(jù)中心之間的教工、學生、宿舍、車輛、門禁等安保相關(guān)信息;完成各院系機房管理系統(tǒng)和數(shù)據(jù)中心之間的人員信息、一卡通、黑名單等信息的同步;教評系統(tǒng)和數(shù)據(jù)中心之間的班級、教室、課程表、單位、教工基本信息、課程等教評相關(guān)信息的數(shù)據(jù)同步。

圖3為數(shù)據(jù)同步工具數(shù)據(jù)同步圖。

3.4定制程序數(shù)據(jù)同步

在數(shù)據(jù)同步需求比較復(fù)雜不能通過上述方法進行或應(yīng)用系統(tǒng)沒有開放數(shù)據(jù)庫訪問的可以通過定制程序來實現(xiàn)。通過定制數(shù)據(jù)同步程序來實現(xiàn)數(shù)據(jù)同步的方法在我校網(wǎng)絡(luò)計費系統(tǒng)用戶信息同步;郵件系統(tǒng)用戶、組織機構(gòu)信息同步等場景中得到了應(yīng)用。我校網(wǎng)絡(luò)計費系統(tǒng)數(shù)據(jù)同步程序的流程如下:

1)數(shù)據(jù)中心根據(jù)網(wǎng)絡(luò)計費系統(tǒng)需求提供用戶信息視圖。

2)定制程序讀取數(shù)據(jù)中心提供的用戶信息,將數(shù)據(jù)庫中的用戶信息和網(wǎng)絡(luò)計費系統(tǒng)中的用戶、計費組和計費套餐等信息進行比較,檢查網(wǎng)絡(luò)計費系統(tǒng)中的數(shù)據(jù)是否和數(shù)據(jù)中心的數(shù)據(jù)符合。

3)如果不符合,根據(jù)情況調(diào)用網(wǎng)絡(luò)計費系統(tǒng)提供的北向接口進行處理。

4)如果符合,則繼續(xù)處理下一條數(shù)據(jù)。

5)定時重復(fù)以上步驟。

4結(jié)束語

實踐表明,在高校復(fù)雜的業(yè)務(wù)環(huán)境下,很少有一種數(shù)據(jù)同步技術(shù)能完全滿足所有業(yè)務(wù)系統(tǒng)的數(shù)據(jù)同步需求。根據(jù)不同的情況采用不同技術(shù)靈活地實現(xiàn)數(shù)據(jù)同步功能是數(shù)據(jù)中心的最優(yōu)選擇。在工作中,也應(yīng)密切跟蹤數(shù)據(jù)同步新技術(shù)的發(fā)展,不斷將合適的新技術(shù)應(yīng)用到數(shù)據(jù)同步的工作中。

猜你喜歡
觸發(fā)器數(shù)據(jù)庫
主從JK觸發(fā)器邏輯功能分析
使用觸發(fā)器,強化安全性
對觸發(fā)器邏輯功能轉(zhuǎn)換的分析
觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法
方城县| 湄潭县| 河津市| 舞阳县| 宜兴市| 孟村| 赫章县| 屏山县| 兰西县| 新田县| 柯坪县| 陵川县| 苍梧县| 鲁甸县| 龙胜| 红桥区| 黑龙江省| 高州市| 增城市| 海盐县| 姜堰市| 拜泉县| 邢台县| 万盛区| 长沙县| 六安市| 香格里拉县| 阿瓦提县| 普洱| 汝州市| 文水县| 德庆县| 合水县| 阳新县| 靖边县| 镇赉县| 阆中市| 布尔津县| 阳曲县| 榆中县| 灵山县|