[SQL Server玩转Python] 一.安装环境及T-SQL调用python脚本
在開發項目過程中,更多的是通過Python訪問SQL Server數據庫接口,進行數據挖掘的操作;而SQL Server2016版本之后,嵌入了強大的R、Python、Machine Learning等功能,尤其是Python代碼置于存儲過程中,可以實現一些便捷數據分析功能。
本系列文章主要講解SQL Server 2017實現Python數據分析的文章,同時對比兩者的優劣。第一篇文章主要講解SQL Server開發Python環境的安裝過程及基本的數據分析代碼實現?;A性文章,自己也在不斷學習中,希望對你有所幫助。
PS:2019年1~2月作者參加了CSDN2018年博客評選,希望您能投出寶貴的一票。我是59號,Eastmount,楊秀璋。投票地址:https://bss.csdn.net/m/topic/blog_star2018/index
五年來寫了314篇博客,12個專欄,是真的熱愛分享,熱愛CSDN這個平臺,也想幫助更多的人,專欄包括Python、數據挖掘、網絡爬蟲、圖像處理、C#、Android等。現在也當了兩年老師,更是覺得有義務教好每一個學生,讓貴州學子好好寫點代碼,學點技術,"師者,傳到授業解惑也",提前祝大家新年快樂。2019我們攜手共進,為愛而生。一. 安裝SQL Server
(一) 安裝SQL Server 2017
本文安裝的軟件為:cn_sql_server_2017_developer_x64_dvd_11296175.iso
下載地址:
1.選擇“全新 SQL Server 獨立安裝或向現有安裝添加功能”。
2.安裝所需功能,注意機器學習服務、R、Python均需要安裝。
3.選擇默認實例“MSSQLSERVER”。
4.選擇混合性模型,包括SQL Server身份驗證(sa)和Windows身份驗證,同時添加當前用戶。
5.安裝。
安裝成功之后,你會發現仍然不能編寫SQL Server代碼,這是因為還需要安裝SQL Server管理工具。
(二) 安裝SQL Server Management Studio
微軟官方下載地址:https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017
作者上傳下載地址:
安裝過程如下圖所示。
安裝成功之后即可使用SQL Server編寫代碼了。
二. 配置Python和R開發環境
安裝成功之后我們新建一個數據庫test01,可以發現SQL語句可以編寫,但編寫Python或R代碼仍然會報錯。
推薦文章:
https://docs.microsoft.com/zh-tw/sql/advanced-analytics/tutorials/run-python-using-t-sql?view=sql-server-2017
解決方法:
http://www.cnblogs.com/OpenCoder/p/7090370.html
http://www.kodyaz.com/t-sql/enable-external-script-on-sql-server-for-r-python.aspx
1.查看Python是否已經啟用,查看SQL Server環境下是否有Python可執行文件。如:C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES。
注意,Scripts文件夾下可以通過pip安裝其他Python庫。
2.檢查是否已啟用外部指令,代碼如下:
--查看外部指令 sp_configure 'external scripts enabled' --啟用外部腳本,設置config_value為1 EXEC sp_configure 'external scripts enabled', 1 RECONFIGURE WITH OVERRIDE如果run_value為1,則機器學習功能已經安裝成功并且可供使用。否則設置config_value為1。
3.此時如果執行Python代碼,可能會提示錯誤“此 SQL Server 實例已禁用 sp_execute_external_script,請使用 sp_configure 的已啟用的外部腳本對其進行啟用?!?這表示run_value仍然為0,此時需要開啟服務。開啟方法如下:
1) 開啟SQL Server實例數據庫引擎服務
2) 開啟SQL Server實例Lanuchpad服務
注意執行完后要重啟數據庫引擎服務和SQL Server Lanuchpad服務才會正式生效:
4.重啟電腦和數據庫引擎服務。
5.添加最簡單的Python和R語言代碼,并執行。
Pyhton代碼
運行結果如下:
R代碼
exec sp_execute_external_script @language =N'R', @script=N'OutputDataSet<-InputDataSet', @input_data_1 =N'select 1 as hello' with result sets (([hello] int not null)); go運行結果如下:
三. T-SQL調用Python數據分析入門
腳本語言的基本語法如下,推薦官方文章 sp_execute_external_script (TRANSACT-SQL) 。
sp_execute_external_script @language = N'language', @script = N'script' [ , @input_data_1 = N'input_data_1' ] [ , @input_data_1_name = N'input_data_1_name' ] [ , @output_data_1_name = N'output_data_1_name' ] [ , @parallel = 0 | 1 ] [ , @params = N'@parameter_name data_type [ OUT | OUTPUT ] [ ,...n ]' ] [ , @parameter1 = 'value1' [ OUT | OUTPUT ] [ ,...n ] ]推薦這篇文章供大家學習基礎知識:使用 T-SQL 執行 Python
1.程序一 調用包
execute sp_execute_external_script @language = N'Python', @script = N' import math a = 1 b = 2 c = a*b print(a,b,c) d = math.pi/6 print(math.sin(d)) '輸出結果如下所示:
2.程序二 回歸預測
execute sp_execute_external_script @language = N'Python', @script = N' from sklearn import linear_model import matplotlib.pyplot as plt import numpy as np #X表示匹薩尺寸 Y表示匹薩價格 X = [[6], [8], [10], [14], [18]] Y = [[7], [9], [13], [17.5], [18]] print(X) print(Y) #回歸訓練 clf = linear_model.LinearRegression() clf.fit(X, Y) res = clf.predict(np.array([12]).reshape(-1, 1))[0] print(u"預測一張12英寸匹薩價格:$%.2f" % res) #預測結果 X2 = [[0], [10], [14], [25]] Y2 = clf.predict(X2) '輸出結果可以看到線性回歸預測的價格。
后續文章將結合存儲過程詳細講解SQL Server玩轉Python的過程,比如這篇文章。
https://docs.microsoft.com/zh-cn/sql/advanced-analytics/tutorials/sqldev-py5-train-and-save-a-model-using-t-sql?view=sql-server-2017
希望文章對大家有所幫助,如果有錯誤或不足之處,還請海涵。最近經歷的事情太多,有喜有悲,關閉了朋友圈,希望通過不斷學習和寫文章來忘記煩勞,將憂郁轉換為動力,每周學習都記錄下來。
(By:Eastmount 2018-11-12 晚上12點 https://blog.csdn.net/Eastmount/)
總結
以上是生活随笔為你收集整理的[SQL Server玩转Python] 一.安装环境及T-SQL调用python脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站开发之MyEclipse简单实现JS
- 下一篇: [Python图像处理] 十二.图像几何