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

歡迎訪問 生活随笔!

生活随笔

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

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

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

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

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

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

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

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

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

特別是已經(jīng)掌握了一門現(xiàn)有語言的基礎(chǔ)上,再學(xué)一門新語言,也是不難,熟悉語法、現(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框架來完成,雙重優(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è)程序員,寫得代碼很規(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可以直接通過敲打python即可啟動(dòng)python程序,根據(jù)不同腳本的要求,安裝好相應(yīng)的包,例如本篇是使用pandas作數(shù)據(jù)清洗,在python中需要安裝好pandas包。

從實(shí)例數(shù)據(jù).xlsx中,經(jīng)過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開關(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來運(yùn)行所需的程序,再加上/C開關(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ù)】來完成文件先刪除操作。

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

本篇的文件為csv文件,使用【平面文件源】來讀取,具體配置自行琢磨下,比【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ù)步驟來調(diào)用。

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

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

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

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

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

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

結(jié)語

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

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

筆者未來聚焦在數(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ǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。