自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用SSIS創(chuàng)建同步數(shù)據(jù)庫(kù)數(shù)據(jù)任務(wù)

數(shù)據(jù)庫(kù) SQL Server 數(shù)據(jù)庫(kù)運(yùn)維
SSIS(SQL Server Integration Services)是用于生成企業(yè)級(jí)數(shù)據(jù)集成和數(shù)據(jù)轉(zhuǎn)換解決方案的平臺(tái)。使用 Integration Services 可解決復(fù)雜的業(yè)務(wù)問題。

 具體表現(xiàn)為:復(fù)制或下載文件,發(fā)送電子郵件以響應(yīng)事件,更新數(shù)據(jù)倉(cāng)庫(kù),清除和挖掘數(shù)據(jù)以及管理 SQL Server 對(duì)象和數(shù)據(jù)。這些包可以獨(dú)立使用,也可以與其他包一起使用以滿足復(fù)雜的業(yè)務(wù)需求。Integration Services 可以提取和轉(zhuǎn)換來自多種源(如 XML 數(shù)據(jù)文件、平面文件和關(guān)系數(shù)據(jù)源)的數(shù)據(jù),然后將這些數(shù)據(jù)加載到一個(gè)或多個(gè)目標(biāo)。(摘自MSDN,更多詳細(xì)信息可參考:http://technet.microsoft.com/zh-cn/library/ms141026(v=sql.105).aspx)

 

下面我使用SSIS來演示一個(gè)實(shí)際例子。比如我有一個(gè)數(shù)據(jù)庫(kù),出于備份數(shù)據(jù)或者其它的目的,會(huì)定期的對(duì)這個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)遷移到其它的數(shù)據(jù)庫(kù)去。遷移的時(shí)候,有些新增的字段會(huì)被插入備份數(shù)據(jù)庫(kù),而有些被修改過的字段也會(huì)在備份數(shù)據(jù)庫(kù)被修改?,F(xiàn)在我們就用SSIS來完成這項(xiàng)任務(wù)。

首先在我源數(shù)據(jù)庫(kù)db_source和目標(biāo)數(shù)據(jù)庫(kù)db_destination中運(yùn)行以下SQL創(chuàng)建好需要的表,就以這一個(gè)表test_1來進(jìn)行示范。

CREATE TABLE [dbo].[test_1](
    [Id] [int] IDENTITY(1,1) NOT NULL primary key,
    [Name] [varchar](50) NULL,
    [Age] [int] NULL
)

 

建好表好在源數(shù)據(jù)表中可以隨便加幾條記錄,目標(biāo)數(shù)據(jù)庫(kù)暫時(shí)留空。

現(xiàn)在我們打開VS,創(chuàng)建一個(gè)Intergration Services Project。(注意:如果SQL Server 裝的是Express版的話是沒有這個(gè)項(xiàng)目工程模板的)

 

創(chuàng)建好工程后,在Control Flow這個(gè)Tab下拖入一個(gè)Data Flow Task,如下圖:

 

雙擊這個(gè)Data Flow Task,我們就會(huì)進(jìn)入Data Flow這個(gè)Tab標(biāo)簽中。

 

然后我們?cè)谧筮吂ぞ邫诶镎业絆LE DB Source,繼續(xù)拖兩個(gè)OLE DB Source出來。分別給它們命名為Source DB和Destination DB。

 

將數(shù)據(jù)源拖出來后,雙擊它,可以對(duì)它進(jìn)行一些設(shè)置,主要就是鏈接數(shù)據(jù)庫(kù)及選擇你要進(jìn)行遷移的表或者視圖等設(shè)置,這里我就不詳細(xì)說明了。注意一點(diǎn)的是就像上圖所示,如果一個(gè)圖形上出現(xiàn)一個(gè)紅X的話說明設(shè)置有錯(cuò)誤。

再來就是拖兩個(gè)Sort及一個(gè)Merge Join出來,將之前的數(shù)據(jù)源箭頭分別指向兩個(gè)Sort,***兩個(gè)Sort出來的數(shù)據(jù)同時(shí)輸入Merge Join中。

 

分別雙擊兩個(gè)Sort,鉤選表中的ID,對(duì)ID這個(gè)字段進(jìn)行一次排序。因?yàn)镸erge Join這個(gè)流程要求輸入的數(shù)據(jù)是已排序好的。這個(gè)排序也可以直接在數(shù)據(jù)源中對(duì)它們的輸出字段設(shè)置SortKeyPosition這個(gè)屬性來排序。(詳見:http://msdn.microsoft.com/zh-cn/library/ms137653.aspx

這里我們***次從Sort拉箭頭到Merge Join的時(shí)候,會(huì)讓我們選擇這個(gè)輸入的數(shù)據(jù)是作為左輸入還是右輸入,我們按照?qǐng)D示的那樣,左邊的作為左輸入,右邊的作為右輸入。然后我們雙擊Merge Join,按照如下圖所示設(shè)置:

 

這里打鉤的是這個(gè)流程之后輸出的數(shù)據(jù),Join Type需要選擇為L(zhǎng)eft outer join,因?yàn)樽筮吺俏覀兊脑紨?shù)據(jù)表,右邊是我們備份的表,右表可以看成是一個(gè)左表的一個(gè)子集,如果左表有的數(shù)據(jù),右表沒有的,那些就是需要新插入備份數(shù)據(jù)庫(kù)的數(shù)據(jù)。

現(xiàn)在我們需要一個(gè)分支,即新的數(shù)據(jù)需要插入備份數(shù)據(jù)庫(kù)中,而已有的數(shù)據(jù)需要更新為新的值。我們從工具欄中拖入一個(gè)Conditional Split來進(jìn)行這樣的分支處理。我們將Merge Sort中的輸出指向Conditional Split,然后雙擊Conditional Split,如下圖所示設(shè)置(注意條件一個(gè)是ISNULL,一個(gè)是非ISNULL)。

 

這時(shí)它們的輸入值就被分成兩種條件輸出,***我們?cè)偻先胍粋€(gè)OLE DB Destination來插入數(shù)據(jù)和一個(gè)OLE DB Command來更新數(shù)據(jù)庫(kù),最終流程如下圖:

 

 

雙擊設(shè)置OLE DB Destionation,選擇好數(shù)據(jù)導(dǎo)入的目標(biāo)數(shù)據(jù)庫(kù)中的表,這里需要注意的就是要鉤選Keep identity這個(gè)選項(xiàng),因?yàn)槲覄?chuàng)建表的時(shí)候?qū)D字段使用了自增屬性。

雙擊設(shè)置OLE DB Command,首先在Connection Managers這個(gè)Tab中選擇好鏈接對(duì)象,然后在Component Properties這個(gè)選項(xiàng)卡中,設(shè)置你的SqlCommand屬性。如下圖:

 

這里的參數(shù)值都是用?號(hào)來代替,之后在Column Mappings這個(gè)Tab中設(shè)置代替值實(shí)際代替的列,如下圖:

 

至此,任務(wù)就創(chuàng)建完畢了,沒有編寫任何代碼,直接拖拉完成了。現(xiàn)在可以直接在VS中按F5運(yùn)行看下效果,我們的目標(biāo)數(shù)據(jù)表將插入源數(shù)據(jù)表中的值。然后我們修改一下原數(shù)據(jù)表,再來運(yùn)行一下上面這個(gè)任務(wù),就可以在目標(biāo)數(shù)據(jù)庫(kù)中看到更改了。

 

那么如何去定時(shí)完成任務(wù)哩?這里可以用SQL Server Agent去調(diào)用上面我們寫好的包, 或者在Windows計(jì)劃任務(wù)中使用DTExec.exe去執(zhí)行上面的任務(wù)。

原文鏈接:http://www.cnblogs.com/heqichang/archive/2012/09/19/2693214.html

【編輯推薦】

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2024-12-06 08:29:29

2020-08-31 07:00:00

數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)同步

2023-04-18 18:22:31

開源工具數(shù)據(jù)庫(kù)

2011-07-27 14:41:43

JMeterMySQL

2010-08-27 09:59:51

SQL Server

2009-12-25 17:28:01

ADO Data 控件

2009-03-06 10:11:30

2019-08-13 15:52:34

數(shù)據(jù)庫(kù)同步遷移

2010-06-02 16:57:50

MySQL數(shù)據(jù)庫(kù)同步

2013-03-27 13:34:49

數(shù)據(jù)清洗

2011-05-26 15:03:47

catalog數(shù)據(jù)庫(kù)

2023-12-20 12:49:05

索引數(shù)據(jù)檢索數(shù)據(jù)庫(kù)

2020-09-21 11:30:28

CanalMySQL數(shù)據(jù)庫(kù)

2010-07-22 11:17:52

SQL Server數(shù)

2010-07-12 10:05:08

MemcachedPHP

2009-12-25 17:05:32

ADO.NET數(shù)據(jù)庫(kù)

2011-08-02 17:06:29

Oracle遠(yuǎn)程數(shù)據(jù)庫(kù)創(chuàng)建DB Link

2020-05-10 16:36:08

存儲(chǔ)數(shù)據(jù)庫(kù)內(nèi)存

2010-06-09 17:36:45

MySQL數(shù)據(jù)庫(kù)同步

2010-06-09 15:01:18

MySQL數(shù)據(jù)庫(kù)同步
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)