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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实例学习SSIS(一)--制作一个简单的ETL包

發布時間:2024/4/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实例学习SSIS(一)--制作一个简单的ETL包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/tenghoo/archive/2009/10/archive/2009/10/archive/2009/10/16/ssis_lookup.html

導讀:

實例學習SSIS(一)--制作一個簡單的ETL包

實例學習SSIS(二)--使用迭代

實例學習SSIS(三)--使用包配置

實例學習SSIS(四)--使用日志記錄和錯誤流重定向

實例學習SSIS(五)--理論介紹SSIS

參考內容:SQLServer2005的幫助文檔。

ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/sqltut9/html/d6d5bb1f-4cb1-4605-9cd6-f60b858382c4.htm

ETL:數據的提取、轉換和加載;

通過制作第一個包,可以了解以下內容

1、配置連接管理器(平面文件和OLE DB);

2、添加數據流任務;

3、配置平面文件源和OLE DB目標;

4、使用查找轉換。

詳細制包過程:

準備工作:

(1)文件源:創建一個txt文件:userinfo.txt。

???????? ?內容如下:1|張三|我是張三|男,2|李四|我是李四|女

(2)創建目標數據表:

???????? ?下面是我創建的數據庫(SSIS)和表(userinfo、usersex):

??? ? ?? userinfo.sql

USE?[SSIS]
GO
/******?對象:??Table?[dbo].[userinfo]????腳本日期:?10/16/2009?10:31:54?******/
SET?ANSI_NULLS?ON
GO
SET?QUOTED_IDENTIFIER?ON
GO
SET?ANSI_PADDING?ON
GO
CREATE?TABLE?[dbo].[userinfo](
????
[uid]?[int]?NOT?NULL,
????
[uname]?[varchar](50)?COLLATE?Chinese_PRC_CI_AS?NULL,
????
[udesc]?[varchar](500)?COLLATE?Chinese_PRC_CI_AS?NULL,
????
[sid]?[int]?NULL
)?
ON?[PRIMARY]

GO
SET?ANSI_PADDING?OFF

  usersex.sql

USE?[SSIS]
GO
/******?對象:??Table?[dbo].[usersex]????腳本日期:?10/16/2009?10:32:21?******/
SET?ANSI_NULLS?ON
GO
SET?QUOTED_IDENTIFIER?ON
GO
SET?ANSI_PADDING?ON
GO
CREATE?TABLE?[dbo].[usersex](
????
[sid]?[int]?NOT?NULL,
????
[sex]?[varchar](50)?COLLATE?Chinese_PRC_CI_AS?NULL
)?
ON?[PRIMARY]

GO
SET?ANSI_PADDING?OFF

?創建SSIS項目:

???????? 在“開始”、“Microsoft SQL Server 2005”,找到 SQL Server Business Intelligence Development Studio,創建Integration Services 項目;

?制包過程:

???????? (1)配置連接管理器(平面文件和OLE DB)

?????????????????? ?平面文件:

?? ??????在“連接管理器”區域“新建平面文件連接”,起個名子,選好userinfo.txt。

???????? 選擇行、列分割符,如下圖所示:

???? ?????? ?

???????? 在“高級”中重命名各個列名,并選擇相應數據類型,分別是:DT_I4和三個DT_STR。

?????????????????? ?OLE DB:

??????????????????

(2)在數據流選項卡中創建平面文件源。

????????? ???? 從左側“數據流源”中拖拽即可,確認一下列:

?

(3)使用查找轉換

?????????????????? 從左側“數據流轉換”中拖拽“查找”。

?????????????????? 因為userinfo.txt中性別是男/女,所以需要轉換成對應的性別id才能插入到數據表中。

?? 如下圖配置,指定連接列和選擇查找列:

??????????????????

????????? (4)配置OLE DB目標

?????????????????? 從左側“數據流目標”中拖拽OLE DB目標。

??? 在映射中確認一下輸入和目標列是否對應好,同時要確認一下數據類型是否一樣

???????

調試包

???????? 點擊調試,如果全變綠就哦了,某一個環境出現錯誤會變成紅色,可在執行結果中查看錯誤原因。

執行結果:

  select * from userinfo

????????

?

?

實例學習SSIS(二)--使用迭代

導讀:

實例學習SSIS(一)--制作一個簡單的ETL包

實例學習SSIS(二)--使用迭代

實例學習SSIS(三)--使用包配置

實例學習SSIS(四)--使用日志記錄和錯誤流重定向

實例學習SSIS(五)--理論介紹SSIS

?

?

?

目標:循環地連接某文件夾下的每個文件,不需要為每個文件都建立連接管理器。

在這個實例中,我們將某文件夾下的userinfo1.txt和userinfo2.txt的內容都寫入數據表userinfo中。

步驟:

???????? 準備工作:

???????? ???????? 把第一個例子中的userinfo.txt復制兩份,放到同一個文件夾下。把內容改一下:

?????????????????? userinfo1.txt:3|name3|我是name3|男,4|name4|我是name4|女

?????????????????? userinfo2.txt:5|name5|我是name5|男,6|name6|我是name6|女

???????? 設置Foreach

???????? (1)在控制選項卡下從左側拖拽Foreach 循環容器。

???????? (2)在Foreach容器的“集合”下設置Enumerator和配置枚舉器:

??????????????????

???????? (3)設置枚舉器映射為用戶定義的變量。

???????? (4)將數據流任務拖拽到Foreach中。

???????? ?設置平面文件連接管理器:??????

???????? (1)在“連接管理器”窗格中,單擊 userinfo。

???????? (2)在“屬性”窗口中,單擊 “Expressions (…)”。

???????? (3)在 “屬性”列中,選擇 ConnectionString。

???????? (4)在“表達式”列中,單擊省略號按鈕“(…)”。

???????? (5)在“表達式生成器”對話框中,展開“變量”節點,將變量 User::varFileName 拖到“表達式”框中。

???????? ?到這就哦了。

???????? ?調試包:

???????? ?全都綠了吧!

???????? ?執行結果:

???????? 兩個文件中的數據都被插入到表userinfo中了!

  select * from userinfo

?

實例學習SSIS(三)--使用包配置

導讀:

實例學習SSIS(一)--制作一個簡單的ETL包

實例學習SSIS(二)--使用迭代

實例學習SSIS(三)--使用包配置

實例學習SSIS(四)--使用日志記錄和錯誤流重定向

實例學習SSIS(五)--理論介紹SSIS

包配置是干嘛滴!

???????? 使用包配置可以從開發環境的外部設置運行時屬性和變量。

目標:

???????? 從開發環境外部指定Foreach要遍歷的文件夾,然后把該文件夾下相應的txt文件內容寫入庫中。

步驟:

???????? 準備工作

???????? 把第一個例子中的userinfo.txt復制兩份,放到同一個文件夾下。把內容改一下:

?????????????????? Userinfo3.txt:7|name7|我是name7|男,8|name8|我是name8|女

?????????????????? Userinfo4.txt:9|name9|我是name9|男,10|name10|我是name10|女

???????? 創建用戶變量

???????? 添加用戶變量以便對應到文件夾名稱。

???????? 切換到“控制流”選項卡:

???????? 將 varFolderName 變量的數據類型設置為“字符串”。

??設置Foreach容器

???????? 將Foreach容器的Directory對應到剛才創建的變量varFolderName。

?上圖中的用戶變量varFolderName直接拖拽到表達式中即可!

? 啟用包配置

???????? (1)在SSIS菜單,點擊“包配置”;

???????? (2)生成配置文件,按下圖設置:

?

??配置文件設置

???????? 修改配置文件myconfig.dtsConfig\ConfiguredValue的值,如下:

?//? myconfig.dtsConfig

?調試包:

???????? ?全都綠了就表示數據添加成功了!

?執行結果:

???????? 文件夾D:\lyp\SQL\SSIS\package3下的userinfo3.txt和userinfo4.txt數據都被插入到表userinfo中了!

??? select * from userinfo

前面的內容:

實例學習SSIS(一) 制作一個簡單的ETL包

實例學習SSIS(二) 使用迭代

?

包配置是干嘛滴!

???????? 使用包配置可以從開發環境的外部設置運行時屬性和變量。

目標:

???????? 從開發環境外部指定Foreach要遍歷的文件夾,然后把該文件夾下相應的txt文件內容寫入庫中。

步驟:

???????? 準備工作

???????? 把第一個例子中的userinfo.txt復制兩份,放到同一個文件夾下。把內容改一下:

?????????????????? Userinfo3.txt:7|name7|我是name7|男,8|name8|我是name8|女

?????????????????? Userinfo4.txt:9|name9|我是name9|男,10|name10|我是name10|女

???????? 創建用戶變量

???????? 添加用戶變量以便對應到文件夾名稱。

???????? 切換到“控制流”選項卡:

???????? 將 varFolderName 變量的數據類型設置為“字符串”。

??設置Foreach容器

???????? 將Foreach容器的Directory對應到剛才創建的變量varFolderName。

????????

?上圖中的用戶變量varFolderName直接拖拽到表達式中即可!

? 啟用包配置

???????? (1)在SSIS菜單,點擊“包配置”;

???????? (2)生成配置文件,按下圖設置:

?

??配置文件設置

???????? 修改配置文件myconfig.dtsConfig\ConfiguredValue的值,如下:


Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

><?xml?version="1.0"?><DTSConfiguration><DTSConfigurationHeading><DTSConfigurationFileInfo?GeneratedBy="LIYANPING\Administrator"?GeneratedFromPackageName="Package3"?GeneratedFromPackageID="{DEED0EEF-48A2-4371-A1FB-C9344691989B}"?GeneratedDate="2009-10-16?14:31:04"/></DTSConfigurationHeading><Configuration?ConfiguredType="Property"?Path="\Package.Variables[用戶::varFolderName].Properties[Value]"?ValueType="String">
??
<ConfiguredValue>D:\lyp\SQL\SSIS\package3</ConfiguredValue></Configuration></DTSConfiguration>

?

?

?調試包:

???????? ?全都綠了就表示數據添加成功了!

?執行結果:

???????? 文件夾D:\lyp\SQL\SSIS\package3下的userinfo3.txt和userinfo4.txt數據都被插入到表userinfo中了!

??? select * from userinfo

?<-->

?

實例學習SSIS(四)--使用日志記錄和錯誤流重定向

導讀:

實例學習SSIS(一)--制作一個簡單的ETL包

實例學習SSIS(二)--使用迭代

實例學習SSIS(三)--使用包配置

實例學習SSIS(四)--使用日志記錄和錯誤流重定向

實例學習SSIS(五)--理論介紹SSIS

?

?

一、使用日志記錄

SSIS提供的日志記錄方式:

???????? 文本文件

???????? SQL Server Profiler

???????? Windows 事件日志

???????? SQL Server

???????? XML 文件

準備工作

使用上節的包,修改myconfig.dtsConfig,將文件夾對應到D:\lyp\SQL\SSIS\package4。

在文件夾下新建userinfo5.txt和userinfo6.txt。

???????? Userinfo5.txt:11|name11|我是name11|男,12|name12|我是name12|女

???????? Userinfo6.txt:13|name13|我是name13|男,14|name14|我是name14|女

步驟:

???????? 1、添加一條文本日志,如下圖:

????????

???????? 2、指定寫入日志信息的txt文件,如下圖:

???????? 3、選擇要記錄的事件:

????????

調試:

???????? 在D:\lyp\SQL\SSIS\package4下創建了一個log.txt文件,可以看到里面有相應的事件執行記錄。

二、使用錯誤流重定向

SSIS錯誤處理方式

在數據轉換時很有可能會發生錯誤,SSIS對錯誤的處理方式:

1、選擇忽略某些列中的失敗;

2、重定向整個失敗的行;

3、使組件失敗。

默認情況下,所有組件發生錯誤時失敗,從而導致包失敗并停止后續處理。

為了不讓包停止,發生錯誤時,通過配置來處理錯誤,通常是將失敗的行重定向到別處進行處理。

準備工作

?????????????????? 1、使用上面日志記錄用到的包;

?????????????????? 2、創建有錯誤的數據源文件userinfo7.txt(D:\lyp\SQL\SSIS\package5\)。

??????????????????????????? userinfo7.txt:15|name15|我是name15|男,abc|name17|我是name17|女,18|name18|我是name18|女

??????????????????????????? 在轉換idint時會出現錯誤。

使用組件失敗的情況

?????????????????? 在“數據流”中編輯“用戶來源”平面文件源,在“錯誤輸出”中將各列的“錯誤”選成“組件失敗”:

??? 調試程序,可以看到“用戶來源”變成了紅色,整個包停止了,文件中的數據沒有被成功導入到數據庫中。

使用錯誤流重定向

???????? 目標

?????????????????? 把出錯的行重定向的別的文件(errorLog.txt)而不會使包停止。

???????? 步驟:

?????????????????? 1、拖拽一個“平面文件目標”到數據流選項卡。

?????????????????? 2、把“用戶來源”的紅箭頭拖到該目標上,在彈出的“配置錯誤輸出”中將UiD的“錯誤”選擇為“重定向行”。

?????????????????? 3、編輯“平面文件目標”:

??????????????????????????? 新建“平面文件鏈接管理器”,選擇錯誤記錄文件(errorLog.txt),如下:

?

???????? 調試:

?????????????????? 調試程序,可以看到向數據庫中插入了兩條記錄,并在errorLog.txt中寫入了出錯的行。

?

實例學習SSIS(五)--理論介紹SSIS

導讀:

實例學習SSIS(一)--制作一個簡單的ETL包

實例學習SSIS(二)--使用迭代

實例學習SSIS(三)--使用包配置

實例學習SSIS(四)--使用日志記錄和錯誤流重定向

實例學習SSIS(五)--理論介紹SSIS

? ?一、概述

?????????????????? Integration Services 是用于生成高性能數據集成和工作流解決方案(包括針對數據倉庫的提取、轉換和加載 (ETL) 操作)的平臺。

???????? ??? Integration Services 包括:

?????????????????? a)生成并調試包的圖形工具和向導;

?????????????????? b)執行如 FTP 操作、SQL 語句執行和電子郵件消息傳遞等工作流功能的任務;

?????????????????? c)用于提取和加載數據的數據源和目標;

?????????????????? d)用于清理、聚合、合并和復制數據的轉換;

?????????????????? e)管理服務,即用于管理 Integration Services 包的 Integration Services 服務;

?????????????????? f)用于對 Integration Services 對象模型編程的應用程序接口 (API)。

    

?? 二、SSIS體系結構

???????? SSIS由四大部分組成:服務、對象模型、運行時和數據流。

?????????????????? 下面這張大圖顯示了各部分之間的關系:

???????? 服務

??????? 在Configuration Manager中可以看到SSIS的服務:SQL Server Integration Services。

???????? ?? 提示:

???? 1、設計和執行IS包不需要啟動該服務,可以使用 SQL Server 導入和導出向導、SSIS 設計器、執行包實用工具以及 dtexec 命令提示實用工具運行包。

???????? 2、如果要通過SQL Server Management Studio監視包,則需要啟動該服務。

? 使用SSMS監視時,可以看到兩個頂級文件夾:“正在運行的包”和“已存儲的包”。

? 在“正在運行的包”文件夾下可以停止某個運行的包。

???????? 對象模型

???????? 對象模型包括用于訪問 Integration Services 工具、命令行實用工具以及自定義應用程序的本機和托管應用程序編程接口 (API)。

???????? 工具介紹:

???????? Business Intelligence Development StudioBIDS

???????? 創建和調試包。

???????? BIDS中的設計器

???????? 如下圖:

???????? 命令

?????????????????? dtexec:運行現有的包;

?????????????????? 如執行包:dtexec /f "c:\pkgOne.dtsx"

?????????????????? dtutil:可以對包進行訪問,復制、刪除、移動和 簽名等;

?????????????????? 如復制包:dtutil /FILE c:\myTestedPackage\package.dtsx /DestServer myserver /COPY SQL;newpackage

???????? 運行時

?????????????????? 包的運行時,為日志記錄、斷點、配置、連接和事務提供支持。

???????? 數據流

???????? 數據流任務封裝數據流引擎。數據流引擎提供將數據從源移動到目標的內存中的緩沖區,并且調用從文件和關系數據庫中提取數據的源。

三、典型用途

???????? 合并來自異類數據存儲區的數據

?????????????????? 合并存儲在不同數據存儲系統中的數據,提取這些數據合并到單個一致的數據存儲系統中。????????

?

???????? 填充數據倉庫和數據集市

???????? 數據倉庫和數據集市中的數據具有更新頻繁加載量大的特點,SSIS專門提供了一個從平面文件大容量加載到 SQL Server的任務。

???????? 清除數據和數據標準化

???????? Integration Services 包含一些內置轉換,可將其添加到包中以清理數據和將數據標準化、更改數據的大小寫、將數據轉換為不同類型或格式或者根據表達式創建新列值。

???????? 將商業智能置入數據轉換過程

???????? Integration Services 提供了用于將商業智能置入 SSIS 包的容器、任務和轉換。

可能需要根據數據值對數據進行匯總、轉換和分發,SSIS 包中的邏輯可能需要執行以下類型的任務:

a)合并來自多個數據源的數據。

b)計算數據并應用數據轉換。

c)根據數據值將一個數據集拆分為多個數據集。

d)將不同的聚合應用到一個數據集的不同子集。

e)將數據的子集加載到不同目標或多個目標。

???????? 使管理功能和數據加載自動化

管理功能自動化,例如備份和還原數據庫等,可以使用 SQL Server 代理作業安排SSIS 包。

?

參考:ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/extran9/html/c4398655-5657-4ae4-a690-a380790fe84f.htm  

?

作者:青羽

tenghoo.cnblogs.com





?

總結

以上是生活随笔為你收集整理的实例学习SSIS(一)--制作一个简单的ETL包的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 办公室大战高跟丝袜秘书经理ol | 中国黄色免费网站 | 欧美巨大另类极品videosbest | 琪琪伦伦影院理论片 | 麻豆亚洲av熟女国产一区二 | 成人精品在线视频 | 人人人草 | 少妇被躁爽到高潮无码人狍大战 | 97视频人人| 娇小的粉嫩xxx极品 国产精品人人爽人人爽 | 亚卅色图| 激情网站在线 | 中文字幕精品久久久久人妻红杏1 | 亚洲精品白浆 | 青青操在线观看 | av在线资源 | 岛国大片在线免费观看 | 美女免费黄色 | 成人激情小说网站 | 99re6在线观看 | 永久免费在线播放 | 亚洲小说区图片区 | av无码一区二区三区 | 玩弄丰满少妇xxxxx性多毛 | 在线观看网址你懂的 | 玖玖国产 | 亚洲大片免费看 | 玖玖爱在线观看 | 91精品观看 | 中国亚洲女人69内射少妇 | 91tv国产成人福利 | 欧美a级大片 | 亚洲福利天堂 | 中文字幕精品一区二 | 亚洲一区二区三区久久久 | 夜夜天堂 | 欧美 亚洲 视频 | 粉嫩小箩莉奶水四溅在线观看 | 主播av在线 | 婷婷激情在线 | 超碰在线观看免费版 | 一级黄色大片免费看 | 毛片毛多水多 | www.一区二区.com | 久久久久www | 国产精品自产拍高潮在线观看 | 人妖一区二区三区 | 日韩在线一级片 | 自拍偷拍激情视频 | 在线观看黄色片 | 少妇精品无码一区二区免费视频 | 在线播放av网站 | 免费a级片视频 | 国产精品精华液网站 | 欧美午夜精品久久久久免费视 | 亚洲 小说区 图片区 | 成人亚洲精品 | 欧美性色网站 | 一级片美女 | 麻豆成人精品 | 国产精品探花一区二区三区 | 成人夜晚视频 | 欧美人体做爰大胆视频 | 国产在线aaa | 成人福利免费视频 | 在线观看中文字幕一区 | 麻豆精品国产传媒av绿帽社 | 无码国内精品人妻少妇蜜桃视频 | 国产精品一区二区免费看 | jiizzyou性欧美老片 | 日本成人免费在线视频 | 欧美视频一区二区三区在线观看 | 亚洲a∨无码无在线观看 | 冈本视频在线观看 | 亚洲国产精品成人综合久久久 | 妺妺窝人体色www在线小说 | 99综合久久 | a级片在线免费看 | a天堂中文字幕 | 亚洲国产成人av | 日韩精品你懂的 | 亚欧色视频 | 国产av人人夜夜澡人人爽 | 中文字幕久久一区 | 日韩一区二区三区免费在线观看 | 老司机黄色影院 | 美女黄视频在线观看 | 成人手机在线视频 | jizz一区二区三区 | 色窝窝无码一区二区三区成人网站 | 粗大黑人巨茎大战欧美成人免费看 | 97精品人妻一区二区三区 | 亚洲国产日韩欧美在线观看 | 亚洲色图日韩精品 | 国产精品久久 | 日本人妻熟妇久久久久久 | 欧美韩国日本一区 | 男人深夜网站 | 黄a免费网络 |