支持機器學習的8個數據倉庫
譯文【51CTO.com快譯】對于規模非常大的數據集來說,理想的情況是在數據已經存在的地方建立模型,這樣就不需要導出大量的數據。有一些數據倉庫在一定程度上支持這一點。而隨之而來的問題是:哪些數據倉庫支持機器學習?它們是如何做到的?以下按字母排序對這些數據倉庫進行分析和闡述。
1.Amazon Redshift
Amazon Redshift是一種托管的PB級數據倉庫,旨在使用戶可以使用現有的商業智能工具簡單高效地分析所有的數據,它可以針對從數百GB到數PB甚至更大的數據集進行優化,并且每年每TB的存儲成本不到1,000美元。
Amazon Redshift-ML旨在使用戶可以輕松使用SQL命令創建、訓練和部署機器學習模型。Redshift SQL中的CREATE MODEL命令定義了用于訓練的數據和目標列,然后將數據通過同一區域中的加密Amazon S3存儲桶傳遞到Amazon SageMaker Autopilot進行訓練。
在進行AutoML訓練之后,Redshift-ML編譯最佳模型,并將其注冊為Redshift集群中的預測SQL函數。然后可以通過在SELECT語句中調用預測函數來調用模型進行推理。
概要:Redshift-ML使用SageMaker Autopilot通過SQL語句從指定的數據自動創建預測模型,SQL語句被提取到S3存儲桶中。其最佳的預測函數已在Redshift群集中注冊。
2.BlazingSQL
BlazingSQL是一個建立在RAPIDS數據科學生態系統之上的采用GPU加速的SQL引擎,它以開源項目和付費服務的形式存在。RAPIDS是Nvidia公司開發的一套開源軟件倉庫和API,它使用計算統一設備架構(CUDA),并且基于Apache Arrow列式內存格式。CuDF是RAPIDS的一部分,是一個類似于Pandas的GPU DataFrame倉庫,用于加載、連接、聚合、過濾和其他操作數據。
Dask是一個開源工具,可以將Python軟件包擴展到多臺計算機。Dask可以在同一系統或多節點群集中的多個GPU上分布數據和計算。Dask與RAPIDS cuDF、XGBoost和RAPIDS cuML集成,用于GPU加速數據分析和機器學習。
概要:BlazingSQL可以在Amazon S3中的數據湖上運行GPU加速的查詢,將生成的DataFrames傳遞給cuDF以進行數據處理,最后使用RAPIDS XGBoost和cuML執行機器學習,并使用PyTorch和TensorFlow進行深度學習。
3.谷歌云BigQuery
BigQuery是谷歌云托管的一種PB級數據倉庫,可讓用戶近乎實時地對大量數據進行分析。BigQuery ML允許用戶使用SQL查詢在BigQuery中創建和執行機器學習模型。
BigQuery ML支持線性回歸進行預測;二元和多類邏輯回歸進行分類;用于數據分割的K-均值聚類;用于創建產品推薦系統的矩陣分解;用于執行時間序列預測的時間序列,其中包括異常和季假日;XGBoost分類和回歸模型;基于TensorFlow的深度神經網絡用于分類和回歸模型;AutoML表;以及TensorFlow模型。用戶可以將模型與來自多個BigQuery數據集中的數據一起使用,以進行訓練和預測。BigQuery ML不會從數據倉庫中提取數據。用戶可以通過在CREATE MODEL語句中使用TRANSFORM子句來對BigQuery ML執行功能工程。
概要:BigQuery ML通過SQL語法將谷歌云機器學習的大部分功能帶入BigQuery數據倉庫,而無需從數據倉庫中提取數據。
4.IBM Db2Warehouse
IBM Db2 Warehouse是一項托管的公共云服務。用戶還可以使用自己的硬件或在私有云中在內部設置IBM Db2 Warehouse。作為數據倉庫,它具有諸如內存中數據處理和用于在線分析處理的柱狀表之類的功能。它采用的Netezza技術提供了一套強大的分析工具,旨在有效地將查詢引入數據中。還有一系列倉庫和函數可幫助用戶獲得所需的精確見解。
Db2 Warehouse支持使用Python、R和SQL進行數據倉庫內機器學習。IDAX模塊包含分析存儲的程序,其中包括方差分析、關聯規則、數據轉換、決策樹、診斷度量、離散化和矩、K均值聚類、K近鄰、線性回歸、元數據管理、樸素貝葉斯分類,主成分分析、概率分布、隨機抽樣、回歸樹、序列模式和規則,以及參數和非參數統計。
概要:IBM DB2數據倉庫包含了一系列廣泛的數據倉庫SQL分析,其中包括一些基本的機器學習功能,以及對R和Python的數據庫內支持。
5.Kinetica
Kinetica流數據倉庫將歷史和流數據分析與位置智能和人工智能結合在一個平臺上,所有這些都可以通過API和SQL訪問。Kinetica是一個非常快速、分布式、列式、內存優先、GPU加速的數據倉庫,具有過濾、可視化和聚合功能。
Kinetica將機器學習模型和算法與用戶的數據集成在一起,實現大規模的實時預測分析。它允許用戶簡化數據管道和分析、機器學習模型和數據工程的生命周期,并使用流計算功能。Kinetica為GPU加速的機器學習提供了一個完整的生命周期解決方案:管理Jupyter記事本,通過RAPIDS進行模型訓練,以及Kinetica平臺中的自動模型部署和推理。
概要:Kinetica為GPU加速的機器學習提供了一個完整的數據倉庫生命周期解決方案,并且可以從流數據中計算功能。
6.Microsoft SQL Server
Microsoft SQL Server機器學習服務在SQL Server RDBMS中支持R、Python、Java、PREDICT T-SQL命令和rx\u PREDICT存儲過程,在SQL Server大數據集群中支持SparkML。在R和Python語言中,微軟公司提供了幾個用于機器學習的軟件包和數據倉庫。用戶可以將經過訓練的模型存儲在數據倉庫中或外部。Azure SQL托管實例支持Python和R的機器學習服務作為預覽。
Microsoft R進行擴展以允許它處理磁盤和內存中的數據。 SQL Server提供了一個擴展框架,使R、Python和Java代碼可以使用SQL Server的數據和功能。SQL Server的大數據集群上運行的SQL Server、Spark,和HDFS中Kubernetes。當SQL Server調用Python代碼時,它可以反過來調用Azure機器學習,并將生成的模型保存在數據倉庫中以用于預測。
概要:當前版本的SQL Server可以用多種編程語言訓練和推斷機器學習模型。
7.Oracle Database
Oracle Cloud Infrastructure(OCI)Data Science是一個托管和無服務器的平臺,供數據科學團隊使用Oracle云計算基礎設施(包括Oracle自治數據庫和Oracle自治數據倉庫)構建、培訓和管理機器學習模型。它包括由開放源碼社區和Oracle Accelerated Data Science(ADS)倉庫開發的以Python為中心的工具、倉庫和軟件包。ADS支持預測模型的端到端生命周期:
- 數據采集、分析、準備和可視化。
- 特征工程。
- 模型培訓(包括Oracle AutoML)。
- 模型的評估、說明和解釋(包括Oracle MLX)。
- Oracle功能的模型部署。
OCI Data Science與Oracle云計算基礎設施堆棧的其余部分集成,其中包括功能、數據流、自治數據倉庫和對象存儲。
當前支持的模型包括:
- Oracle AutoML
- Keras
- Scikit-learn
- XGBoost
- ADSTuner(超參數調整)
ADS還支持機器學習可解釋性(MLX)。
概要:Oracle云計算基礎設施可以托管與其數據倉庫、對象存儲和功能集成的數據科學資源,從而實現完整的模型開發生命周期。
8.Vertica
Vertica分析平臺是一個可擴展的列式存儲數據倉庫。它以兩種模式運行:Enterprise模式在本地將數據存儲在組成數據倉庫的節點的文件系統中;EON模式將所有計算節點的數據進行公共存儲。
Vertica使用大規模并行處理來處理PB級數據,并使用數據并行進行內部機器學習。它具有八種用于數據準備的內置算法、三種回歸算法、四種分類算法、兩種聚類算法、幾種模型管理功能以及導入在其他地方訓練過的TensorFlow和PMML模型的能力。一旦擬合或導入了模型,就可以使用它進行預測。Vista還允許用戶定義的擴展程序在C++、Java、python或R中編程。用戶可以使用SQL語法進行訓練和推理。
概要:Vertica內置了一套不錯的機器學習算法,可以導入TensorFlow和PMML模型。它可以根據導入的模型以及自己的模型進行預測。
MindsDB
MindsDB是一個可解釋的AutoML框架,適用于在Pytorch之上構建的開發人員。如果用戶的數據倉庫不支持內部機器學習,則可以使用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調用對其進行調用??梢詮腗indsDB Studio中評估、解釋和可視化模型質量。
用戶還可以將MindsDB Studio和Python API連接到本地和遠程數據源。MindsDB還提供了一個簡化的深度學習框架Lightwood,該框架可在PyTorch上運行。
概要:MindsDB將有用的機器學習功能帶入了許多缺乏對機器學習的內置支持的數據倉庫中。
越來越多的數據倉庫支持內部進行機器學習。其確切的機制各不相同,有些機制比其他機制更有能力。但是,如果用戶有大量數據,可能需要在采樣的子集上擬合模型,那么以上列出的八個數據倉庫中的任何一個以及在MindsDB的幫助下的其他數據倉庫都可以幫助用戶從完整的數據集構建模型,而不必為數據導出支付更多的費用。
原文標題:8 databases supporting in-database machine learning,作者:Martin Heller
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】