亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

DTS開發記錄(1)--系統總體結構

系統 1881 0

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

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

本文就先從系統結構講起。

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

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

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

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

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

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

轉到: DTS開發記錄(序)






DTS開發記錄(1)--系統總體結構


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产在线成人精品 | 天天爱天天色天天干 | 天天舔天天 | 日本高清视频一区二区 | 青草社区视频 | 奇米影视7777久久精品 | 天天狠狠弄夜夜狠狠躁·太爽了 | 亚洲欧美在线一区 | 男女乱淫真视频免费一级毛片 | 日本免费黄色小视频 | 9191久久久久视频 | 日韩激情中文字幕一区二区 | 95视频在线观看在线分类h片 | 依人九九 | 97影院官网| 久久九九| 天天摸夜夜操 | 波多野结中文字幕在线69视频 | 美女撒尿毛片免费看 | 国产精品中文 | 欧美在线一区二区三区精品 | 国产免费专区 | 国产精品免费久久久久影院 | 日本一区二区网站 | 鲁一鲁射一射 | 国产香蕉91tv永久在线 | 成人一区视频 | 久久精选| 天天干天天舔天天射 | 99在线精品视频 | 日本一区二区三区免费看 | 99精品视频在线 | 亚洲综合色dddd26 | 国产a免费视频 | 欧美日韩亚洲在线观看 | 国产精品午夜性视频 | 麻豆精品永久免费视频 | 男人的天堂免费视频 | 国产女人综合久久精品视 | 日韩欧美成末人一区二区三区 | 欧美破处在线 |