AWS Glue for Spark 和 AWS Glue for Ray - AWS Glue

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Glue for Spark 和 AWS Glue for Ray

在 AWS Glue on Apache Spark(AWS Glue ETL),您可以使用 PySpark 编写 Python 代码来大规模处理数据。Spark 是解决这个问题的熟悉解决方案,但是具有以 Python 为中心背景的数据工程师可能会发现这种过渡并不直观。Spark DataFrame 模型不是无缝的“Pythonic”,它反映了它所构建的 Scala 语言和 Java 运行时。

在 AWS Glue 中,您可以使用 Python shell 作业来运行原生 Python 数据集成。这些作业在单个 Amazon EC2 实例上运行,并且受到该实例容量的限制。这限制了您可以处理的数据的吞吐量,并且在处理大数据时维护成本会很高。

AWS Glue for Ray 允许您纵向扩展 Python 工作负载,而无需在学习 Spark 上投入大量资金。您可以利用 Ray 表现某些更好的场景。通过为您提供选择,您可以利用 Spark 和 Ray 的优势。

AWS Glue ETL 和 AWS Glue for Ray 在底层是不同的,因此它们支持不同的功能。请查看文档以了解支持的功能。

AWS Glue for Ray 有什么用?

Ray 是一个开源分布式计算框架,您可以使用它来扩展工作负载,重点是 Python。有关 Ray 的更多信息,请参阅 Ray 网站。AWS GlueRay 作业和交互式会话允许您在 AWS Glue 中使用 Ray。

您可以使用 AWS Glue for Ray 为计算编写 Python 脚本,这些脚本将在多台机器上并行运行。在 Ray 作业和交互式会话中,您可以使用熟悉的 Python 库 (例如,pandas),使您的工作流程易于编写和运行。有关 Ray 数据集的更多信息,请参阅 Ray 文档中的 Ray 数据集。有关 pandas 的更多信息,请参阅 Pandas 网站

使用 AWS Glue for Ray 时,只需几行代码,即可针对企业级的大数据运行 pandas 工作流程。可从 AWS Glue 控制台或 AWS 开发工具包创建 Ray 作业。您也可以打开 AWS Glue 交互式会话,在无服务器 Ray 环境中运行您的代码。AWS Glue Studio 中尚不支持可视化作业。

AWS Glue for Ray 作业允许您按计划运行脚本或响应来自 Amazon EventBridge 的事件。作业将日志信息和监控统计信息存储在 CloudWatch 中,使您能够了解脚本的运行状况和可靠性。有关 AWS Glue 作业系统的更多信息,请参阅 在 AWS Glue 中处理 Ray 作业

AWS Glue for Ray 交互式会话(预览版)允许您针对相同的预配置资源一个接一个地运行代码片段。您可以使用它来高效地制作原型和开发脚本,或者构建自己的交互式应用程序。您可以在 AWS Management Console 中使用 AWS Glue Studio Notebooks 中的 AWS Glue 交互式会话。有关更多信息,请参阅将笔记本与 AWS Glue Studio 和 AWS Glue 结合使用。也可以通过 Jupyter 内核使用它们,它允许您从支持 Jupyter Notebooks 的现有代码编辑工具(例如,VSCode)运行交互式会话。有关更多信息,请参阅 开始使用 AWS Glue for Ray 互式会话(预览版)

Ray 可自动扩展 Python 代码的工作,方法是将处理分布在一组机器上,然后根据负载对其进行实时重新配置。这可以提高某些工作负载的每美元性能。借助 Ray 作业,我们在 AWS Glue 作业模型中原生内置了自动扩缩功能,因此您可以充分利用此功能。Ray 任务在 AWS Graviton 上运行,从而提高了整体性价比。

除了节省成本外,您还可以使用原生自动扩缩来运行 Ray 工作负载,而无需花时间进行集群维护、调整和管理。您可以开箱即用熟悉的开源库,比如 pandas 和适用于 Panda 的 AWS 开发工具包。这些可以提高您在 AWS Glue for Ray 上开发时的迭代速度。使用 AWS Glue for Ray 时,您将能够快速开发和运行具有成本效益的数据集成工作负载。