原创 | 手把手带你玩转Apache MADlib

Apache MADlib是一个基于SQL的开源机器学习库,旨在提供数据库内置的可扩展分析功能,支持Greenplum、PostgreSQL和Apache HAWQ等。本文将介绍MADlib的架构、工作原理、特性,以及为开发人员提供的快速入门指南,帮助你理解如何在数据库中进行数据分析和机器学习操作。
摘要由CSDN通过智能技术生成

1d59a0c033e5e479682c304946bdad77.png

作者:陈之炎

本文约5500字,建议阅读15分钟
本文对利用MADlib项目来创建一个框架,以满足大规模数据量的需求。

随着数据规模的不断扩大,目前,许多现有的分析解决方案都无法胜任大规模数据量的计算任务。利用MADlib项目来创建一个框架,以满足大规模数据量的需求,该框架旨在利用现代计算能力,提供适应业务需求的强大解决方案。

概述

MADlib实现方案来自商业实践、学术研究和开源开发社区的多方面努力,它是一个基于SQL的数据库内置的可扩展的开源机器学习库,由Pivotal与UCBerkeley合作开发。MADlib创始于2011年,当时属于EMC/Greenplum,后来Greenplum变成了pivotal的Greenplum。主要由伯克利的学者:Joe Hellerstein发起,Stanford, University of Wisconsin-MADISON和University of Florida也有参与。MAD一词来源于:MagneticAgile、Deep三个词的首字母,意为有吸引力的、快速的、精准深入的,三个单词连在一起,意思是“极好的”,旨在为数据科学家们提供一个极好的机器学习和数据分析平台。

MADlib提供了丰富的分析模型,包括回归分析,决策树,随机森林,贝叶斯分类,向量机,风险模型,KMEAN聚集,文本挖掘,数据校验等。MADlib支持Greenplum,PostgreSQL 以及 Apache HAWQ, In-Database Analytics的特性使其大大扩展了数据库的分析功能,充分利用MPP架构使其能够快速处理海量数据集。

本文将为大家介绍MADlib的基本架构,工作原理及特性,并为开发人员提供快速入门指南。

ADlib创始于2011年,2015年7月MADlib成为Apache软件基金会的孵化器项目,经过两年的发展,于2017年8月成为Apache顶级项目。整个项目和代码是在Apache上是开源的,已经正式发布了MADlib 1.14、MADlib 1.15、MADlib 1.15.1、MADlib 1.16 等多个正式版本。

c2bcf698945a85be00a2977b246befe1.png

Apache MADlib 架构

MADlib有以下三个主要组件:

  • Python 驱动函数

  • C++ 实现函数

  • C++ 数据库抽象层

494a0172d06f6a12161af0dde2666386.png

  • Python 驱动函数

Python 驱动函数位于如下子目录中:

https://github.com/apache/incubator-madlib/tree/master/src/ports/postgres/modules

这些功能是用户输入的主要入口点,主要负责算法的流程控制。一般来说,实现包括验证输入参数、执行SQL语句、评估结果和潜在的循环来执行更多的SQL语句,直到达到收敛标准为止。

  • C++实现函数 

大多数位于如下子目录中:

https://github.com/apache/incubator-madlib/tree/master/src/modules

这些函数是特定算法所需核心函数和集合的C++定义。由于性能原因,这些都是在C++而不是Python中实现的。

  • C++ 数据库抽象层

大多数位于如下子目录中:

https://github.com/apache/incubator-madlib/tree/master/src/dbal

和:

https://github.com/apache/incubator-madlib/tree/master/src/ports/postgres/dbconnector

这些函数试图提供一个编程接口,将所有Postgres内部细节抽象掉,并提供一种机制,使MADlib能够支持不同的后端平台,并专注于内部功能而不是平台集成逻辑。

MADlib架构的主要理念:

  • 在本地数据库中操作数据。无需在多个运行时环境之间进行不必要的数据移动。

  • 利用最好的breed数据库引擎,将机器学习逻辑与数据库特定的实现细节相剥离

  • 利用MPP共享技术,如Greenplum数据库,提供并行性和可伸缩性。

  • 开放的实施维护措施,与Apache社区和正在进行中的学术研究保持密切的联系。

开发人员快速入门指南       

准备工作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值