[SQL Server玩轉Python] 一.安裝環境及T-SQL呼叫python指令碼
在開發專案過程中,更多的是通過Python訪問SQL Server資料庫介面,進行資料探勘的操作;而SQL Server2016版本之後,嵌入了強大的R、Python、Machine Learning等功能,尤其是Python程式碼置於儲存過程中,可以實現一些便捷資料分析功能。
本系列文章主要講解SQL Server 2017實現Python資料分析的文章,同時對比兩者的優劣。第一篇文章主要講解SQL Server開發Python環境的安裝過程及基本的資料分析程式碼實現。基礎性文章,自己也在不斷學習中,希望對你有所幫助。
PS:2019年1~2月作者參加了CSDN2018年部落格評選,希望您能投出寶貴的一票。我是59號,Eastmount,楊秀璋。投票地址:https://bss.csdn.net/m/topic/blog_star2018/index
一. 安裝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程式碼
EXEC sp_execute_external_script @language = N'Python',
@script = N'print(3+4)'
執行結果如下:
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實現資料分析SQLServerPython
- 關於python Miniconda的指令碼安裝及 環境控制Python指令碼
- Python+Selenium安裝及環境配置Python
- Windows 環境下 Python 環境安裝WindowsPython
- python新環境安裝Python
- [SQL Server玩轉Python] 三.SQL Server儲存過程實現Python鳶尾花決策樹訓練及預測SQLServerPython儲存過程
- python3環境安裝Python
- Python 環境配置(三)安裝pytorchPythonPyTorch
- Windows安裝Python開發環境WindowsPython開發環境
- python3環境如何安裝Python
- Python 開發環境搭建(02):Python 3.7 + Redhat 7 原始碼安裝Python開發環境Redhat原始碼
- Python爬蟲之scrapy框架簡介及環境安裝Python爬蟲框架
- 玩轉伺服器之環境篇:PHP和Python環境部署指南伺服器PHPPython
- Win 10 安裝 Python 虛擬環境Python
- Python開發環境的安裝配置Python開發環境
- Linux環境安裝Python3.6.xLinuxPython
- Python整合開發環境安裝pycharmPython開發環境PyCharm
- Python3.8 安裝虛擬環境Python
- centos7 安裝Python3及配置環境變數CentOSPython變數
- window環境下安裝和切換兩個python環境Python
- 安裝python虛擬環境並配置虛擬環境以及安裝scrapy模組Python
- Ubuntu18.04安裝Python虛擬環境UbuntuPython
- Windows環境下Python3.7安裝TensorflowWindowsPython
- 小白學python系列-(1)環境的安裝Python
- linux中安裝多個python版本環境LinuxPython
- 圖解python | 安裝與環境設定圖解Python
- windows環境配置:同時安裝Python2.7和Python3.6開發環境WindowsPython開發環境
- 「python入門:」python的環境搭配和安裝python的直譯器Python
- impala-shell指令碼python環境缺少依賴包指令碼Python
- Luckfox Pico Ubuntu server 安裝桌面環境UbuntuServer
- python教程(一)·python環境搭建Python
- 第一章 Python概述與開發環境安裝Python開發環境
- Python準備環境,Linux、Anaconda3安裝PythonLinux
- Python爬蟲入門【1】: CentOS環境安裝Python爬蟲CentOS
- Mac系統Python開發環境的安裝MacPython開發環境
- 使用python指令碼玩轉古早TCAD軟體(待更新)Python指令碼
- angular環境配置及安裝Angular
- GoLand安裝及環境配置GoLand