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

前 言

在我的文章“如何选择云机器学习平台”中,我选择平台的第一条准则是“靠近你的数据”。将代码保持靠近数据是必要的,以保持延迟低,因为光速限制了传输速度。毕竟,机器学习(尤其是深度学习)往往会多次运行所有数据(每次运行称为一个时代)。

对于非常大的数据集而言,理想情况是在数据已经存在的地方构建模型,这样就不需要进行大规模的数据传输。有几个数据库在一定程度上支持这一点。自然的下一个问题是,哪些数据库支持内部机器学习,以及它们是如何做到的?我将按字母顺序讨论这些数据库。

01 Amazon Redshift

Amazon Redshift是一种托管的、面向PB级数据仓库服务,旨在通过现有的商业智能工具,轻松高效地分析所有数据。它针对数据集大小从几百GB到PB或更大的情况进行了优化,并且每TB每年的费用低于1,000美元。

Amazon Redshift ML旨在帮助SQL用户使用SQL命令轻松创建、训练和部署机器学习模型。在Redshift SQL中,CREATE MODEL命令定义用于训练的数据和目标列,然后通过加密的Amazon S3存储桶传递数据到Amazon SageMaker Autopilot进行训练。

经过自动化机器学习训练后,Redshift ML编译最佳模型并将其注册为预测SQL函数在Redshift集群中。然后,您可以通过在SELECT语句中调用预测函数来调用该模型进行推理。

总结:Redshift ML使用SageMaker Autopilot从您指定的数据自动创建预测模型,这些数据通过SQL语句提取到S3存储桶中。找到的最佳预测函数在Redshift集群中进行注册。

02 BlazingSQL

BlazingSQL是一个基于RAPIDS生态系统构建的GPU加速的SQL引擎,既是一个开源项目,也是一个付费服务。RAPIDS是一个由Nvidia孵化的一套开源软件库和API,使用CUDA并基于Apache Arrow列式内存格式。其中RAPIDS的一部分CuDF是一个类似于Pandas的GPU DataFrame库,用于加载、连接、聚合、过滤和操作数据。

Dask是一个开源工具,可以将Python包扩展到多台机器上。Dask可以将数据和计算分布在多个GPU上,可以是同一系统内的GPU,也可以是多节点集群。Dask与RAPIDS cuDF、XGBoost和RAPIDS cuML集成,以实现GPU加速的数据分析和机器学习。

总结:BlazingSQL可以在Amazon S3中的数据湖中运行GPU加速查询,将结果DataFrame传递给cuDF进行数据操作,最后可以使用RAPIDS XGBoost和cuML进行机器学习,使用PyTorch和TensorFlow进行深度学习。

03 Brytlyt

Brytlyt是一个基于浏览器的平台,可实现具有深度学习能力的数据库内AI。Brytlyt将PostgreSQL数据库、PyTorch、Jupyter Notebooks、Scikit-learn、NumPy、Pandas和MLflow组合成一个无服务器平台,作为三个GPU加速产品:数据库、数据可视化工具和使用笔记本的数据科学工具。

Brytlyt连接任何具有PostgreSQL连接器的产品,包括Tableau等BI工具和Python。它支持从外部数据文件(如CSV)和从PostgreSQL外部SQL数据源(如Snowflake、Microsoft SQL Server、Google Cloud BigQuery、Databricks、Amazon Redshift和Amazon Athena)加载和摄入数据。

作为一个GPU数据库,Brytlyt可以并行处理连接的数据,几秒钟内处理数十亿行数据。Brytlyt在电信、零售、石油和天然气、金融、物流、DNA和基因组学等领域有应用。

总结:Brytlyt集成了PyTorch和Scikit-learn,因此可以支持运行内部数据的深度学习和简单机器学习模型。GPU支持和并行处理意味着所有操作都相对快速,尽管针对数十亿行训练复杂的深度学习模型当然需要一些时间。

04 Google Cloud BigQuery

BigQuery 是 Google Cloud 的托管式 PB 级数据仓库,可以在几乎实时的情况下对大量数据运行分析。BigQuery ML 允许你使用 SQL 查询在 BigQuery 中创建和执行机器学习模型。

BigQuery ML 支持线性回归用于预测;二元和多元逻辑回归用于分类;K-均值聚类用于数据分割;矩阵分解用于创建产品推荐系统;时间序列用于执行时间序列预测,包括异常、季节性和假日;XGBoost 分类和回归模型;基于 TensorFlow 的深度神经网络用于分类和回归模型;AutoML Tables;以及 TensorFlow 模型导入。你可以使用来自多个 BigQuery 数据集的数据训练和预测模型。BigQuery ML 可以使用 CREATE MODEL 语句中的 TRANSFORM 子句执行特征工程。

总结:BigQuery ML 将 Google Cloud 机器学习的大部分功能带入 BigQuery 数据仓库,使用 SQL 语法,不需要从数据仓库中提取数据。

05 IBM Db2 Warehouse

IBM Db2 Warehouse是一个托管的公共云服务,也可以通过自己的硬件或私有云在本地安装。作为数据仓库,它包括诸如内存数据处理和基于列的表格的在线分析处理等功能。其Netezza技术提供了一组强大的分析功能,旨在高效地将查询引导到数据。一系列库和函数可帮助您获得所需的精确见解。

Db2 Warehouse支持Python、R和SQL的内部机器学习。IDAX模块包含分析存储过程,包括方差分析、关联规则、数据转换、决策树、诊断度量、离散化和矩阵、K均值聚类、k近邻、线性回归、元数据管理、朴素贝叶斯分类、主成分分析、概率分布、随机抽样、回归树、顺序模式和规则,以及参数和非参数统计。

总结:IBM Db2 Warehouse包含一组广泛的内部SQL分析功能,包括一些基本的机器学习功能,以及对R和Python的内部支持。

06 Kinetica

Kinetica是一个结合历史和实时数据分析、位置智能和人工智能的单一平台,通过API和SQL都可以访问。Kinetica是一个非常快速、分布式、列式、内存优先、GPU加速的数据库,具有过滤、可视化和聚合功能。

Kinetica将机器学习模型和算法与您的数据集成,以进行规模化的实时预测分析。它允许您简化数据管道、分析、机器学习模型和数据工程的生命周期,并通过流计算特征。Kinetica提供了一个由GPU加速的机器学习全生命周期解决方案:托管Jupyter笔记本、通过RAPIDS进行模型训练,并在Kinetica平台上进行自动模型部署和推断。

总结:Kinetica提供了一个由GPU加速的机器学习全生命周期解决方案,并可以从流数据中计算特征。

07 Microsoft SQL Server

Microsoft SQL Server机器学习服务支持R、Python、Java、PREDICT T-SQL命令以及SQL Server RDBMS中的rx_Predict存储过程,以及SQL Server大数据集群中的SparkML。在R和Python语言中,Microsoft包括了多个用于机器学习的包和库。您可以将训练好的模型存储在数据库中或者外部。Azure SQL托管实例支持作为预览版的Python和R的机器学习服务。

Microsoft R有扩展支持从磁盘和内存中处理数据。SQL Server提供了扩展框架,以便R、Python和Java代码可以使用SQL Server数据和函数。SQL Server大数据集群在Kubernetes中运行SQL Server、Spark和HDFS。当SQL Server调用Python代码时,它可以反过来调用Azure Machine Learning,并将生成的模型保存在数据库中以供预测使用。

总结:当前版本的SQL Server可以使用多种编程语言训练和推断机器学习模型。

08 Oracle数据库

Oracle Cloud Infrastructure提供了一个托管和无服务器的平台,用于构建、训练和管理机器学习模型。它使用Oracle Cloud Infrastructure,包括Oracle Autonomous Database和Oracle Autonomous Data Warehouse。它包括由开源社区和Oracle Accelerated Data Science (ADS)库开发的Python-centric工具、库和包,支持预测模型的端到端生命周期:

● 数据采集、分析、准备和可视化

● 特征工程

● 模型训练(包括Oracle AutoML)

● 模型评估、解释和解释(包括Oracle MLX)

● 模型部署到Oracle Functions

● OCI Data Science与Oracle Cloud Infrastructure堆栈的其余部分集成,包括Functions、Data Flow、Autonomous Data Warehouse和Object Storage。

目前支持的模型包括:

● Oracle AutoML

● Keras

● Scikit-learn

● XGBoost

● ADSTuner(超参数调整)

● ADS还支持机器学习可解释性(MLX)。

总结:Oracle Cloud Infrastructure可以托管与其数据仓库、对象存储和函数集成的数据科学资源,从而实现完整的模型开发生命周期。

09 Vertica

Vertica Analytics Platform是一个可扩展的列式存储数据仓库。它有两种模式:Enterprise模式将数据存储在组成数据库的节点的本地文件系统中,而EON模式将数据集中存储在所有计算节点中。

Vertica使用大规模并行处理来处理PB级别的数据,并使用数据并行性进行内部机器学习。它内置了8种数据准备算法,3种回归算法,4种分类算法,2种聚类算法,多种模型管理函数以及能够导入在其他地方训练的TensorFlow和PMML模型的功能。一旦你拟合或导入了一个模型,就可以用它来进行预测。Vertica还允许用户自定义用C++、Java、Python或R编程的扩展程序。你可以使用SQL语法进行训练和推断。

总结:Vertica内置了一套不错的机器学习算法,并能够导入TensorFlow和PMML模型。它可以从导入的模型以及自己的模型中进行预测。

10 MindsDB

如果您的数据库没有内置的机器学习支持,您可能可以使用MindsDB来添加此功能,它可以与半打数据库和五个BI工具集成。支持的数据库包括MariaDB,MySQL,PostgreSQL,ClickHouse,Microsoft SQL Server和Snowflake,MongoDB的集成正在开发中,承诺在2021年晚些时候支持流式数据库的集成。当前支持的BI工具包括SAS,Qlik Sense,Microsoft Power BI,Looker和Domo。

MindsDB具有AutoML,AI表和可解释性AI(XAI)。您可以从MindsDB Studio、SQL INSERT语句或Python API调用中调用AutoML训练。训练可以选择使用GPU,并可以选择创建时间序列模型。

您可以将模型保存为数据库表,并从保存的模型的SQL SELECT语句、MindsDB Studio或Python API调用中调用它。您可以从MindsDB Studio评估、解释和可视化模型质量。

您还可以将MindsDB Studio和Python API连接到本地和远程数据源。MindsDB还提供了一个简化的深度学习框架Lightwood,该框架在PyTorch上运行。

总结:MindsDB为许多缺乏内置机器学习支持的数据库提供了有用的机器学习功能。

最后

越来越多的数据库支持内部进行机器学习。具体机制各不相同,有些数据库的功能比其他数据库更强大。然而,如果您拥有的数据量很大,以至于您可能必须在采样子集上拟合模型,那么上面列出的任何一种数据库(以及借助MindsDB等工具的其他数据库)都可能帮助您从完整数据集构建模型,而不会因数据导出而产生严重的开销。


作者:Martin Heller,他曾是一名网络和Windows编程顾问,从1986年至2010年期间开发了数据库、软件和网站。他曾担任Alpha Software的技术和教育副总裁以及Tubifi的董事长和首席执行官。

更多内容请关注“云原生数据库”

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值