楼主: 时光永痕
823 0

[数据挖掘新闻] 从Jupyter笔记本远程发送R和Python执行到SQL Server [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)三级

56%

威望
0
论坛币
26 个
通用积分
49.7576
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34070 点
帖子
2731
精华
0
在线时间
316 小时
注册时间
2020-7-21
最后登录
2024-4-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
从Jupyter笔记本远程发送R和Python执行到SQL Server
您是否知道可以从Jupyter Notebooks或任何IDE在SQL Server中远程执行R和Python代码?SQL Server中的机器学习服务消除了移动数据的需求。您可以在数据库中执行R / Python代码,而不用通过网络传输大型敏感数据或在ML训练中失去使用示例csv文件的准确性。您可以在任何地方的Jupyter Notebooks,RStudio,PyCharm,VSCode,Visual Studio中工作,然后将函数执行发送到SQL Server,从而将智能带到数据所在的地方。
本教程将向您展示如何从Juptyter笔记本发送python代码以在SQL Server中执行的示例。相同的原则也适用于R和任何其他IDE。如果您喜欢通过视频学习,那么本教程也会发布在YouTube上。
https://youtu.be/D5erljpJDJE
httpsyoutubeD5erljpJDJE
环境设置先决条件
1.在SQL Server上安装ML Services
为了使R或Python在SQL中执行,您首先需要安装和配置Machine Learning Services功能。请参阅此使用指南。
2.通过Microsoft的Python客户端安装RevoscalePy
为了从Jupyter Notebook将Python执行发送到SQL,您需要使用Microsoft的RevoscalePy软件包。要获取RevoscalePy,请下载并安装Microsoft的ML Services Python客户端。文档页面或直接下载链接(对于Windows)。
下载后,以管理员身份打开powershell并导航到下载文件夹。使用以下命令开始安装(可以自定义安装文件夹):
.\Install-PyForMLS.ps1 -InstallFolder "C:\Program Files\MicrosoftPythonClient"
请耐心等待,安装可能需要一些时间。安装完成后,导航到安装的新路径。让我们创建一个空文件夹并打开Jupyter Notebooks:
mkdir JupyterNotebooks; cd JupyterNotebooks; ..\Scripts\jupyter-notebook
使用Python 3解释器创建一个新笔记本:
                NewNotebookpng
要测试是否已设置所有内容,请在第一个单元格中导入revoscalepy并执行。如果没有错误消息,您就可以继续前进了。
               导入png
数据库设置(仅本教程需要)
对于本教程的其余部分,如果您不想复制粘贴所有代码,则可以从Github克隆此Jupyter Notebook。此数据库设置仅需一步即可,以确保您拥有与本教程相同的数据。您无需执行任何这些设置步骤即可使用自己的数据。
1.创建一个数据库
修改服务器的连接字符串,然后使用pyodbc创建新数据库。
import  pyodbc   
#在
new_db_name = “ MLRemoteExec”中创建一个新的数据库以加载虹膜示例connection_string = “ Driver = SQL Server; Server = localhost \ MSSQLSERVER2017; Database = {0}; Trusted_Connection = Yes;”  
cnxn = pyodbc.connect(connection_string.format(“ master”),autocommit = True)
cnxn.cursor()。execute(“ IF EXISTS(SELECT * FROM sys.databases where [name] ='{0}'))DROP DATABASE {0}“ .format(new_db_name))
cnxn.cursor()。execute(” CREATE DATABASE“ + new_db_name)
cnxn.close()
print(”数据库已创建“)
2.从SkLearn导入虹膜样本
Iris是适用于初学者数据科学教程的流行数据集。默认情况下,它包含在sklearn软件包中。
从 sklearn 导入数据集以pd格式导入 大熊猫 #SkLearn已将虹膜样本数据集内置到包中iris = datasets.load_iris()df = pd.DataFrame(iris.data,column = iris.feature_names)
3.使用RecoscalePy API创建表并加载虹膜数据
(您也可以使用pyodbc,sqlalchemy或其他软件包执行此操作)
from  revoscalepy  import RxSqlServerData,rx_data_step
#使用RX API将数据加载到SQL表中的示例。您也可以使用pyodbc
table_ref = RxSqlServerData(connection_string = connection_string.format(new_db_name),table = “ Iris”)rx_data_step(input_data = df,output_file = table_ref,overwrite = True)打印(“创建的新表:Iris”)
打印(“将Sklearn虹膜样本加载到虹膜表中”)
定义要发送到SQL Server的函数
编写要在SQL中执行的所有python代码。在此示例中,我们在虹膜数据集上创建散布矩阵,并且仅将.png的字节流返回给Jupyter Notebooks以在客户端上进行渲染。
高清 send_this_func_to_sql():
    从 revoscalepy 进口RxSqlServerData,rx_import
从 pandas.tools.plotting 进口scatter_matrix
进口 matplotlib.pyplot 如 PLT    进口 IO     #记得变量的作用域在本功能是我们的SQL Server Python运行时内
    connection_string = “驱动程序= SQL Server; Server = localhost \ MSSQLSERVER2017; Database = MLRemoteExec; Trusted_Connection =是;“
    #指定一个查询并将其加载到熊猫数据帧df
    sql_query = RxSqlServerData(connection_string = connection_string,sql_query = “ select * from Iris”)
df = rx_import(sql_query)
scatter_matrix(df)
#返回由scatter_matrix创建的图像的字节流
buf = io.BytesIO()
plt.savefig(buf,format = “ png”)
buf.seek(0)
返回buf.getvalue()
将执行发送到SQL
现在我们终于完成了设置,请查看发送远程执行的真正难度!首先,import revoscalepy。创建一个sql_compute_context,然后使用来将任何函数的执行无缝发送到SQL Server RxExec。无需将原始数据从SQL传输到Jupyter Notebook。所有计算都在数据库内进行,仅返回图像文件进行显示。
从 IPython的 进口显示
进口 matplotlib.pyplot 作为 PLT
从 revoscalepy 进口RxInSqlServer,rx_exec #创建具有连接到SQL Server的远程计算上下文
sql_compute_context = RxInSqlServer(connection_string = connection_string.format(new_db_name))
#使用rx_exec发送功能执行到SQL服务器
映像= rx_exec(send_this_func_to_sql,compute_context = sql_compute_context)[ 0 ]
#仅将映像返回给我的jupyter客户端。所有数据保持安全,并在我的数据库中进行了操作。
display.Image(数据=图像)
尽管此示例对于Iris数据集来说是微不足道的,但请想象一下您现在解锁的其他规模,性能和安全性功能。您可以使用任何最新的开源R / Python软件包在SQL Server中的大量数据上构建深度学习和AI应用程序。我们还在Microsoft的RevoScaleR和RevoScalePy API中提供了领先的高性能算法。将它们与开源世界中的最新创新结合使用,可以为您的应用程序带来无与伦比的选择,性能和可扩展性。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python Server Serve Ver sql

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 09:42