- SQL Server 2016數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)
- 姜桂洪主編
- 2192字
- 2019-07-01 10:15:15
4.5 數(shù)據(jù)的導(dǎo)入和導(dǎo)出
4.5.1 數(shù)據(jù)轉(zhuǎn)換概述
SSIS(SQL Server Integration Services)是一種企業(yè)數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)集成解決方案,用戶可以以此從不同的數(shù)據(jù)源提取、轉(zhuǎn)換、復(fù)制及合并數(shù)據(jù),并將其移至單個(gè)或多個(gè)目標(biāo)。由此來(lái)提高開(kāi)發(fā)人員、管理人員和開(kāi)發(fā)數(shù)據(jù)轉(zhuǎn)換解決方案的工作者的能力和工作效率。SSIS的典型用途如下。
(1)合并來(lái)自異類(lèi)數(shù)據(jù)存儲(chǔ)區(qū)的數(shù)據(jù),包括文本格式、Excel和Access等數(shù)據(jù)。
(2)自動(dòng)填充數(shù)據(jù)倉(cāng)庫(kù),進(jìn)行數(shù)據(jù)庫(kù)的海量導(dǎo)入、導(dǎo)出操作。
(3)對(duì)數(shù)據(jù)的格式在使用前進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化轉(zhuǎn)換。
(4)將商業(yè)智能置入數(shù)據(jù)轉(zhuǎn)換過(guò)程。
(5)使數(shù)據(jù)庫(kù)的管理功能和數(shù)據(jù)處理自動(dòng)化。
1.啟動(dòng)SSIS
在使用SSIS之前,要求運(yùn)行SSIS。啟動(dòng)集成服務(wù)的步驟如下。
(1)在“開(kāi)始”菜單中,單擊Microsoft SQL Server 2016→“Microsoft SQL Server 2016 CTP2.0配置工具”命令,啟動(dòng)圖4-24所示的窗體。
(2)展開(kāi)左側(cè)窗體的“SQL Server服務(wù)”選項(xiàng),在右側(cè)窗口中選擇SQL Server Integration Services服務(wù)并右擊,然后選擇快捷菜單中的“啟動(dòng)”命令即可。

圖4-24 SSIS配置管理器
2.Integration Services的數(shù)據(jù)轉(zhuǎn)換類(lèi)型
數(shù)據(jù)轉(zhuǎn)換將輸入列中的數(shù)據(jù)轉(zhuǎn)換為其他數(shù)據(jù)類(lèi)型,然后將其復(fù)制到新的輸出列。例如,可從多種數(shù)據(jù)源中提取數(shù)據(jù),然后用此轉(zhuǎn)換將列轉(zhuǎn)換為目標(biāo)數(shù)據(jù)存儲(chǔ)所需的數(shù)據(jù)類(lèi)型。如果需要配置數(shù)據(jù)轉(zhuǎn)換,可以采用下列方法。
(1)指定包含要轉(zhuǎn)換的數(shù)據(jù)的列和要執(zhí)行的數(shù)據(jù)轉(zhuǎn)換的類(lèi)型。
(2)指定轉(zhuǎn)換輸出列是使用Microsoft SSIS提供的不同分區(qū)域設(shè)置的較快分析例程,還是使用標(biāo)準(zhǔn)的分區(qū)域設(shè)置的分析例程。
Integration Services數(shù)據(jù)引擎支持具有多個(gè)源、多個(gè)轉(zhuǎn)換和多個(gè)目標(biāo)的數(shù)據(jù)流。利用數(shù)據(jù)轉(zhuǎn)換,開(kāi)發(fā)人員可以方便地生成具有復(fù)雜數(shù)據(jù)流的包,而不需要編寫(xiě)任何代碼。這些轉(zhuǎn)換包括以下內(nèi)容。
(1)條件性拆分和多播轉(zhuǎn)換,用于將數(shù)據(jù)行分布到多個(gè)下游數(shù)據(jù)流組件。
(2)合并和合并連接轉(zhuǎn)換,用于組合來(lái)自多個(gè)上游數(shù)據(jù)流組件的數(shù)據(jù)行。
(3)排序轉(zhuǎn)換,用于排序數(shù)據(jù)和標(biāo)識(shí)重復(fù)的數(shù)據(jù)行。
(4)模糊分組轉(zhuǎn)換,用于標(biāo)識(shí)相似的數(shù)據(jù)行。
(5)查找和模糊查找轉(zhuǎn)換,用于擴(kuò)展包含查找表中的值的數(shù)據(jù)。
(6)字詞提取和字詞查找轉(zhuǎn)換,用于文本挖掘應(yīng)用程序。
(7)聚合、透視、逆透視和漸變維度轉(zhuǎn)換,用于常見(jiàn)數(shù)據(jù)倉(cāng)庫(kù)任務(wù)。
(8)百分比抽樣和行抽樣轉(zhuǎn)換,用于提取樣本行集。
(9)復(fù)制列轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)換和派生列轉(zhuǎn)換,用于復(fù)制和修改列值。
(10)聚合轉(zhuǎn)換,用于匯總數(shù)據(jù)。
(11)透視和逆透視轉(zhuǎn)換,用于從非規(guī)范化的數(shù)據(jù)創(chuàng)建規(guī)范化的數(shù)據(jù)行,以及從規(guī)范化的數(shù)據(jù)創(chuàng)建非規(guī)范化的數(shù)據(jù)行。
(12)Integration Services還包括用于簡(jiǎn)化自定義轉(zhuǎn)換的開(kāi)發(fā)工作的腳本組件。
3.SQL Server數(shù)據(jù)的導(dǎo)入和導(dǎo)出向?qū)?/h4>
SQL Server導(dǎo)入和導(dǎo)出向?qū)峁┝俗畹拖薅鹊臄?shù)據(jù)轉(zhuǎn)換功能。除了支持在新的目標(biāo)表和目標(biāo)文件中設(shè)置列的名稱(chēng)、數(shù)據(jù)類(lèi)型和數(shù)據(jù)類(lèi)型屬性外,SQL Server導(dǎo)入和導(dǎo)出向?qū)Р恢С秩魏瘟屑?jí)轉(zhuǎn)換。
(1)向?qū)У闹饕δ苁菑?fù)制數(shù)據(jù)。該向?qū)强焖賱?chuàng)建在兩個(gè)數(shù)據(jù)存儲(chǔ)區(qū)間復(fù)制數(shù)據(jù)的Integration Services包的最簡(jiǎn)單方法。
(2)在SQL Server還能夠更好地支持平面文件中的數(shù)據(jù)和對(duì)數(shù)據(jù)的實(shí)時(shí)預(yù)覽。通過(guò)使用SQL Server導(dǎo)入和導(dǎo)出向?qū)?chuàng)建的已保存的包,可以在Business Intelligence Development Studio中打開(kāi),并可以使用SSIS設(shè)計(jì)器進(jìn)行擴(kuò)展。
(3)訪問(wèn)的數(shù)據(jù)源。SQL Server導(dǎo)入和導(dǎo)出向?qū)Э梢栽L問(wèn)下列類(lèi)型的數(shù)據(jù)源:SQL Server、文本文件、Access、Excel以及其他OLE DB訪問(wèn)接口。此外,還可以將ADO.NET用作源。
4.啟動(dòng)SQL Server導(dǎo)入和導(dǎo)出向?qū)У某S梅椒?/h4>
(1)在Business Intelligence Development Studio中,右擊“SSIS包”文件夾,選擇快捷菜單中的“SSIS導(dǎo)入和導(dǎo)出向?qū)А泵睢?/p>
(2)在Business Intelligence Development Studio中的“項(xiàng)目”菜單上,選擇“SSIS導(dǎo)入和導(dǎo)出向?qū)А泵睢?/p>
(3)在SQL Server Management Studio中,連接到數(shù)據(jù)庫(kù)引擎服務(wù)器類(lèi)型,展開(kāi)數(shù)據(jù)庫(kù),右擊一個(gè)數(shù)據(jù)庫(kù),選擇快捷菜單中的“任務(wù)”→“導(dǎo)入數(shù)據(jù)”或“導(dǎo)出數(shù)據(jù)”命令。
4.5.2 導(dǎo)入數(shù)據(jù)
使用SQL Server導(dǎo)入向?qū)Э梢詮闹С值臄?shù)據(jù)源向本地?cái)?shù)據(jù)庫(kù)之間復(fù)制和轉(zhuǎn)換數(shù)據(jù)。下面以從Excel文件轉(zhuǎn)換為SQL Server數(shù)據(jù)表為例介紹導(dǎo)入數(shù)據(jù)向?qū)У挠梅ê筒襟E。具體步驟參考如下。
(1)啟動(dòng)導(dǎo)入向?qū)АT凇皩?duì)象資源管理器”中右擊數(shù)據(jù)庫(kù)test01,在彈出的快捷菜單中選擇“任務(wù)”→“導(dǎo)入向?qū)А泵睢棾觥癝QL Server導(dǎo)入和導(dǎo)出向?qū)А背跏冀缑妗?/p>
(2)選擇數(shù)據(jù)源類(lèi)型。單擊“下一步”按鈕,在“數(shù)據(jù)源”列表框中選擇數(shù)據(jù)源類(lèi)型為Microsoft Excel。單擊“下一步”按鈕,指定要從中導(dǎo)入數(shù)據(jù)的電子表格的路徑和文件名或單擊“瀏覽”按鈕通過(guò)使用“打開(kāi)”對(duì)話框定位獎(jiǎng)學(xué)金的Excel表sch_ship.xls。
(3)選擇目標(biāo)。單擊“下一步”按鈕,選擇目標(biāo)類(lèi)型和文件,如數(shù)據(jù)庫(kù)test01。也可以通過(guò)列表框選擇其他類(lèi)型和其他數(shù)據(jù)庫(kù)。
(4)指定復(fù)制或查詢(xún)操作。單擊“下一步”按鈕,選中“復(fù)制一個(gè)或多個(gè)表或視圖的數(shù)據(jù)”單選按鈕。
(5)編輯和保存文件。單擊“下一步”按鈕。單擊映射下的“編輯”項(xiàng),修改目標(biāo)文件列的數(shù)據(jù)類(lèi)型等屬性。修改完畢后單擊“確定”按鈕返回。
(6)單擊“下一步”按鈕,進(jìn)入“保存”對(duì)話框。單擊“立即執(zhí)行”按鈕,將立即運(yùn)行包。若單擊“保存SSIS包”按鈕,則保存包以便日后運(yùn)行,也可以根據(jù)需要立即運(yùn)行包。
(7)完成。單擊“下一步”按鈕,進(jìn)入“完成該向?qū)А睂?duì)話框。然后單擊“完成”按鈕,進(jìn)入“執(zhí)行成功”對(duì)話框,如圖4-25所示。表明電子表格sch_ship.xls成功導(dǎo)入數(shù)據(jù)庫(kù)test01中,成為一個(gè)SQL Server 2016的數(shù)據(jù)表,單擊“關(guān)閉”按鈕。

圖4-25 “執(zhí)行成功”對(duì)話框
(8)查看數(shù)據(jù)。展開(kāi)數(shù)據(jù)庫(kù)test01,右擊表sch_ship,在彈出的快捷菜單中選擇“編輯表前200行”命令,在查詢(xún)編輯器窗體中可以瀏覽轉(zhuǎn)換的數(shù)據(jù)表,如圖4-26所示。

圖4-26 導(dǎo)入的sch_ship
4.5.3 導(dǎo)出數(shù)據(jù)
使用SQL Server 2016的導(dǎo)出向?qū)Э梢栽谥С值谋镜財(cái)?shù)據(jù)庫(kù)數(shù)據(jù)與指定類(lèi)型目標(biāo)文件之間復(fù)制和轉(zhuǎn)換數(shù)據(jù)。
導(dǎo)出向?qū)c導(dǎo)入向?qū)У氖褂梅椒ɑ疽恢拢诖瞬辉儋樖觥?/p>
- HTML5移動(dòng)Web開(kāi)發(fā)技術(shù)
- 微服務(wù)與事件驅(qū)動(dòng)架構(gòu)
- Python自動(dòng)化運(yùn)維快速入門(mén)
- Java開(kāi)發(fā)入行真功夫
- ADI DSP應(yīng)用技術(shù)集錦
- Java編程技術(shù)與項(xiàng)目實(shí)戰(zhàn)(第2版)
- Learning Concurrency in Kotlin
- 打開(kāi)Go語(yǔ)言之門(mén):入門(mén)、實(shí)戰(zhàn)與進(jìn)階
- Learning AWS
- Citrix XenServer企業(yè)運(yùn)維實(shí)戰(zhàn)
- 硬件產(chǎn)品設(shè)計(jì)與開(kāi)發(fā):從原型到交付
- ASP.NET Web API Security Essentials
- Android智能手機(jī)APP界面設(shè)計(jì)實(shí)戰(zhàn)教程
- 算法訓(xùn)練營(yíng):海量圖解+競(jìng)賽刷題(入門(mén)篇)
- PHP面試一戰(zhàn)到底