如何在Greenplum中并行运行R程序——Greenplum R library介绍

Greenplum R库提供gpapply和gptapply函数,允许在Greenplum数据库中并行执行R语言程序,避免数据移动,提高效率。该库将R代码转换为UDF,利用Greenplum的并行计算能力,同时支持通过PL/R和PL/Container两种方式执行R UDF,兼顾效率和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站

引言

本文将介绍一个全新的基于Greenplum的R语言开发函数库Greenplum R。Greenplum R提供了gpapply和gptapply两个函数,可以把R语言的程序发送至Greenplum端并行执行,从而避免数据的移动和提高R语言的执行效率。

R语言是一个开源的专注于统计分析的程序设计语言,具有丰富的统计分析扩展,在大数据浪潮中,R语言也被数据分析师广泛的应用于大数据分析中。各大数据平台也加强了对R语言的支持。

Greenplum大数据分析平台对R语言有良好的支持。在Greenplum中可以使用两种方式使用R语言进行数据分析,一种是使用ODBC连接到Greenplum数据库读取数据,另一种是编写PL/R的用户定义函数(User Defined Function, UDF)。这两种方式各自有优缺点,第一种方式不需要学习PL/R的特殊的语法,仅仅需要编写标准的R语言程序,但是缺点也是很明显的,需要把数据从Greenplum读取到客户端进行计算,这样的话既需要做数据移动又无法发挥Greenplum并行计算的优势;第二种方式不需要移动数据,而且可以使R程序并行执行,但是用户需要学习PL/R的语法,并且使用PL/R编写的用户定义函数(UDF)不易于调试。

那么有没有一个两全其美的方法呢? 既可以发挥Greenplum数据平台并行计算的优势,又不需要使用PL/R特有的语法呢?答案是有的,使用Greenplum R library可以在Greenplum中并行的执行R语言程序。

Greenplum R简介</

Greenplum 之前是一家总部位于美国加利福尼亚州,为全球大型企业用户提供新型企业级数据仓库(EDW)、企业级数据云(EDC)和商务智能(BI)提供解决方案和咨询服务的公司。目前 Greenplum 已经归属 Pivotal。 Greenplum DB 号称是世界上第一个开源的大规模并行数据仓库,最初是基于 PostgreSQL,现在已经添加了大量数据库方面的创新。Greenplum 提供 PD 级别数据量的强大和快速分析能力,特别是面向大数据方面的分析能力,支持大数据的超高性能分析查询。 GreenPlum 主要特性: 大规模并行处理架构 高性能加载,使用 MPP 技术,提供 Petabyte 级别数据量的加载性能 大数据工作流查询优化 多态数据存储和执行 基于 Apache MADLib 的高级机器学习功能 Greenplum 采用 Apache 协议开源之后,加上之前的 HAWQ,PostgreSQL 以及 PostGIS,完全可以构建一体化的 PostgreSQL 企业数据架构。 Greenplum的架构采用了MPP(大规模并行处理)。在 MPP 系统中,每个 SMP 节点也可以运行自己的操作系统、数据库等。换言之,每个节点内的 CPU 不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配(Data Redistribution) 。与传统的SMP架构明显不同,通常情况下,MPP系统因为要在不同处理单元之间传送信息,所以它的效率要比SMP要差一点,但是这也不是绝对的,因为 MPP系统不共享资源,因此对它而言,资源比SMP要多,当需要处理的事务达到一定规模时,MPP的效率要比SMP好。这就是看通信时间占用计算时间的比例而定,如果通信时间比较多,那MPP系统就不占优势了,相反,如果通信时间比较少,那MPP系统可以充分发挥资源的优势,达到高效率。当前使用的 OTLP程序中,用户访问一个中心数据库,如果采用SMP系统结构,它的效率要比采用MPP结构要快得多。而MPP系统在决策支持和数据挖掘方面显示了优势,可以这样说,如果操作相互之间没有什么关系,处理单元之间需要进行的通信比较少,那采用MPP系统就要好,相反就不合适了。 标签:Greenplum
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值