




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 UAP 6.1 RDI技術(shù)紅皮書UAP 6.1 實時數(shù)據(jù)集成技術(shù)紅皮書 UAP中心 編著目錄第一章UF-RDI體系結(jié)構(gòu)3第二章UF-RDI新特性42.1靈活多變的部署模型52.2生產(chǎn)引擎分發(fā)機制72.3全新的用戶界面7第三章RDI啟動與關(guān)閉9第四章啟動和登錄RDI Console10第五章用向?qū)ч_始第一個應(yīng)用11第六章數(shù)據(jù)源管理196.1新建數(shù)據(jù)源206.2修改數(shù)據(jù)源216.3刪除數(shù)據(jù)源21第七章表映射關(guān)系配置22第八章Notification郵件通知配置25第九章SourceModule詳解269.1生產(chǎn)引擎279.2運行期279.3屬性289.4過濾器30第十章TargetModule詳
2、解3310.1運行期屬性3410.2屬性3510.3事務(wù)攔截器36第十一章RDI計劃腳本詳解4211.1命令簡介4311.2上下文屬性4511.3用腳本設(shè)計器生成腳本45第十二章RDI目錄和系統(tǒng)配置文件47背景UFIDA AE(用友分析引擎)是用友在云計算環(huán)境下BI(商業(yè)智能)戰(zhàn)略的重要產(chǎn)品。UFIDA AE分為UF-RDI和UF-DW兩個核心元件,UF-RDI完成高性能的增量式實時數(shù)據(jù)集成,UF-DW是一個列存儲的數(shù)據(jù)倉庫,完成高效的海量數(shù)據(jù)分析。這兩個元件協(xié)同工作,完成數(shù)據(jù)抽取,轉(zhuǎn)換,加載,分析等的一整套數(shù)據(jù)處理流程。第一章 UF-RDI體系結(jié)構(gòu)UAP 技術(shù)紅皮書系列 第48 / 51頁R
3、DI基于日志分析和消息中間件技術(shù),內(nèi)部具有高緩存,高并發(fā)的架構(gòu),實現(xiàn)了高性能的增量式實時數(shù)據(jù)集成和靈活的部署模型。其工作原理簡單描述如下圖:n RDI Source Service 從源端數(shù)據(jù)庫分析日志得到事務(wù)并發(fā)送至消息中間件n RDI Target Service 從消息中間件取得事務(wù)并應(yīng)用到目的端數(shù)據(jù)庫n RDI Admin Console 用來管理RDI Server實例中的任務(wù)和資源第二章 UF-RDI新特性本章內(nèi)容概要:l 靈活多變的部署模型l 生產(chǎn)引擎分發(fā)機制l 全新的用戶界面革新版的RDI在原有架構(gòu)基礎(chǔ)上進(jìn)行了深層的重構(gòu),主要有以下三個新特性。2.1 靈活多變的部署模型將RDI
4、 Server統(tǒng)一,在同一個RDI Server實例中既可以部署 source service也可以部署target service,應(yīng)用部署模型更加靈活,典型的部署模型有:1. 單實例緊湊部署模型1一個RDI Server實例中既部署了source service也部署了target service,同時消息中間件也運行于這個實例中。這種部署模型一般可用于用戶資源比較緊張的情況或者開發(fā)演示等非生產(chǎn)環(huán)境。2. 單實例緊湊部署模型2一個RDI Server實例中既部署了source service也部署了target service,但消息中間件獨立運行于另外一個物理進(jìn)程中。這是一種我們推薦的典
5、型的部署模型,即可用于生產(chǎn)環(huán)境也可用于開發(fā)演示等環(huán)境。3. 多實例分布式模型這種部署模型下source service和target service分別運行于單獨的RDI Server實例中,消息中間件Message Queue也運行于單獨的進(jìn)程中。此部署模型適合于用戶的硬件和網(wǎng)絡(luò)資源比較充沛的生產(chǎn)環(huán)境。2.2 生產(chǎn)引擎分發(fā)機制這個特性主要是基于這樣一個事實,Source Service分析事物的速度遠(yuǎn)大于Target Service應(yīng)用事務(wù)的速度,特別是當(dāng)目的端數(shù)據(jù)庫是列式存儲數(shù)據(jù)庫的情況下。于是我們把源服務(wù)架構(gòu)調(diào)整為生產(chǎn)引擎結(jié)構(gòu),將分析得到的事務(wù)根據(jù)模塊分發(fā)到多個服務(wù)隊列,每個服務(wù)隊列對應(yīng)
6、一個target service。這樣減少對源庫的壓力的同時,目的端數(shù)據(jù)庫的并發(fā)應(yīng)用事務(wù)的能力也得以發(fā)揮,可以很大的提高性能。SourceModule和TargetModule邏輯分離,形成一對多的關(guān)系。其模型如下圖:2.3 全新的用戶界面新的用戶界面采用Chrome瀏覽器風(fēng)格,同時有向?qū)Чδ?,界面更加美觀的同時用戶操作將更加簡便靈活。n 瀏覽器風(fēng)格在以下的部分中我們將結(jié)合用戶界面詳細(xì)講解RDI的各項功能。第三章 RDI啟動與關(guān)閉首先啟動消息中間件,在<RDI_HOME>/mq/apache-activemq-5.5.0/bin下執(zhí)行activemq.bat(linux下activ
7、emq)>activemq.bat然后在<RDI_HOME>/bin下,執(zhí)行rdi.bat(linux下rdi.sh)>rdi start 啟動服務(wù)>rdi console 啟動客戶端界面使用rdi console命令打開客戶端界面如下:如果想關(guān)閉RDI Server有兩種方式:n 使用RDI的關(guān)閉命令:>rdi stop 。n 在Windows或Linux命令行用Ctrl + c鍵退出。第四章 啟動和登錄RDI Console用戶可以在<RDI_HOME>/bin下執(zhí)行rdi console打RDI管理控制臺;RDI管理控制臺也可以單獨運行,拷
8、貝<RDI_HOME>/console到任意目錄,運行console.bat腳本。在頂端的輸入框中輸入服務(wù)器端的IP地址和端口號(其輸入格式為 : <IP>:<port>),回車。如圖所示:Enterprise Console會自動記錄用戶瀏覽歷史,下次登錄Console或者點擊 按鈕打開新登錄頁面的時候會出現(xiàn)以前瀏覽過的節(jié)點快照,可以點擊”srcAgent”按鈕進(jìn)入。如圖所示:第五章 用向?qū)ч_始第一個應(yīng)用用戶按照最后一章“系統(tǒng)初始化安裝及數(shù)據(jù)庫配置”中介紹的步驟進(jìn)行系統(tǒng)安裝以后,我們可以用任務(wù)向?qū)黹_始我們第一個應(yīng)用。登錄服務(wù)器后,點擊”New”按鈕,選擇
9、”Task Wizard”選項打開任務(wù)向?qū)А?. 步驟一:添加Source Module數(shù)據(jù)源。各個信息如圖所示:其中:name 表示源端數(shù)據(jù)源名 ;database Type 表示使用的數(shù)據(jù)庫類型;service Name 使用的數(shù)據(jù)庫實例(數(shù)據(jù)庫名);后兩項是用戶名和密碼。Host和Port是數(shù)據(jù)庫所在的主機地址和數(shù)據(jù)庫對應(yīng)的端口號,輸入完端口號后要回車,這樣才表示輸入完畢,否則按buildString無反應(yīng)。用戶在界面上填寫好各項信息,然后點擊在文本域中會顯示數(shù)據(jù)庫連接字串,可以點擊按鈕測試配置是否成功,出現(xiàn)“connection work fine”后表示測試成功,可以點擊按鈕部署這個
10、數(shù)據(jù)源。除了采用這種添加方式之外,還可以使用”NewDatasource”方式來配置數(shù)據(jù)源。如果在使用向?qū)е耙呀?jīng)配置好了所需的數(shù)據(jù)源,用戶就可以點擊向?qū)У撞康奶^這一步。2. 步驟二:創(chuàng)建TargetModule數(shù)據(jù)源這里是配置目的端數(shù)據(jù)源的信息,和源端數(shù)據(jù)源類似。如果目的端數(shù)據(jù)源以前配置好,也可以跳過該步。3. 步驟三:表映射關(guān)系配置此項用于配置源端數(shù)據(jù)庫表和目的端數(shù)據(jù)庫表的對應(yīng)關(guān)系,用戶可以用此關(guān)系在目的端創(chuàng)建相應(yīng)的表以及從源表向其中導(dǎo)入數(shù)據(jù)。目前只支持目的端是GBase的數(shù)據(jù)庫。用戶通過設(shè)計器面板選擇要鏡像的表:參數(shù):agent 默認(rèn)即可;Datasource 數(shù)據(jù)源:第一步配置的源端
11、數(shù)據(jù)源,Schema:表的模式,Oracle一般模式名就是用戶名,GBase一般模式名是數(shù)據(jù)庫名; 表示匹配模式;下面的是數(shù)據(jù)源的所有表,可以通過添加和刪除表,表示源端數(shù)據(jù)庫向目的端數(shù)據(jù)庫要同步的表(表結(jié)構(gòu)和表數(shù)據(jù))。點擊選入,用戶也可以用LIKE語法匹配(Start%,%End也屬于LIKE匹配),然后點擊選入,也可以點擊從文件中導(dǎo)入。點擊可將選入的刪除。在右邊表映射的表格中可以修改目的schema和表名,如圖:這里Source Schema和Target Schema 要注意的是不同數(shù)據(jù)庫是不同的,Oracle一般模式名就是用戶名,GBase模式名要用數(shù)據(jù)庫名;而且Oracle數(shù)據(jù)庫一定要
12、注意大小寫,如果用戶名是大寫,那么schema名一定大寫。第一條表示可以把源端RDISA用戶的所有表及數(shù)據(jù)都導(dǎo)入RDISA_T數(shù)據(jù)庫中。RDISA_T的用戶在設(shè)置目的端數(shù)據(jù)庫時已經(jīng)指定。第二條表示可以把源端RDISA用戶的表及數(shù)據(jù)STU導(dǎo)入RDISA_T數(shù)據(jù)庫中。其中導(dǎo)入表結(jié)構(gòu)用,導(dǎo)入表數(shù)據(jù)用。4. 步驟四:創(chuàng)建Producer Engine并設(shè)置其屬性在這一步中,我們需要填寫Engine名稱,然后要填寫datasource_name屬性為我們在第一步配置的數(shù)據(jù)源,這個屬性是必須的,其他屬性用默認(rèn)值即可,我們將在后面的章節(jié)中介紹其他屬性的意義。這樣ProducerEngine就連接到這個數(shù)據(jù)源
13、,如圖所示:5. 步驟五:為生產(chǎn)引擎設(shè)計過濾器在這一步中需要設(shè)計兩類過濾器:第一類是引擎過濾器Engine Filter,Engine Filter是第一級過濾器,該過濾器可以使用LIKE,EQUAL規(guī)則進(jìn)行匹配,但不支持正則表達(dá)式匹配。一個引擎只有一個Engine Filter。第二類是自定義的二級過濾器,該過濾器可以使用LIKE,EQUAL和正則表達(dá)式規(guī)則進(jìn)行匹配,用戶可以順序添加多個二級過濾器。當(dāng)前默認(rèn)的過濾器為Engine Filter,如面板邊框顯示,點擊按鈕保存當(dāng)前過濾器,點擊新建一個過濾器,然后選擇要匹配的表,選擇好以后要點保存新建的二級過濾器,否則不保存,在右端是看不到新建的二
14、級過濾器的。我們選擇一個表,點擊加入右邊的表格中(確保在目的端的數(shù)據(jù)庫scheme下也已經(jīng)創(chuàng)建了對應(yīng)的表,對于表映射關(guān)系配置成功的源端和目的端數(shù)據(jù)庫,要先同步表結(jié)構(gòu)和表數(shù)據(jù))。這里要注意的是RDI_MD_FILTERS不能添加到右邊的表格中。生產(chǎn)引擎會先用Engine Filter定義的規(guī)則從源端數(shù)據(jù)庫分析得到事務(wù),然后依次根據(jù)用戶定義二級過濾器進(jìn)行匹配(如果匹配規(guī)則有重復(fù),那么后匹配到的將被忽略),并將匹配到的事務(wù)發(fā)送到相應(yīng)的服務(wù)隊列。6. 步驟六:部署并啟動配置好的生產(chǎn)引擎點擊部署引擎,點擊啟動引擎,如圖所示:7. 步驟七:生成和配置相應(yīng)的TargetModule生成的TargetModu
15、le與Producer Engine的自定義過濾器是一一對應(yīng)的,如右邊的target module所示:依次雙擊選擇每個TargetModule并為其設(shè)置屬性及攔截器。如圖設(shè)置datasource_name屬性為目的端數(shù)據(jù)源。其他屬性我們將會在下面的章節(jié)中介紹。然后為每個module添加一個TableMirroringInterceptor:最下面一行意味著將源端Schema為RDISA的表映射為目的端Schema為RDISA_T的表,表名不變,點擊保存。這里要注意有兩點:Schema的大小寫;目的端Schema注意區(qū)分?jǐn)?shù)據(jù)庫,前面已經(jīng)說明。然后點擊部署該引擎,點擊啟動該引擎,也可在下一步全部
16、部署和啟動。8. 步驟八:部署并啟動所有的TargetModule點擊部署所有的target module,點擊啟動所有的target module并以進(jìn)度條顯示進(jìn)度。當(dāng)所有操作完成后,單擊按鈕可結(jié)束向?qū)蝿?wù)。如果在向?qū)渲眠^程中,出現(xiàn)錯誤可以點擊按鈕返回進(jìn)行修改。其界面如圖所示:當(dāng)全部部署完并啟動后要檢查producer services 和 comsumer services 是否都正常啟動,如果有哪個沒有啟動,點擊啟動。第六章 數(shù)據(jù)源管理本章內(nèi)容概要:l 新建數(shù)據(jù)源l 修改數(shù)據(jù)源l 刪除數(shù)據(jù)源6.1 新建數(shù)據(jù)源打開注冊的服務(wù)器界面,點擊 ”New” 按鈕,并選擇 ”DataSource”
17、 ,即可打開數(shù)據(jù)源的配置界面,如下圖所示:1. 在界面中輸入數(shù)據(jù)源的配置信息后,點擊 按鈕,生成RDI連接數(shù)據(jù)庫的語句,然后點擊 按鈕,將該數(shù)據(jù)源配置到服務(wù)器中。2. 對于已經(jīng)編輯好的數(shù)據(jù)源,可以點擊按鈕,以測試該數(shù)據(jù)源的配置是否正確。3. 如果數(shù)據(jù)庫是Oracle RAC集群,則選中RAC后可以添加多個IP地址和端口號。4. 當(dāng)部署數(shù)據(jù)源成功后,新建的數(shù)據(jù)源會自動添加到左側(cè)的System Properties列表中.通過點擊其中的列表項查看已配置的數(shù)據(jù)源。6.2 修改數(shù)據(jù)源在左側(cè)的系統(tǒng)屬性列表中,選中需要修改的數(shù)據(jù)源并點擊打開配置界面,可對該數(shù)據(jù)源中的內(nèi)容做出修改。修改成功后,需重新點擊”B
18、uildString” 按鈕,生成相應(yīng)的連接數(shù)據(jù)庫語句后,再點擊“Deploy” 按鈕,將該數(shù)據(jù)源配置到服務(wù)器中。6.3 刪除數(shù)據(jù)源如果配置的數(shù)據(jù)源已經(jīng)失效,無法與數(shù)據(jù)庫建立連接,或者該數(shù)據(jù)源不再需要時,選中左側(cè)的系統(tǒng)屬性列表中的數(shù)據(jù)源,點擊列表框上面的將其刪除,或者雙擊在打開的界面中點擊”Undeploy”按鈕,即可刪除此數(shù)據(jù)源。第七章 表映射關(guān)系配置此項用于配置源端數(shù)據(jù)庫表和目的端數(shù)據(jù)庫表的對應(yīng)關(guān)系,用戶可以用此關(guān)系在目的端創(chuàng)建相應(yīng)的表以及從源表向其中導(dǎo)入原始數(shù)據(jù)。如圖所示:用戶通過設(shè)計器面板選擇要鏡像的表:點擊選入,用戶也可以用LIKE語法匹配(Start%,%End也屬于LIKE匹配)
19、,然后點擊選入,也可以點擊從文件中導(dǎo)入。點擊可將選入的刪除。在右邊表映射的表格中可以修改目的schema和表名,如圖:點擊可以將此映射部署,以便在計劃任務(wù)中使用,點擊在目的端數(shù)據(jù)庫創(chuàng)建相應(yīng)的表,點擊向目的數(shù)據(jù)庫導(dǎo)入相應(yīng)數(shù)據(jù)。其中分別表示目的服務(wù)器,目的數(shù)據(jù)源和Ora28a Agent的端口號(導(dǎo)入數(shù)據(jù)的時候需要)。第八章 Notification郵件通知配置RDI Notifacation用于RDI系統(tǒng)在系統(tǒng)發(fā)生異常等情況下給用戶發(fā)送通知信息,目前主要用電子郵件的方式,從New按鈕菜單選擇Notififation如圖配置:進(jìn)入配置界面,多個接受者可以用逗號分隔,如圖:第九章 SourceMod
20、ule詳解本章內(nèi)容概要:l 生產(chǎn)引擎l 運行期l 屬性l 過濾器SourceModule是源端服務(wù)的配置描述,現(xiàn)在包含一個生產(chǎn)引擎及其配置信息。9.1 生產(chǎn)引擎生產(chǎn)引擎負(fù)責(zé)按照其屬性配置從源端數(shù)據(jù)源分析日志,然后將日志按照過濾器進(jìn)行匹配然后發(fā)送到服務(wù)隊列。生產(chǎn)引擎部署后就成為一個SourceService。用戶可以通過RDI Console開啟/關(guān)閉、中斷/恢復(fù),以及監(jiān)控Source Service的運行狀態(tài),如圖:9.2 運行期源服務(wù)運行期狀態(tài)屬性有下圖所示:n state表示運行狀態(tài),有STOPPED(已停止),RUNNING(正在運行),SUSPENDED(暫停)n startTime狀
21、態(tài)項,用來記錄源服務(wù)啟動的時間。因為事務(wù)和操作計數(shù)是從服務(wù)啟動開始累加的。校對源和目的的事務(wù)和操作數(shù)是否一致需要源和目的服務(wù)是同一次啟動的才有意義。此項就是用于確定源和目的服務(wù)是否同時啟動n distance_behind表示源服務(wù)現(xiàn)在分析進(jìn)度與當(dāng)前數(shù)據(jù)庫執(zhí)行落后多少個操作,distance_behide大, 說明源服務(wù)事務(wù)分析慢,和目的服務(wù)的QueueSize配合來查看系統(tǒng)的性能瓶頸n tx_count表示從源服務(wù)啟動到現(xiàn)在已經(jīng)分析了多少個事務(wù)n operation_count表示從源服務(wù)啟動到現(xiàn)在已經(jīng)分析了多少個操作n insert_count表示從源服務(wù)啟動到現(xiàn)在已經(jīng)分析了多少個inse
22、rt操作n update_count表示從源服務(wù)啟動到現(xiàn)在已經(jīng)分析了多少個update操作n delete_count表示從源服務(wù)啟動到現(xiàn)在已經(jīng)分析了多少個delete操作n QueueSize用于目的服務(wù)n Pending_tx_cache_size 事務(wù)分析二級緩存中尚未提交的事務(wù)數(shù)量n XID:<transaction ID> 該未提交的事務(wù)中目前的操作數(shù)9.3 屬性屬性列表中列出了生產(chǎn)引擎運行所需要的屬性,其中一些是必要屬性,另外一些是性能調(diào)優(yōu)的參數(shù),如圖:詳細(xì)說明如下:Datasource_name生產(chǎn)引擎中使用的數(shù)據(jù)源名suspend_on_exception當(dāng)生產(chǎn)引擎
23、執(zhí)行遇到異常時是否suspend該服務(wù)auto_recover當(dāng)遇到Message Queue或者數(shù)據(jù)庫連接中斷時,是否自動恢復(fù),當(dāng)生產(chǎn)引擎配置為suspend_on_exception=true,并且service因為異常而suspend時,此項無效,不自動恢復(fù)。mail_notificationMail通知配置Service_log_level服務(wù)日志的輸出級別mq.url用于連接消息中間件的URL.目前默認(rèn)提供activeMQ作為消息中間件。用戶可以多種方式連接到消息中間件。例如:source.home/conf/perties有如下配置:mq.url=vm:(brok
24、er:(tcp:/localhost:8080)?persistent=true)?marshal=false表明Source Server 用本地VM協(xié)議連接到activeMQ,并且他們運行在同一個進(jìn)程中,同時activeMQ對其他客戶端開放tcp協(xié)議訪問。此時Target Server可使用tcp協(xié)議連接到activeMQ, target.home/conf/perties 應(yīng)作如下配置:mq.url=tcp:/localhost:8080在linux環(huán)境網(wǎng)絡(luò)環(huán)境中應(yīng)該使用真實IP地址,不要使用activeMQ亦可運行于單獨的進(jìn)程中,以及支持http等多
25、種協(xié)議。詳細(xì)了解可見 /mq.username連接到消息中間件的用戶名mq.password連接到消息中間件的密碼scn_step每一輪日志挖掘的步長period每一輪日志挖掘的時間間隔 (毫妙)Match_mode目前只只是SINGLEbulk_valvebulk_valve=0表示不使用事務(wù)緩存區(qū),分析得到一個事務(wù)及時發(fā)送,對于Source端業(yè)務(wù)壓力較小的情況下可以獲得最好的實時性bulk_valve >0 用戶業(yè)務(wù)壓力較大的系統(tǒng),Source Server使用批量緩存策略,當(dāng)事務(wù)緩存區(qū)的事務(wù)的SQL操作總數(shù)超過此值時,事務(wù)緩存區(qū)中的
26、事務(wù)將作為一批發(fā)送。flush_delaybulk_valve>0 的情況下,如果事務(wù)緩存區(qū)有時務(wù),且與上次事務(wù)發(fā)送的時間間隔大于此值,那么事務(wù)緩存區(qū)中的事務(wù)將被發(fā)送。Miner_fetch_size生產(chǎn)引擎的 fetch size,默認(rèn)為64Sql_bq_size生產(chǎn)引擎二級緩存大小,默認(rèn)為32,單位是Kenable_ddl_create表示是否支持 create table的DDLCache_name緩存的名字cache_max_elements_in_memory緩存最大元素數(shù)目cache_eternal是否用不過期cache_max_elements_on_disk緩存本地存儲最
27、大元素數(shù)目cache_overflow_to_disk是否從內(nèi)存溢出到硬盤cache_time_to_live_seconds緩存生命周期cache_disk_store_path本地緩存存儲路徑9.4 過濾器過濾器將生產(chǎn)引擎分析所得到得事務(wù)按照表名規(guī)則進(jìn)行匹配過濾,一個生產(chǎn)引擎可以設(shè)置多個過濾器,并且過濾器按照順序進(jìn)行過濾。名字為EngineFilter的過濾器是生產(chǎn)引擎的第一個過濾器,用戶必須進(jìn)行設(shè)置。用戶還必須定義一個或以上的自定義的二級過濾器。引擎會用EngineFilter定義的規(guī)則去分析事物,然后將所得的事務(wù)按照二級過濾器定義的順序依次進(jìn)行匹配,并發(fā)送到與之對應(yīng)的服務(wù)隊列,如果一個
28、事務(wù)可以匹配到多個過濾器的規(guī)則,那么后面的過濾器將被忽略。EngineFilter支持EQUAL,LIKE(包含BeginWith和EndWith)語法規(guī)則,二級過濾器還支持正則表達(dá)式規(guī)則。工作原理如下:配置界面如圖:這里對于Schema中的列表時按照字母順序從小到大進(jìn)行排序的,另外如果想知道schema的名字,那么可以在點擊schema的列表框時,按schema的首字母,能夠更快定位。如圖,可以直接按“R”就可以。對于上面選定的schema的所有表,會顯示在下圖中,并且它們也是按照字母順序排序的。第十章 TargetModule詳解本章內(nèi)容概要:l 生產(chǎn)引擎l 運行期l 屬性l 過濾器Tar
29、getModule從消息中間件服務(wù)隊列接收事務(wù)并且應(yīng)用到目的數(shù)據(jù)庫。TargetModule與工作隊列一一綁定,所以也可以認(rèn)為和source module的二級過濾器一一對應(yīng)。TargetModule部署并啟動后就是一個target service,它是獨立運行的線程。用戶可以通過RDI Console啟動/停止,暫停/恢復(fù),部署/解部署這個服務(wù),還可以監(jiān)視運行期的狀態(tài)屬性,與source service相似,Distanc_behide對target service無意義。如圖所示:10.1 運行期屬性目的服務(wù)運行期狀態(tài)屬性由下圖所示:目的服務(wù)的狀態(tài)屬性和源服務(wù)很相似,這里只說明有區(qū)別的地方
30、:n distance_behind 在目的端無意義;n QueueSize 表示隊列中存在的消息個數(shù),如果值大,說明目的數(shù)據(jù)庫應(yīng)用事務(wù)慢;和源服務(wù)distance_behind一起來查看系統(tǒng)的性能瓶頸;(目的服務(wù)QueueSize大:說明目的數(shù)據(jù)庫應(yīng)用事務(wù)慢;源服務(wù)distance_behide大:說明源服務(wù)事務(wù)分析慢)n <Schema>.<Table> 表示當(dāng)前對schema為RDISA_T的表EMP共有多少個操作。按照表統(tǒng)計操作數(shù), 目的是能夠幫助用戶分析出 ”熱表“, 在模塊劃分的時候可以更加合理。但是這個統(tǒng)計對性能有一定的影響。10.2 屬性Target M
31、odule中也有屬性配置,各項配置及意義如下:Datasource_nameTarget Module中使用的數(shù)據(jù)源名,事務(wù)將通過這個數(shù)據(jù)源應(yīng)用的目的數(shù)據(jù)庫suspend_on_exception當(dāng)Target Module執(zhí)行遇到異常時是否suspend該服務(wù)auto_recover當(dāng)遇到Message Queue或者數(shù)據(jù)庫連接中斷時,是否自動恢復(fù),當(dāng)Target Module配置為suspend_on_exception=true,并且service因為異常而suspend時,此項無效,不自動恢復(fù)。mail_notificationMail通知配置Service_log_level服務(wù)日志
32、的輸出級別Associated_mq.url用于連接消息中間件的URL.目前默認(rèn)提供activeMQ作為消息中間件。用戶可以多種方式連接到消息中間件。例如:source.home/conf/perties有如下配置:mq.url=vm:(broker:(tcp:/localhost:8080)?persistent=true)?marshal=false表明target Server 用本地VM協(xié)議連接到activeMQ,并且他們運行在同一個進(jìn)程中,同時activeMQ對其他客戶端開放tcp協(xié)議訪問。此時Target Server可使用tcp協(xié)議連接到activeMQ, ta
33、rget.home/conf/perties 應(yīng)作如下配置:mq.url=tcp:/localhost:8080在linux環(huán)境網(wǎng)絡(luò)環(huán)境中應(yīng)該使用真實IP地址,不要使用activeMQ亦可運行于單獨的進(jìn)程中,以及支持http等多種協(xié)議。詳細(xì)了解可見 /mq.username連接到消息中間件的用戶名mq.password連接到消息中間件的密碼Associated_jms_destination接收消息的消息隊列名稱tx_branch_size用于Target Server的并發(fā)應(yīng)用事務(wù)策略。當(dāng)分析得一個事務(wù)可以
34、并發(fā)應(yīng)用的情況下,Target Server將使用多線程多連接并發(fā)執(zhí)行。tx_branch_size=0 表示不并發(fā)執(zhí)行tx_branch_size>0 表示事務(wù)中的SQL操作將以此大小為單位進(jìn)行分割并發(fā)執(zhí)行。若系統(tǒng)得不到分割完所得的連接數(shù),那么Target Server將用可得到的連接數(shù)進(jìn)行重新分割,然后并發(fā)執(zhí)行。tiny_tx_merge用于小事務(wù)頻繁的業(yè)務(wù)。 Target Server將小事務(wù)合并在一起提交。tiny_tx_merge=0 表示不進(jìn)行事務(wù)合并tiny_tx_merge>0 表示若收到的一組事務(wù)的平均事務(wù)大小小于此值,那么這一組事務(wù)將作為一個事務(wù)提交。10.3
35、事務(wù)攔截器RDI Transaction Interceptor 用于Target Module,在配置Target Module時可以對其進(jìn)行設(shè)置,以實現(xiàn)同步數(shù)據(jù)之外的額外工作,類似AOP功能,Transaction Interceptor也是依配置的次序執(zhí)行。到目前為止,API尚未開放。RDI內(nèi)部已經(jīng)實現(xiàn)了5個interceptor。n TableMirroringInterceptorn SimpleTransactionInterceptorn SetClauseTrimmern WherePKTransactionInterceptorn DigestTransactionInter
36、ceptorTransaction Interceptor通用屬性: interceptor.class TransactionInterceptor的完整classnameinterceptor.type 分為BeforeCommit, AfterCommit兩種,分別為事務(wù)提交之前和之后被調(diào)用。以下分別介紹TransactionInterceptor。10.3.1 TableMirroringInterceptor該攔截器是表鏡像事務(wù)攔截器,是Target Module中基本的攔截器,而且在配置Target Module時會默認(rèn)生成一個該攔截器,用于指定源表到目地表建立的鏡像。其默認(rèn)的鏡像
37、是”源Schema.* 目的Schema.*”,當(dāng)然用戶可以根據(jù)自己的實際應(yīng)用具體指定該鏡像。界面如下圖:點擊保存當(dāng)前的事務(wù)攔截器設(shè)置,點擊新建一個事務(wù)攔截器。10.3.2 SimpleTransactionInterceptor 功能: 用于給事務(wù)增加額外操作,如圖:schema為目的端的shecma,table是指對該schema的那個表操作時,會執(zhí)行附加操作(insert,update,delete,tx_addtion)這里的schema不可以使用通配符“%”;在設(shè)兩級引擎時,第一級用通配符,第二級用具體的表結(jié)構(gòu),第二級可以用多個過濾器;目前第二級不支持通配符,如下配置。如果這樣配置,
38、那么源端挖掘的事務(wù)傳不到目的端數(shù)據(jù)庫上,都被過濾掉# 對每個insert語句增加的操作# :"<column_name>" 用戶引用對此列insert的新值,可理解為此列的新值insert=delete from table2;insert into table2 values( :"ID" ,'zzz');#對每個update語句增加的操作# :"<column_name>" 引用where子句中相應(yīng)列名對應(yīng)的值,可理解為此列的舊值 # :"<column_name>&q
39、uot;引用set子句中相應(yīng)列名對應(yīng)的值,可理解為此列的新值update=delete from table2 where id= :"ID"insert into table2 values( :"ID", :"NAME")# 對每個delete語句增加的操作# :"<column_name>" 引用where子句中相應(yīng)列名對應(yīng)的值,可理解為此列的舊值delete=delete from table2 where id = :"ID"# 對整個事務(wù)增加的操作,這里無法使用引用的形式
40、tx_addition = insert into table2 values( 999 ,'zzz');注意這里在配置該項時,設(shè)置源端數(shù)據(jù)源中的兩級過濾器是,第一級可用通配符,第二級用具體的表結(jié)構(gòu),第二級可以用多個過濾器;但目前第二級不支持通配符(對其他配置可以,如對columnfilter),如下是錯誤的用法。如果這樣配置,那么源端挖掘的事務(wù)傳不到目的端數(shù)據(jù)庫上,都被過濾掉。10.3.3 SetClauseTrimmer功能:對于update語句,如果set子句中的新值與where子句中的列對應(yīng)的舊值相同,那么將set子句中的這個列去掉,如果set子句中的新值與where子
41、句中的列對應(yīng)的舊值全部相同,那么這個sql語句會從事務(wù)中刪除。在事務(wù)日志中,提交的sql會解析為具體的帶有每個屬性的原子操作,這樣就能夠檢查update中set子句的屬性是否出現(xiàn)在where子句中。setClauseTrimmer就是把在where中出現(xiàn)的屬性,如果在set中某個屬性出現(xiàn)的值和where同屬性的值一樣,那么就刪除set中的這個屬性,如果set中的所有屬性的值都出現(xiàn)在where中,那么就把這個操作刪除。Sql:update stu set sname = 'wangxiao', grade = grade+10 where sname = 'wangxia
42、o' ;在目的端會會去掉sname屬性,然后執(zhí)行。Sql:update stu set sname = 'wangxiao', grade = 106 where sname = 'wangxiao' and grade =106;刪掉整個sql,不用執(zhí)行。#支持通配,對符合此支持like語法,如果對所有的表都做此優(yōu)化的話可以用%schema=%table=%其操作界面如下:10.3.4 WherePKTransactionInterceptor功能:如果表有PK,那么將where子句中的其他字段條件去掉,只剩下PK字段條件。# PK字段,雙引號, 可以
43、包含多列, 用逗號分割pk.columns="PK_VOUCHER"# 對 RDISA.TABLE1使用這個interceptor,對其他表不使用schema=RDISA,注意這里不能用通配符(%)table=GL_VOUCHER對于Sql= update stu set grade = 200 where sid like '%1' and grade =106;那么在數(shù)據(jù)庫日志中會具體變?yōu)樵硬僮?,可能這樣一條語句變?yōu)榱薾條,其中一條假設(shè)是update stu set grade = 200 where sid=11 and grade =106;那么在
44、目的端執(zhí)行時會去掉where子句中主鍵以外所有屬性,如grade,修改后變?yōu)椋簎pdate stu set grade = 200 where sid like '%1' and grade =106;其操作界面如下:注意這里的schema不能用通配符。10.3.5 ColumnFilter功能:對insert和update操作,用戶可以根據(jù)需要配置只更新特定的列。#列名用雙引號, 可以包含多列, 用逗號分割insert.filter.columns="AAA"update.filter.columns="AAA"# 必須屬性schema
45、=RDISAtable=AAA其操作界面如下:這樣做是因為目的端數(shù)據(jù)庫不一定需要源端數(shù)據(jù)庫的所有數(shù)據(jù),通過設(shè)置可以選定某些關(guān)心的列。(這里schema可以用通配符)。第十一章 RDI計劃腳本詳解本章內(nèi)容概要:l 命令簡介l 上下文屬性l 用腳本設(shè)計器生成腳本RDI計劃腳本是一系列命令和上下文環(huán)境組織成的腳本,這個腳本可以按照用戶的設(shè)置定期自動執(zhí)行。當(dāng)用戶有大量原始數(shù)據(jù)需要花費很多時間導(dǎo)入時用戶就可以將其組織成計劃腳本,設(shè)置在特定時間來執(zhí)行。新建計劃腳本:11.1 命令簡介RDI中腳本計劃命令的功能介紹:11.1.1 rdi_orato8a功能:用于從oracle 表導(dǎo)入特定數(shù)據(jù)(用查詢語句SQL stateme
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 協(xié)商更改合同范例
- 證件照合同范本
- 典當(dāng)車輛質(zhì)押合同范本
- 合作簽約意向合同范本
- 農(nóng)村承建合同范本
- 高中英語課程思政策略研究
- 廚房廚具售賣合同范本
- 保險賠付明細(xì)合同范本
- 勞動合同范本提成
- 合作服裝賠償合同范本
- DCMM解析版練習(xí)試題附答案
- 網(wǎng)絡(luò)安全風(fēng)險評估行業(yè)研究報告
- 四川政采評審專家入庫考試基礎(chǔ)題復(fù)習(xí)測試卷附答案
- 2024解析:第十二章滑輪-基礎(chǔ)練(解析版)
- 《社會應(yīng)急力量建設(shè)基礎(chǔ)規(guī)范 第2部分:建筑物倒塌搜救》知識培訓(xùn)
- 國有企業(yè)管理人員處分條例培訓(xùn)2024
- 浙江省寧波市2025屆高三上學(xué)期一??荚嚁?shù)學(xué)試卷 含解析
- 代理記賬業(yè)務(wù)內(nèi)部規(guī)范(三篇)
- 腰椎間盤突出癥課件(共100張課件)
- 委托調(diào)解民事糾紛協(xié)議書合同
- 中醫(yī)四季養(yǎng)生之道課件
評論
0/150
提交評論