Vantage不只有SQL,还可以应用R和Python语言

2022-02-16 00:00:00 数据 分析 语言 节点 平台

作者:Tim Miller,Teradata首席软件架构师


R和Python是数据科学领域受欢迎的两种语言。Python经常被誉为是通用的语言,传统上应用于工程领域;而R初是针对统计数据开发的。不管你选择的是哪种语言,你可能都会遇到同样的问题:


  • 无法处理大量的数据

  • 无法进行拓展

  • 运营操作困难


但你知道吗,Teradata可以帮助你通过你使用的语言来在Vantage系统上直接处理数据。将数据分析的处理流程迁移到Teradata Vantage平台可以为数据的处理和数据结果带来巨大的便利,例如:


  • R/Python的代码可以利用Vantage的大规模并行平台(MPP)来提高表现和可拓展性

  • 存放在Vantage平台中的数据不需要被迁移到另一个分析处理平台

  • Vantage可以提供分析运营的平台




为什么这很重要




过去,在笔记本电脑或者分析服务器上运行R/Python可能就已经足够了,但在现在的使用案例中,呈指数级增长的数据量会让类似的任务执行得十分地缓慢。为了实现高效的分析,人们对于可拓展MPP平台的需求逐渐上升。可拓展的性能对于分析师的生产力和准确度而言有着深刻的影响。如果运行一个分析需要几分钟的时间,那么专家们会愿意不断迭代各种参数,不断改进并重新提交分析结果。当处理流程需要花费几个小时的时候,他们提高准确度的意愿逐渐消失,同时运用敏捷数据探索和分析建模技术。


Teradata Vantage是为了高效分析而搭建的。在过去的几十年里,我们不断向一直在进化的核心平台添加更多的功能,来帮助用户将分析技术应用于数据。Vantage这种不对外分享的架构能够实现的不仅仅是简单的数据存储和大量详细数据记录的报告。除此之外,Teradata Vantage现在还加入了机器学习引擎,为现有的核心功能提供多元统计、机器学习和图形功能。综合在一起,这些引擎可以直接在数据上执行分析任务,而不需要进行数据的迁移,这是Teradata在20世纪90年代末开创的处理能力,并在今天持续发展。




如何在Vantage上实现?




基于不同的编译器和程序包和运行的位置,R/Python会在Teradata Vantage平台上以两种截然不同的方式进行处理:


1. 语言会在Teradata Vantage平台的外部运行,而Teradata的开源包和原生语言SQL驱动程序为SQL和机器学习引擎中的功能提供接口,实现对接

2. 语言会直接在Teradata Vantage平台上运行


让我们来详细看看这两种不同的方法:


客户端语言和包


在方法1中,R/Python用户会在下载中加入原生语言SQL驱动器,并搭配Teradata的两个开源函数库中的一个进行使用,即用于R的tdplyr和用于Python的teradataml。Tdplyr和teradataml会提供以下通用的能力:


  • 环境、连接和数据库管理的接口

  • R/Python对Vantage机器学习、图表和SQL引擎功能的接口


正如其名,tdplyr是在的R语言程序包dplyr的基础上搭建的,这可能是广泛使用的R语言程序包,可用于数据操控和数据准备。R语言的用户可以通过使用dplyr的语句来在数据库内实现数据变换,并在Vantage平台内以R数据框架的方式来处理数据表。在使用Python的情况下,teradataml包也可以提供相似的功能;它以SQLAlchemy程序包为基础,这种构造能够提供和pandas数据框架类似的核心功能。




服务器端语言和包


对于方法2,理解Vantage无共享MPP架构非常重要。在Vantage系统中,数据会平均分布在所有平行的虚拟单元中,这被称作是存取模块处理器(AMPs)。为了实现R/Python的处理,必须在每一个节点上都下载相应的参数、基本程序包和所有希望添加的程序包。Vantage的数据表运算机制会推动执行,而处理会并发地在每一个AMP中执行,使用所有平行单元中的可用数据。每个节点中能承载的AMP大约为30-45个单元,取决于Intel CPU的版本以及整体节点的性能。因此,一个10节点、每节点配备40个AMP的系统可以同时处理400个R/Python命令。


值得注意的是,每个R/Python的实例都是独立运行的,在跨节点或同节点的AMP中,并不存在跨进程的沟通。所以,数据科学家们必须对它们运行实例中可用的数据进行脚本识别。在此基础上,可以解决这些类型的使用案例:


  • 低独立度的处理——仅取决于各数据组自身的输入

  • 部分独立的处理——取决于单一AMP中各数据细分的输入。如针对某个地点、时间区间或产品进行模型适配。

  • 系统内部的处理——取决于平均分布于系统AMP中的整个输入表。在这种情况下,可能需要添加额外的设计或编程。例如计算全球平均数、或者为整个用户群建立一个损耗模型。


跳出框架外思考,Vantage平台可以向前两个处理模式提供支持。对于系统内部的处理,数据科学家们必须搭建一个主处理层级,妥善地处理并结合从每个AMP处理进程中返回的部分结果。


这是我三篇系列博客中的一篇。细节决定成败,针对复杂的话题,我将在未来的两篇文章中阐述,我们会更加深入地挖掘以上描述的两种方法。


来源 https://mp.weixin.qq.com/s/znuPiNQy6ghQz321CpWh2Q

相关文章