如何在 GPU 上进行海量数据流的 ETL 处理

为什么GPU适合做ETL

在这里插入图片描述
图为ACM特征工程比赛运行耗时比较:使用1块GPU(V100)大约比cpu(至强)提升3倍。4块GPU(V100)+UCX提升25倍。

RAPIDS(科学计算体系)

在这里插入图片描述
RAPIDS体系结构用于科学计算,应用层介绍如下:

RAPIDS提供cuDF cuIO(类似于pandas调用GPU)、cuML(回归与分类算法GPU计算)、cuGraph(计算图)、DeepLearning(GPU计算框架)、cuxfillter(可视化)五类应用方向。

ETL主要使用的也就是cuDF cuIO(GPU处理大数据。补充:Desk用于多台数据处理)。

cuDF技术栈

在这里插入图片描述
cuDF应用层级使用python主流的数据处理的包完成GPU加速。
在这里插入图片描述
cuDF使用用例,使用基本与pandas相似,底层调用Cuda加速处理。

cuDF性能

在这里插入图片描述
对比Merge、sort、GroupBy三个函数每秒数据处理情况,大数据下GPU在单位时间处理更多数据。

cuIO

在这里插入图片描述
cuIO优化读取方式,避免了传统磁盘->内存->显存的方式,采用直接从磁盘->显存的读取方式。从上图看出,使用cuIO大约有1.5倍加速比。

Desk

提供了GPU与GPU交互方式以及多机间的加速。

BATCH ETL流式处理

在这里插入图片描述
当下随时随地产生的数据,不能用统一的格式规范,这时提出流的概念,让数据之间没有格式上的显示,处理流程按数据流处理。

数据处理也越来越复杂,每一个处理流程成之为pipeline(多个Job),但不同的pipeline之间也有交差,适应用于计算需求。

Kafka是分布式数据处理平台,将用户端与数据处理后端隔离,由Kafka平台管理多个pipeline,更多为数据实时处理。

在这里插入图片描述

上图为流式处理格式信息

弹性处理、科学计算平台、分布式计算

三大件

在这里插入图片描述

STREAMZ

STREAMZ 用于管理pipeline,处理数据存储到Kafka.
在这里插入图片描述
在这里插入图片描述

cuStreamz

在这里插入图片描述
基于Streamz,提出用于GPU计算套件。

如何使用RAPIDS

在这里插入图片描述

总结

NVIDIA提出一种用于ETL(Extract-Transform-Load,数据仓储技术)计算的技术RAPIDS,优势在于使用具有大量多线程处理的GPU处理数据,较比于CPU性能有较大的提升;结合当下主流数据处理工具,并对流行的库进行使用迁移,方便用户使用。

参考:如何在 GPU 上进行海量数据流的 ETL 处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值