日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

python pandas sqlserver_python学好了还可以用到SSIS上,将Python的能力嫁接到SSIS中

發(fā)布時(shí)間:2025/3/20 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python pandas sqlserver_python学好了还可以用到SSIS上,将Python的能力嫁接到SSIS中 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前一篇推文中,給大家演示了在SSIS上使用dotNET腳本,實(shí)現(xiàn)一些原生SSIS難以實(shí)現(xiàn)的功能,并冠以無(wú)限可能的說(shuō)法。

對(duì)部分非dotNET的人群來(lái)說(shuō),難以發(fā)揮到自身的知識(shí)儲(chǔ)備能力,此篇鄭重地為大家宣布,所有大家過(guò)去的知識(shí),都能為SSIS所用。

此篇演示python腳本幫助數(shù)據(jù)清洗工作,成為SSIS流程中的一部分,同理其他語(yǔ)言其他工具亦可以完成,只要有最終輸出即可供SSIS使用。

充分復(fù)用python的現(xiàn)有優(yōu)勢(shì)

python的確是一門非常優(yōu)秀的編程語(yǔ)言,特別是在數(shù)據(jù)領(lǐng)域,網(wǎng)絡(luò)爬蟲、數(shù)據(jù)處理、分析等方面都是非常強(qiáng)勁。

估計(jì)現(xiàn)在許多做數(shù)據(jù)的朋友們,或多或少也會(huì)學(xué)習(xí)一下python,學(xué)深一門語(yǔ)言花費(fèi)大,入門一門語(yǔ)言是容易的。

特別是已經(jīng)掌握了一門現(xiàn)有語(yǔ)言的基礎(chǔ)上,再學(xué)一門新語(yǔ)言,也是不難,熟悉語(yǔ)法、現(xiàn)有類庫(kù)、包調(diào)用即可。

筆者因喜歡使用現(xiàn)成的微軟的工具,在微軟的生態(tài)里專研得深,產(chǎn)品間的交叉應(yīng)用場(chǎng)景廣,所以學(xué)習(xí)dotNET是非常不錯(cuò)的投資回報(bào)。

若其他朋友的學(xué)習(xí)路徑是python為主,本文可以給python群體一個(gè)大大的精喜,在python上做好它最擅長(zhǎng)的部分,其余流程交給SSIS現(xiàn)有成熟、簡(jiǎn)單易用的數(shù)據(jù)ETL框架來(lái)完成,雙重優(yōu)勢(shì)發(fā)揮得淋漓盡致。

演示內(nèi)容介紹

本文打算使用python進(jìn)行數(shù)據(jù)的清洗部分,引用的案例是帶筆者入門dotNET的我的師傅的出品案例:清洗一份課程表數(shù)據(jù),將其轉(zhuǎn)換為結(jié)構(gòu)化的一維表結(jié)構(gòu)。

我?guī)煾稻╠otNET、python等語(yǔ)言,專業(yè)程序員,寫得代碼很規(guī)范,很值得學(xué)習(xí)和關(guān)注。

詳細(xì)文章出處:

https://mp.weixin.qq.com/s/EK63nax5JCur-G2o2QMJNw

數(shù)據(jù)源結(jié)構(gòu)為:

最終轉(zhuǎn)換的結(jié)果:

使用原理介紹

本次使用的是SSIS可以調(diào)用處部程序的功能,調(diào)用CMD,然后輸入?yún)?shù)為 python main.py,啟用python并運(yùn)行main.py這個(gè)文件。

以上的前提條件是本機(jī)安裝好python,并設(shè)置好環(huán)境變量讓CMD可以直接通過(guò)敲打python即可啟動(dòng)python程序,根據(jù)不同腳本的要求,安裝好相應(yīng)的包,例如本篇是使用pandas作數(shù)據(jù)清洗,在python中需要安裝好pandas包。

從實(shí)例數(shù)據(jù).xlsx中,經(jīng)過(guò)python腳本的運(yùn)行,生成一個(gè)res.csv的文件。

在SSIS上使用python腳本

在控制流任務(wù)中,有【執(zhí)行進(jìn)程任務(wù)】,拉一個(gè)任務(wù)到右側(cè),并雙擊此任務(wù)進(jìn)行詳細(xì)配置。

在【處理】選項(xiàng)卡中,放入【Executable】參數(shù)為CMD路徑,若運(yùn)行其他程序同理。

在【Arguments】參數(shù)中,輸入CMD調(diào)用的參數(shù),此處輸入絕對(duì)路徑,并且在CMD參數(shù)中加上/C開(kāi)關(guān),表示運(yùn)行完關(guān)閉CMD程序。

在python的路徑識(shí)別中,需要轉(zhuǎn)換為反斜杠,如:python F:/自媒體相關(guān)/其他文章分享/數(shù)據(jù)ETL/main.py

運(yùn)行后關(guān)閉程序很關(guān)鍵,若自己寫出的程序,想直接在【Executable】里運(yùn)行,最后一步需要將程序自關(guān)閉,例如使用dotNET寫一些控制臺(tái)程序。否則最好用CMD來(lái)運(yùn)行所需的程序,再加上/C開(kāi)關(guān)關(guān)閉它,讓SSIS任務(wù)流可以流到下一個(gè)任務(wù)。

創(chuàng)建好任務(wù)后,可以單獨(dú)執(zhí)行一個(gè)任務(wù),測(cè)試最終效果。

此處給大家演示下控制流任務(wù),可以將我們?nèi)粘TS多編程代碼的任務(wù),轉(zhuǎn)換為控件拖拉的方式,例設(shè)上面py腳本未做防錯(cuò)處理,當(dāng)已經(jīng)有res.csv文件存在時(shí),再生成res.csv會(huì)報(bào)錯(cuò)。此處使用SSIS的【文件系統(tǒng)任務(wù)】來(lái)完成文件先刪除操作。

接下來(lái),我們回到常規(guī)任務(wù),將新生成的res.csv文件進(jìn)行數(shù)據(jù)抽取并加載到數(shù)據(jù)庫(kù)中。

本篇的文件為csv文件,使用【平面文件源】來(lái)讀取,具體配置自行琢磨下,比【Excel源】要復(fù)雜一些,但因其非常常用,很有必要熟悉掌握。

目標(biāo)我們存到關(guān)系數(shù)據(jù)庫(kù)中,這樣數(shù)據(jù)的二次利用才更方便,并且數(shù)據(jù)庫(kù)的存儲(chǔ)數(shù)據(jù)量也可以得到保障。

最終我們的數(shù)據(jù)流任務(wù)如下圖,增加加載時(shí)間,方便后期審核。

最終我們的控制流任務(wù)如下,完成我們預(yù)期的效果,將python清洗好的數(shù)據(jù),交給SSIS的后續(xù)步驟來(lái)調(diào)用。

在SSMS上打開(kāi)目標(biāo)表,發(fā)現(xiàn)數(shù)據(jù)已經(jīng)加載成功。

為何不使用一步到位直接python完成或SSIS完成?

在python的群體中,的確熟練使用后,將數(shù)據(jù)再作一步,直接上傳到數(shù)據(jù)庫(kù)中,也并非難事。

但對(duì)于一個(gè)工具型的做事方式來(lái)說(shuō),為何有現(xiàn)成的工具不用,而轉(zhuǎn)而自己從零開(kāi)始寫代碼完成,況且自己寫出來(lái)的代碼,也不會(huì)像專業(yè)工具考慮得那么周到完善,例如數(shù)據(jù)上載過(guò)程中報(bào)錯(cuò)怎樣處理?數(shù)據(jù)上載的性能怎樣保證等等,沒(méi)有足夠的專業(yè)度是寫不出很健壯的代碼。

所以若我們可以充分利用好各個(gè)工具的最大的優(yōu)勢(shì)部分,組合起來(lái)使用,每個(gè)工具也無(wú)需學(xué)習(xí)太深入,即可完成手頭的任務(wù),何樂(lè)而不為。

同樣的道理,如果用SSIS直接來(lái)處理臟亂的數(shù)據(jù)源,也是一個(gè)很痛苦的過(guò)程,在dotNET腳本中處理,也沒(méi)有python現(xiàn)成的pandas這些專業(yè)庫(kù)的數(shù)據(jù)清洗來(lái)得方便。

結(jié)語(yǔ)

本篇給大家再次開(kāi)闊思路,使用現(xiàn)成的SSIS的ETL框架性功能,外加一些其他現(xiàn)成的好用的數(shù)據(jù)處理工具,強(qiáng)強(qiáng)聯(lián)合,使我們的數(shù)據(jù)ETL過(guò)程更加容易,也有更大的能力處理更多的復(fù)雜場(chǎng)景。

在下一篇中,我們重新回到微軟系中,使用SSIS和PowerQuery聯(lián)合,將輕量化的ETL工具一些好用易用的能力同樣嫁接到SSIS中,同時(shí)又可以避開(kāi)此短板部分。敬請(qǐng)關(guān)注。

筆者未來(lái)聚焦在數(shù)據(jù)領(lǐng)域的分享,不限于Excel,會(huì)分享更多Sqlserver、dotNET、Azure、PowerBI等話題,升級(jí)數(shù)據(jù)分析的能力,歡迎繼續(xù)關(guān)注。*

總結(jié)

以上是生活随笔為你收集整理的python pandas sqlserver_python学好了还可以用到SSIS上,将Python的能力嫁接到SSIS中的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。