当前位置: 首页 > 科技观察

选型指南:详解八大支持机器学习的数据库

时间:2023-03-21 14:01:14 科技观察

平台选型的第一原则是“贴近数据”。保持代码靠近数据是保持低延迟的必要条件。机器学习,尤其是深度学习,往往会多次迭代所有数据(一次遍历称为一个时期)。对于非常大的数据集,理想的做法是在存储数据的地方构建模型,这样就不需要大量的数据传输。目前,一些数据库在一定程度上支持该功能。一个自然而然的问题是哪些数据库支持内部机器学习,它们是如何做到的?下面我将探索这些数据库。AmazonRedshiftAmazonRedshift是一种托管的PB级数据仓库服务,旨在使使用现有商业智能工具分析数据变得更加轻松且经济高效。它针对数据集进行了优化,每年每TB的成本不到1,000美元。AmazonRedshiftML使SQL用户可以更轻松地使用SQL命令创建、训练和部署机器学习模型。RedshiftSQL中的CREATEMODEL命令定义用于训练和目标列的数据,然后通过同一区域中的加密AmazonS3存储桶将数据传输到AmazonSageMakerAutopilot进行训练。AutoML训练后,RedshiftML将编译最佳模型并将其注册为Redshift集群中的预测函数。随后,用户可以通过调用SELECT语句中的预测函数来调用模型进行推测。总结:通过SQL语句,RedshiftML可以使用SageMakerAutopilot自动创建使用指定数据的预测模型。在此过程中,SQL语句将被提取到S3存储桶中。最好的预测函数将被注册到Redshift集群中。BlazingSQLBlazingSQL是一个构建在RAPIDS生态系统之上的GPU加速SQL引擎。虽然它是一个开源项目,但它提供付费服务。RAPIDS是Nvidia支持的一套开源软件库和API,它使用CUDA,采用ApacheArrow柱状内存格式。cuDF作为RAPIDS的一部分,是一个类似于Pandas的GPU数据框架库,主要目的是对数据进行加载、连接、聚合、过滤等操作。开源工具Dask在多台机器上扩展Python套件。此外,Dask可以在同一系统或多节点集群中跨多个GPU分布数据和计算。Dask集成了RAPIDScuDF、XGBoost和RAPIDScuML,可用于GPU加速的数据分析和机器学习。总结:BlazingSQL可以在AmazonS3数据湖上运行GPU加速查询,然后将生成的数据帧传输到cuDF进行数据操作,最后使用RAPIDSXGBoost和cuML进行机器学习,或者使用PyTorch和TensorFlow进行深度学习。GoogleCloudBigQueryBigQuery是由GoogleCloud管理的PB级数据仓库。用户可以通过BigQuery对海量数据进行近乎实时的分析。BigQueryML允许用户使用SQL查询在BigQuery中创建和执行机器学习模型。BigQueryML支持用于预测的线性回归、用于分类的二元多类逻辑回归、用于数据分割的K均值聚类、用于创建产品推荐系统的矩阵分解、用于执行时间序列预测的时间序列、XGBoost分类和回归模型、基于TensorFlow的深度神经网络用于分类和回归模型、AutoMLTables、TensorFlow模型导入。用户可以使用来自多个BigQuery数据集的数据模型进行训练和预测。虽然BigQueryML不会从数据仓库中提取数据,但用户可以使用CREATEMODEL语句中的TRANSFORM子句通过BigQueryML进行特征工程。总结:BigQueryML通过SQL语法将GoogleCloud机器学习引入到BigQuery数据仓库中,不至于从数据仓库中抽取数据。IBMDb2Warehouse虽然IBMDb2Warehouse是托管的公共云服务,但用户可以将它们部署在本地或私有云中。IBMDb2Warehouse作为数据仓库,包含了内存数据处理和在线分析处理的柱状表等功能。其Netezza技术为高效数据查询提供了强大的分析功能。此外,IBMDb2Warehouse的大量库和函数可以帮助用户获得所需的精确洞察。Db2Warehouse支持Python、R和SQL中的数据库机器学习。IDAX模块中有分析存储程序,包括方差分析、关联规则、数据转换、决策树、诊断、K均值聚类、K近邻、线性回归、元数据管理、朴素贝叶斯分类、主元分析、概率分布、随机抽样、回归树、顺序模式和规则以及参数和非参数统计等。简介:IBMDb2Warehouse包括一系列数据库内SQL分析,例如一些基本的机器学习功能。此外,IBMDb2Warehouse还为R和Python提供数据库内支持。KineticaKineticaStreamingDataWarehouse将传统的流数据分析与原生智能和人工智能结合在一个平台上,所有这些都可以通过API和SQL访问。Kinetica是一个GPU加速的数据库,它不仅具有快速、分布式、列式和内存优先的特点,而且还集成了过滤、可视化和聚合等功能。为了实现大规模实时预测分析,Kinetica将机器学习模型和算法与用户数据相结合,允许用户优化分析数据管道、机器学习模型、数据工程和流计算功能的生命周期。Kinetica为GPU加速机器学习提供了完整的生命周期解决方案,包括Jupyternotebook的管理、通过RAPIDS进行的模型训练,以及Kinetica平台中的自动模型部署和推理。摘要:Kinetica为GPU加速机器学习提供了完整的数据库生命周期解决方案,并且可以利用流数据进行预测。MicrosoftSQLServerMicrosoftSQLServerMachineLearningServices支持SQLServerRDBMS中的R、Python、Java、PREDICTT-SQL命令和rx_Predict存储过程,支持SQLServerBigDataClusters中的SparkML。在R和Python语言中,Microsoft提供了多个用于机器学习的套件和库。用户可以将训练好的模型存储在数据库中,也可以存储在数据库外。AzureSQL托管实例支持用于预览的Python和R专用机器学习服务。R语言可以处理来自磁盘和内存的数据。SQLServer提供了一个扩展框架,以便R、Python和Java代码可以使用SQLServer数据和函数。SQLServer大数据集群可以在Kubernetes中运行SQLServer、Spark和HDFS。SQLServer调用Python代码时,也可以调用AzureMachineLearning,生成的模型会保存在数据库中用于预测。摘要:当前版本的SQLServer可以使用多种编程语言训练和推断机器学习模型。Oracle数据库OracleCloudInfrastructure(OCI)DataScience是一个托管的无服务器平台,供数据科学团队使用OCI构建、训练和管理机器学习模型,包括OracleAutonomousDatabase和OracleAutonomousDataWarehouse。该平台包括由开源社区和OracleAcceleratedDataScience(ADS)库开发的以Python为中心的工具、库和套件,以支持预测模型的端到端生命周期:数据采集、分析、准备和可视化特征工程模型培训(包括OracleAutoML)模型评估、解释和描述(包括OracleMLX)Oracle函数中的模型部署OCI数据科学还与OCI堆栈集成,包括函数、数据流、自治数据仓库和对象存储。目前支持的模型包括:OracleAutoMLKerasScikit-learn机器学习库XGBoostADSTuner(超参数优化)此外,ADS还支持MLX(机器学习可解释性)。简介:Oracle云基础设施(OCI)可以托管与其数据仓库、对象存储和功能集成的数据科学资源,从而实现完整的模型开发生命周期。VerticaVertica分析平台是一个可扩展的列式存储数据仓库,有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、MicrosoftSQLServer和Snowflake。目前,MindsDB仍在努力与MongoDB集成,2021年晚些时候也将与流式数据库集成。MindsDB支持的商业智能工具包括SAS、QlikSense、MicrosoftPowerBI、Looker和Domo。MindsDB的功能还包括AutoML、AITables和ExplainableArtificialIntelligence(XAI)。用户可以从MindsDBStudio、SQLINSERT语句或PythonAPI调用调用AutoML训练。用户可以选择使用GPU进行训练,也可以选择创建时间序列模型。用户可以将模型保存为数据库表,然后从保存的特定于模型的SQLSELECT语句、MindsDBStudio或PythonAPI调用中调用它们。此外,用户还可以通过MindsDBStudio评估、解释和可视化模型质量。同时,用户还可以将MindsDBStudio和PythonAPI与本地和远程数据源连接起来。MindsDB还提供了可以在PyTorch上运行的深度学习框架Lightwood的简化版本。简介:MindsDB为许多不支持内置机器学习的数据库带来了机器学习功能。越来越多的数据库内部开始支持机器学习。机制各不相同,但有些确实比其他机制表现更好。如果你的数据量很大,需要为抽样子集选择合适的模型,上面列出的8个数据库,以及其他支持MindsDB的数据库,可以帮助用户为完整的数据集建立模型,而不用担心数据导出。导致显着的成本超支。