8个支持内置机器学习的数据库

2021-05-27 00:04MartinHeller陈琳华
计算机世界 2021年20期
关键词:数据仓库调用机器

Martin Heller 陈琳华

在我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

虽然IBM Db2 Warehouse一个托管的公有云服务,但是用户可以在本地或在私有云中部署它们。作为一个数据仓库,IBM Db2 Warehouse包含有内存数据处理和用于在线分析处理的列式表格等功能。其Netezza技术提供了强大的分析功能,可高效查询数据。此外,IBM Db2 Warehouse的大量的库和函数可以帮助用户获得所需的精确洞察力。

Db2 Warehouse支持Python、R和SQL中的数据库机器学习。IDAX模块中有分析存储程序,包括方差分析、关联规则、数据转换、决策树、诊断、K均值聚类、K近邻、线性回归、元数据管理、na?ve贝叶斯分类、主要素分析、概率分布、随机抽样、回归树、序列模式与规则,以及参数和非参数统计等等。

总结:IBM Db2 Warehouse包含一系列数据库内SQL分析,例如一些基本的机器学习功能。此外,IBM Db2 Warehouse对R和Python也提供数据库内支持。

Kinetica

Kinetica 流数据仓库(Streaming Data Warehouse)将以往的流数据分析与本地的智能和人工智能整合在了一个单一的平台上,所有这些都可以通過API和SQL进行访问。Kinetica为GPU加速数据库不仅具有快速、分布式、柱状和内存优先等特点,还整合了过滤、可视化和聚合等功能。

猜你喜欢
数据仓库调用机器
机器狗
机器狗
核电项目物项调用管理的应用研究
基于数据仓库的住房城乡建设信息系统整合研究
LabWindows/CVI下基于ActiveX技术的Excel调用
未来机器城
分布式存储系统在液晶面板制造数据仓库中的设计
基于系统调用的恶意软件检测技术研究
探析电力系统调度中数据仓库技术的应用
基于数据仓库的数据分析探索与实践