日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DTS开发记录(序)

發(fā)布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DTS开发记录(序) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
http://zhuweisky.cnblogs.com/category/62488.html

?目前手頭上正在負責(zé)一個DTS(這里的DTS是Data Transfer System的縮寫)系統(tǒng)的開發(fā),我打算寫一系列的文章來記錄這個開發(fā)的全過程,這個記錄可以說是實時的--每當(dāng)遇到一個重要問題或解決一個重要問題,我將記錄之。侯捷老師說,“發(fā)表是最好的記憶”,這一系列的文章除了權(quán)作筆記外,也希望能對后來者有所參考。
????
??? 在開發(fā)任何系統(tǒng)之前,我們都需要弄清楚,這個系統(tǒng)是用來干什么的?主要職責(zé)是什么?這些需要通過需求分析得到。DTS是一個工具軟件,幾乎不涉及業(yè)務(wù),所以其功能目標(biāo)還是比較單純的。我們都知道,DTS用于在兩個數(shù)據(jù)庫之間導(dǎo)入導(dǎo)出數(shù)據(jù),參與數(shù)據(jù)傳遞的兩個表(源表與目標(biāo)表)的結(jié)構(gòu)可能是完全不同的,但是它們之間的列與列可能存在映射關(guān)系(有的列映射可能很復(fù)雜,比如會涉及類型轉(zhuǎn)換、列合并、列分裂、轉(zhuǎn)換表達式等),DTS可以基于建立好的映射關(guān)系,將數(shù)據(jù)從源表向目標(biāo)表傳遞。我大致總結(jié)了一下,DTS系統(tǒng)的主要功能包括:

(1)獨立于數(shù)據(jù)庫類型,或者說完全支持異構(gòu)數(shù)據(jù)庫之間的傳遞。(如果有新的數(shù)據(jù)庫類型,則只需要添加對應(yīng)的適配器插件即可)
(2)提供可視化的工具,能建立(或修改)源表結(jié)構(gòu)與目的表結(jié)構(gòu)之間的匹配映射關(guān)系(映射關(guān)系可以保存、加載)
(3)驗證表結(jié)構(gòu)映射關(guān)系的完整性、正確性
(4)基于正確完整的結(jié)構(gòu)映射關(guān)系,可以實現(xiàn)數(shù)據(jù)從源表到目的表的導(dǎo)出和增量導(dǎo)出(暫停/繼續(xù)功能、日志記錄功能)
(5)能實現(xiàn)將源表中的某列依據(jù)指定的規(guī)則分裂成目的表中的多列。
(6)能實現(xiàn)將源表中的多列依據(jù)指定的規(guī)則合并成目的表中的一列。
(7)能將源列經(jīng)過一定的變換(如參與某個表達式的計算得到的結(jié)果)映射到目標(biāo)列。
(8)如果將源表替換為臨時視圖,仍能實現(xiàn)上述功能。(使用臨時視圖是為了解決多個源表對應(yīng)一個目的表的問題)
(9)記錄導(dǎo)出失敗的數(shù)據(jù),并能依據(jù)這些記錄,對失敗的數(shù)據(jù)進行重新導(dǎo)出。
(10)定時運行數(shù)據(jù)導(dǎo)出任務(wù)。

????就目前我所了解的,這個系統(tǒng)的難點在于以下幾個方面:
(1)獨立于數(shù)據(jù)庫類型是一個挑戰(zhàn)!不同類型的數(shù)據(jù)庫雖然都支持標(biāo)準(zhǔn)的SQL語句,但是它們之間的差異還是巨大的,比如,每種類型的數(shù)據(jù)庫都有自己的數(shù)據(jù)類型;每種類型的數(shù)據(jù)庫都有不相同的擴展;對于同一個任務(wù)(比如分頁),針對不同類型的數(shù)據(jù)庫都有不同的實現(xiàn)方式,等等。
(2)增量導(dǎo)出是另一個難點。如果已經(jīng)導(dǎo)出過的數(shù)據(jù)發(fā)生的變化(更新、刪除),由于我們不能修改數(shù)據(jù)源添加觸發(fā)器,所以我們的系統(tǒng)接收不到這些事件,如何同步這些已經(jīng)導(dǎo)出過的數(shù)據(jù)需要一種策略。
(3)列合并的合并表達式的驗證都不簡單。而且還要看你對表達式的支持需要到達什么樣的級別,比如加減乘除、指數(shù)、對數(shù)、笛卡兒運算等等。
(4)對不滿足轉(zhuǎn)換規(guī)則的源數(shù)據(jù)項的處理。也許不同的任務(wù)對這樣的源數(shù)據(jù)項的處理要求是不一樣的,系統(tǒng)必須支持用戶對處理方式的選擇。

??? 還有很多難點可能還沒有遇到,也可能還有很多需求沒有整理進來,這些會在構(gòu)建系統(tǒng)的過程中逐步挖掘或發(fā)現(xiàn),到時我會將它們列舉在這里。

??? 下面一篇文章,我將介紹這個DTS系統(tǒng)的主要結(jié)構(gòu)。

轉(zhuǎn)載于:https://www.cnblogs.com/Nina-piaoye/archive/2006/06/29/438409.html

總結(jié)

以上是生活随笔為你收集整理的DTS开发记录(序)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。