SQL Server 机器学习服务-概述与实战

烈酒焚心 提交于 2020-01-11 02:25:44

(本文2020年1月4日首发于D-BI

前述

新年第一篇,去旧迎新。本文内容,既旧也新。旧之处在于,SQL Server 机器学习服务是微软在SQL Server 2016 中就引入的新功能,但当时只支持R语言,所以也称为"R Server",在SQL Server 2017及后续版本中,提供了对Python的支持,因此,现称为"Machine Learning Services(机器学习服务)"的功能自发布至今为止已有两年多的时间,故而这并不算一个新功能。而新的地方在于,此功能自发布起国内资料极少,一方面使用较旧版本SQL Server的用户依然很多,另一方面是很多人对该功能缺乏了解,然而,机器学习算法可以对数据进行深度挖掘,这对企业BI智能化的意义非常大,将AI融入BI也是企业未来实现商业智能的大方向。

在这里插入图片描述

本文将首先讲述机器学习服务(以Python为例)的概念,意义以及其基本应用原理,简单讲讲它的安装和部署方面的相关问题,最后会提供一个教程讲解其具体的应用方法。

本文目录:

  • 前述
  • 什么是机器学习服务
  • 为何要使用机器学习服务?
  • 机器学习服务的运行原理
  • 关于安装与部署
  • 如何使用机器学习服务训练预测模型(Python)
  • 总结

什么是机器学习服务?

机器学习服务是SQL Server中提供的一项新特性,它允许用户可以在SQL Server中,使用存储过程调用R或Python脚本处理数据, 训练和部署机器学习模型。通俗地说,SQL Server数据库的数据可以直接传递至Python中进行处理和建模,Python处理好后可以将结果返回到SQL Server数据库(下文会进一步讲述这点),此方式使SQL Server集成了Python在数据处理和机器学习算法方面的强大功能,且这一切操作均在SQL Server内部完成(因此这也不同于独立版本的SQL Server机器学习服务器)。

(注:SQL Server 2019还提供了对Java支持,但不属于机器学习服务,在此忽略)

为何要使用机器学习服务?

到此处,部分读者可能会问,即使不使用机器学习服务,Python依然可以利用一些库(如sqlalchemy)来实现从数据库中获取和写回数据(如此文),依然可以利用Python强大的算法库预测数据并将结果写回数据库,那为何还要使用机器学习服务呢?事实上,这是不同的,因为利用SQL Server机器学习服务,能够带来如下优势:

  • 可重复利用性。执行包含Python脚本的存储过程训练出的模型可以进行序列化,以单个值的形式存储在实体表中,只要模型调试好就可以在以后需要时重复利用。比如你可以提供给其他应用程序(如SSIS) 或其他的存储过程继续调用,部署到生产环境中,定期执行数据挖掘。
  • 拓展性。SQL Server 机器学习服务使用Anaconda发行版,内置丰富的Python库,还可以安装第三方框架,如 TensorFlow和scikit-learn。
  • 安全性。此功能在数据所在的位置运行脚本,无需通过网络将数据传输到其他服务器。通过在 SQL Server 管理的安全框架内执行受信任的脚本语言,数据库管理员可以在维持安全性的同时允许数据挖掘工程师访问企业数据。
  • 可监控性。可以在SSMS中使用由微软提供或自行设计的报表监视Python的执行情况(关于安装此报表)。
  • 与BI工具集成。存储过程中的参数值可以传递至Python,这意味着在使用SSRS(或Power BI Report Builder) 构建的报表中,用户可以直接调整机器学习算法中的参数,将算法模型的调优及结果的呈现自动化。比如使用多元线性回归预测销售数据,通过调整模型中不同的参数来优化模型(对于此,如果你使用Power BI, 此文提供了使用DAX建模及调优的用例)

(若针对于R语言,还有一个优势是可以以多线程的方式执行R脚本,而Python本身就支持多线程)

机器学习服务的运行原理

在SQL Server中安装了机器学习服务后,在SQL Server 配置管理器中会出现一个名为"SQL Server Launchpad"的服务,此即为......

阅读全文

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!