欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

DTS開發(fā)記錄(1)--系統(tǒng)總體結構

系統(tǒng) 1951 0

(原文發(fā)表于2006-06-28 ,修正于2006-07-03)

DTS開發(fā)記錄(序) 一文中,我們已經(jīng)明白了當前這個Data Transfer System的主要目標和存在的難點與挑戰(zhàn)。在接下來的一系列的文章中,我將記錄我們開發(fā)中是如何解決這些難點、如何應付這些挑戰(zhàn)的,有的技巧或方案可能還并不成熟,所以如果你有任何想法,請留言告訴我。

本文就先從系統(tǒng)結構講起。

通過我們的分析歸納,確定了該DTS系統(tǒng)中存在三個核心的概念,這三個核心概念建立在如下基本概念之上:
(1)源列:參與數(shù)據(jù)傳遞的源數(shù)據(jù)表中的列。
(2)目標列:參與數(shù)據(jù)傳遞的目標數(shù)據(jù)表中的列。
(3)映射列:參與了數(shù)據(jù)映射的源列或目標列。注意,并不是所有的列都會參與映射,這是常見的情況。
(4)數(shù)據(jù)管道:用于屏蔽數(shù)據(jù)源和數(shù)據(jù)目標的類型(比如不同類型的數(shù)據(jù)庫、數(shù)據(jù)文件等),在數(shù)據(jù)介質(zhì)與DataTable之間進行數(shù)據(jù)傳遞的組件。
(5)數(shù)據(jù)大綱:通俗點,實際就是某個數(shù)據(jù)庫表的表結構,稱之為Data Schema。但是數(shù)據(jù)大綱是獨立于數(shù)據(jù)庫類型的。
(6)映射項:MappingItem,一個映射項與一個目標列是1:1對應的。如果一個目標列參與了映射,那么它就能并只能攜帶一個MappingItem。MappingItem包含了一個或多個源列如何映射到目標列。如果MappingItem中只包含一個源列,則稱之為“簡單映射”;如果MappingItem中包含了多個源列,則稱之為“合并映射”。
(7)連接:IConnection,一個連接表示對一個數(shù)據(jù)源或數(shù)據(jù)目標的尋址。到目前為止,有兩種類型的連接,數(shù)據(jù)庫連接和文件連接。

在上述基本概念的基礎上,我們引出三個核心概念:
(1)數(shù)據(jù)映射:DataMapping,數(shù)據(jù)映射由一組映射項(MappingItem)組成,它包含了源數(shù)據(jù)大綱到目標數(shù)據(jù)大綱的完整映射關系。注意,數(shù)據(jù)映射與數(shù)據(jù)大綱綁定,但是并不與任何特定的數(shù)據(jù)庫表綁定。這樣,DataMapping可以運用在不同的數(shù)據(jù)庫表上,只要數(shù)據(jù)庫表結構兼容DataMapping要求的數(shù)據(jù)大綱即可。
(2)連接對:ConnectionPair,一個連接對包含了一個數(shù)據(jù)源和一個數(shù)據(jù)目標的連接信息。將連接對獨立出來的好處是,當配置好一個連接對后,可以在不同的地方復用它,比如在編輯映射的時候、在數(shù)據(jù)驗證的時候、在數(shù)據(jù)傳送的時候等。
(3)數(shù)據(jù)傳送引擎:DataTransferEngine,這是整個DTS系統(tǒng)的引擎部分,它基于一個連接對和一個數(shù)據(jù)映射,將數(shù)據(jù)從源表經(jīng)過變換后傳遞到目標表。

經(jīng)過以上分析,我們可以將系統(tǒng)分為如下幾個小工具:
(1)連接管理工具:用于配置、管理所有的連接對。所有的連接對可以序列化保存于系統(tǒng)的配置文件中。
(2)映射編輯工具:用于在源數(shù)據(jù)大綱和目標數(shù)據(jù)大綱之間建立、修改映射關系。映射編輯工具的產(chǎn)物是一個數(shù)據(jù)映射DataMapping,我們可以將之序列化后存儲在.mapping文件中,日后可以重新加載、打開。
(3)執(zhí)行工具:用于啟動執(zhí)行引擎,監(jiān)控數(shù)據(jù)傳遞過程,并記錄日志。
(4)數(shù)據(jù)驗證工具:基于DataMapping,驗證數(shù)據(jù)源表中的數(shù)據(jù)是否滿足要求的轉(zhuǎn)換規(guī)則,將不滿足轉(zhuǎn)換規(guī)則的源數(shù)據(jù)記錄下來。
(5)日志查看工具:用于查看某次數(shù)據(jù)傳遞任務的執(zhí)行情況,比如哪些數(shù)據(jù)傳遞失敗了、失敗的原因等等。

這幾個工具中,最重要的工具當屬映射編輯工具和執(zhí)行工具,就像DataMapping和DataTransferEngine是整個系統(tǒng)的核心一樣。映射編輯工具的示意圖如下:
DTS開發(fā)記錄(1)--系統(tǒng)總體結構
圖中的數(shù)據(jù)適配器用于屏蔽數(shù)據(jù)庫類型和文件類型的差異;大綱提取器從指定的數(shù)據(jù)庫表或文件中提取數(shù)據(jù)大綱;編輯工具在源大綱與目標大綱之間建立簡單或復雜的映射關系,將結果(即DataMapping)保存在.Mapping文件中。

執(zhí)行工具的示意圖如下:
DTS開發(fā)記錄(1)--系統(tǒng)總體結構
執(zhí)行工具首先通過數(shù)據(jù)適配器將數(shù)據(jù)從數(shù)據(jù)源中提取出來,得到與數(shù)據(jù)庫類型無關的數(shù)據(jù)集,.NET中的DataSet和DataTable就可以作為這種數(shù)據(jù)庫類型無關的介質(zhì)。圖中的Data在實現(xiàn)中即存放于DataTable。DataTransferEngine依據(jù)數(shù)據(jù)映射指定的轉(zhuǎn)換規(guī)則將數(shù)據(jù)從源DataTable經(jīng)過運算、變換然后存放到目標表。然后,在通過數(shù)據(jù)適配器將目標表提交到目的數(shù)據(jù)庫。

關于這個Data Transfer System結構中最主要的部分在這里粗略的說了一下,很多細微的地方都忽略了,細節(jié)會在后面的文章中補充進來。

轉(zhuǎn)到: DTS開發(fā)記錄(序)






DTS開發(fā)記錄(1)--系統(tǒng)總體結構


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: www91| 久久久久久久国产视频 | av在线播放网址 | 天堂中文资源网 | 亚洲第一页视频 | 日韩美女中文字幕 | 亚洲欧美日韩综合二区三区 | 亚洲第1页| 97爱爱爱| 国产精品视频网站 | 国产精品美女久久久久久免费 | 青青草在线免费视频 | 国产二区三区 | 成人激情四射 | 欧美精品一区二区在线电影 | 182tv在线观看国产路线一 | 日韩有码一区 | 天天草夜夜骑 | 国产欧美亚洲精品a | 国产一级精品高清一级毛片 | 亚洲国产区 | 蜜桃官网| 久久成人免费观看草草影院 | 亚洲精品www | 成人午夜网址 | 亚洲一区在线观 | 成人 精品 | 亚洲精品久久久 | 99久久精品费精品国产一区二区 | 激情.com| 精品欧美小视频在线观看 | 波多野结衣一区二区在线 | 狠狠av| 国产xxxx搡xxxxx搡麻豆 | 午夜影视| 一级毛片免费在线播放 | 黄色视频a级毛片 | 亚洲毛片网站 | 日本一在线中文字幕天堂 | 日韩三 | 亚洲天堂成人网 |