8 个支持内置机器学习的数据库
- 来源:计算机世界 smarty:if $article.tag?>
- 关键字:机器,学习,数据库 smarty:/if?>
- 发布时间:2021-06-02 18:54
在我2020 年8 月份发表的文章《如何选择云机器学习平台》中,我认为选择平台的首要原则是“靠近数据”。让代码靠近数据是保持低延迟的必要条件。
机器学习, 特别是深度学习往往会多次遍历所有数据(遍历一次被称为一个 epoch)。对于非常大的数据集来说,理想的情况是在存储数据的地方建立模型,这样就不需要大量的数据传输。目前已经有部分数据库在一定程度上支持这种功能。我们会很自然地问到一个问题,即哪些数据库支持内部机器学习,它们又是如何做到的?下面我将对这些数据库进行探讨。
Amazon Redshift
Amazon Redshift 为托管的PB 级数据仓库服务,旨在让使用现有商业智能工具对数据进行分析的工作变得更加简单且经济高效。其专门针对数据集进行了优化,成本合算下来每年每TB 不到1000 美元。
Amazon Redshift ML 可让SQL 用户能够更加轻松地使用SQL 命令创建、训练和部署机器学习模型。 Redshift SQL 中的CREATE MODEL 命令可定义用于训练和目标列的数据, 然后通过同一区域中加密的 Amazon S3 bucket 将数据传输给Amazon SageMaker Autopilot 以用于训练。
在AutoML 训练之后, Redshift ML 将编译最佳模型并将其注册为Redshift 集群中的预测函数。随后,用户可以通过在SELECT 语句中调用预测函数的方式调用模型进行推测。
总结: 通过SQL 语句,Redshift ML 可使用 SageMaker Autopilot 利用指定数据自动创建预测模型。在这过程中,SQL 语句会被提取到S3 bucket 中。最佳的预测函数会被注册在 Redshift 集群中。
BlazingSQL
BlazingSQL 是一个建立在RAPIDS 生态系统顶层上的由GPU 加速的SQL 引擎,虽然是开源项目,但是提供付费服务。RAPIDS 为一套得到了Nvidia 支持的开源软件库和API,其使用了 CUDA 并且采用了Apache Arrow 列式内存格式。作为 RAPIDS 的一部分,cuDF 为一个类似于Pandas 的GPU 数据帧库,主要用途是对数据进行加载、连接、聚合、过滤等操作。
开源工具Dask 可将Python 套件扩展到多台机器上。此外,Dask 还可在同一系统或多节点集群中通过多个GPU 分发数据和计算。整合了RAPIDS cuDF、 XGBoost 和RAPIDS cuML 的Dask 可用于GPU 加速的数据分析和机器学习当中。总结:BlazingSQL 可以在Amazon S3 的数据湖上运行 GPU 加速的查询,然后将生成的数据帧传输给cuDF 进行数据操作,最后再使用RAPIDS XGBoost 和cuML 执行机器学习,或是使用PyTorch 和TensorFlow 执行深度学习。
谷歌Cloud BigQuery
BigQuery 是谷歌Cloud 托管理的PB 级数据仓库。用户可以通过BigQuery 对大量数据进行近实时分析。 BigQuery ML 允许用户使用 SQL 查询在BigQuery 中创建和执行机器学习模型。
BigQueryML 支持用于预测的线性回归、用于分类的二元多类逻辑回归、用于数据分割的K- 均值聚类、用于创建产品推荐系统的矩阵分解、用于执行时间序列预测的时间序列、XGBoost 分类和回归模型、分类和回归模型专用的基于 TensorFlow的深度神经网络、 AutoML Tables、TensorFlow 模型导入。用户可以使用来自多个BigQuery 数据集的数据模型进行训练和预测。虽然 BigQuery ML 不会从数据仓库中提取数据,但是用户可以使用CREATE MODEL 语句中的TRANSFORM 子句,通过 BigQuery ML 执行特征工程。
总结: BigQuery ML 通过SQL 语法将谷歌Cloud 机器学习引入到了BigQuery 数据仓库,从而不从数据仓库中提取数据。
IBM Db2 Warehouse
虽然I B M D b 2 Warehouse 一个托管的公有云服务,但是用户可以在本地或在私有云中部署它们。作为一个数据仓库,IBM Db2 Warehouse 包含有内存数据处理和用于在线分析处理的列式表格等功能。其Netezza 技术提供了强大的分析功能,可高效查询数据。此外,IBM Db2 Warehouse 的大量的库和函数可以帮助用户获得所需的精确洞察力。
Db2 Warehouse 支持 Python、R 和SQL 中的数据库机器学习。IDAX 模块中有分析存储程序,包括方差分析、关联规则、数据转换、决策树、诊断、K 均值聚类、K 近邻、线性回归、元数据管理、 naïve 贝叶斯分类、主要素分析、概率分布、随机抽样、回归树、序列模式与规则,以及参数和非参数统计等等。
总结: I B M D b 2 Warehouse 包含一系列数据库内SQL 分析,例如一些基本的机器学习功能。此外, IBM Db2 Warehouse 对R 和 Python也提供数据库内支持。
Kinetica
Kinetica 流数据仓库(S t r e a m i n g D a t a Warehouse)将以往的流数据分析与本地的智能和人工智能整合在了一个单一的平台上,所有这些都可以通过API 和SQL 进行访问。Kinetica 为GPU 加速数据库不仅具有快速、分布式、柱状和内存优先等特点,还整合了过滤、可视化和聚合等功能。
为了实现大规模的实时预测分析,Kinetica 将机器学习模型和算法与用户的数据集成在一起,并且允许用户对数据管道,分析、机器学习模型和数据工程的生命周期,以及流计算功能进行优化。Kinetica 为GPU 加速的机器学习提供了一个全生命周期解决方案,包括管理Jupyter 笔记本, 通过 RAPIDS 进行模型训练, 以及Kinetica 平台中的自动模型部署和推理。
总结:Kinetica 为GPU 加速的机器学习提供了一个完整的数据库生命周期解决方案,并且可以利用流数据进行预测。
微软SQL Serve
微软SQL Server 机器学习服务在SQL Server RDBMS 中支持R、Python、 Java、PREDICT T-SQL 命令和rx_Predict 存储程序,在SQL Server Big Data Clusters 中支持SparkML。在R 和Python 语言中, 微软提供了多个用于机器学习的套件和库。用户可以将经过训练的模型存储在数据库中或是数据库外部。Azure SQL Managed Instance 支持 Python 和R 专用的Machine Learning Services进行预览。
R 语言可以处理来自磁盘和内存中的数据。SQL Server 提供了一个扩展框架,以便 R、Python 和Java 代码可以使用SQL Server 数据和函数。 SQL Server Big Data Clusters 可在Kubernetes 中运行SQLServer、Spark 和HDFS。当 SQL Server 调用Python 代码时,Azure 机器学习也可以被调用,生成的模型将被保存在数据库中以用于预测。
总结:当前版本的SQL Server 可使用多种编程语言训练和推断机器学习模型。
甲骨文数据库
甲骨文云基础设施(OCI) Data Science 是一款托管无服务器平台, 可供数据科学团队使用包括Oracle Autonomous Database 和 Oracle Autonomous Data Warehouse 在内的OCI 构建、训练和管理机器学习模型。该平台包含有由开放源码社区和Oracle Accelerated Data Science (ADS) Library 开发的以Python 为中心的工具、库和套件,支持预测模型端到端的生命周期:
·数据采集、分析、准备和可视化
·特征工程
· 模型训练( 包括 Oracle AutoML)
·模型评估、解释和说明(包括Oracle MLX)
·Oracle Functions 中的模型部署
OCI Data Science 还与包括Functions、Data Flow、Autonomous Data Warehouse 和对象存储等 OCI 堆栈进行了整合。
目前支持的模型包括:
·Oracle AutoML
·Keras
·Scikit-learn 机器学习库
·XGBoost
·ADSTuner ( 超参数优化)
此外,ADS 还支持MLX (机器学习可解释性)。
总结:甲骨文云基础设施(OCI)可以托管与其数据仓库、对象存储和函数集成的数据科学资源,从而实现完整的模型开发生命周期。
Vertica
Vertica 分析平台为可扩展的列式存储数据仓库,其有两种运行模式:Enterprise 和EON,前一种模式将数据存储在本地组成数据库的节点内的文件系统中,后一种模式将数据存储在公共的计算节点上。
Vertica 使用大规模并行运算处理PB 级数据,并通过数据并行进行内部机器学习。该产品有8 个用于数据准备的内置算法、3 个回归算法、 4 个分类算法、2 个聚类算法以及多个模型管理函数,并具备将已训练的TensorFlow 和PMML 模型导入至其他地方的功能。在导入了模型之后,用户就可以使用它们进行预测。Vertica 还允许用户使用由C++、Java、Python 或 R 等语言编译的自定义扩展程序。此外,用户还可以使用 SQL 语法进行训练和推理。
总结:Vertica 内置了一套优秀的机器学习算法,并且可以导入TensorFlow 和 PMML 模型。用户既可以使用导入的模型进行预测,也可以使用自己训练的模型进行预测。
MindsDB
如果用户的数据库不支持内置机器学习,那么他们可以使用MindsDB。该款产品集成了6 个数据库和5 个商业智能工具,支持的数据库包括MariaDB、MySQL、 PostgreSQL、ClickHouse、微软SQL Server 和Snowflake。目前MindsDB 还正在努力与 MongoDB 整合,2021 年晚些时候还将会与流数据库实现集成。MindsDB 支持的商业智能工具包括SAS、Qlik Sense、微软Power BI、Looker 和 Domo。
MindsDB 的功能还包括 AutoML、AI 表和可解释的人工智能(XAI)。用户可以从MindsDB Studio、SQLINSERT 语句或Python API 调用中调用AutoML 训练。用户可以选择使用GPU 进行训练,也可以选择创建时间序列模型。
越来越多的数据库开始在内部支持机器学习。虽然机制各不相同,但是有些机制确实性能更加出众。如果拥有大量数据,且需要为采样子集选择适当的模型,那么上面所列的8 个数据库,以及支持MindsDB 的其他数据库都可以帮助用户为完整的数据集构建模型,并且不需要担心因数据导出导致费用严重超支。
用户可以将模型另存为数据库表,然后从已保存模型专用的SQL SELECT 语句、MindsDB Studio 或 Python API 调用中调用它们。此外,用户还可以通过 MindsDB Studio 对模型质量实现评估、解释和可视化。
与此同时,用户还可以将MindsDB Studio 和 Python API 与本地和远程数据源联接在一起。MindsDB 还额外提供了一个可在PyTorch 上运行的简化版深度学习框架 Lightwood。
总结:MindsDB 为许多不支持内置机器学习的数据库带来了机器学习功能。
本文作者Martin Heller 目前为InfoWorld 网站的特约编辑兼评论员,此前其曾担任Web 和Windows 编程顾问。从1986 年至2010 年, Heller 一直从事数据库、软件和网站的开发工作。近期,Heller 还出任了Alpha Software 的技术兼训练副总裁和Tubifi 的董事长兼首席执行官。
原文网址 https://www.infoworld. c o m / a r t i c l e / 3 6 0 7 7 6 2 / 8 - databases-supporting-indatabase- machine-learning. html
