Snowflake Snowpark Connect:在云端运行Apache Spark分析
Snowflake正在通过推出面向Apache Spark的Snowpark Connect来提升其能力,这项新产品允许企业直接在Snowflake数据云中运行其Apache Spark分析工作负载。这一发展旨在通过消除对独立Spark实例和相关数据传输延迟的需求,来简化数据操作、降低成本并提高性能。
历史上,使用Snowflake和Spark的组织通常依赖于Snowflake Connector for Spark。该连接器充当桥梁,使数据能够在Spark集群和Snowflake之间移动。然而,这种方法可能由于系统间的数据移动而引入延迟和额外成本。目前处于公开预览阶段并兼容Spark 3.5.x的Snowpark Connect for Apache Spark,代表着一次重大转变。它利用了Apache Spark 3.4中引入的Spark Connect功能,该功能将用户代码与Spark集群解耦。这意味着应用程序(如Python脚本或数据笔记本)可以将逻辑计划发送到远程Spark集群,而繁重的工作和结果处理则由集群本身处理。
Snowflake对Spark Connect的实现允许Spark代码直接在数据云中的Snowflake向量化引擎上运行。这为Snowflake客户提供了熟悉的Spark API,同时利用了Snowflake优化的引擎和无服务器架构。SanjMo首席分析师Sanjeev Mohan强调,这项新功能将简化Spark代码向Snowpark的迁移,提供了Spark的易用性与Snowflake固有简单性的结合。此外,通过允许开发人员利用Snowflake的无服务器引擎并避免Spark调优的复杂性,预计将降低企业的总拥有成本。
除了成本节约,Snowpark Connect for Apache Spark还承诺由于Snowflake的向量化引擎而实现更快的处理速度。它还解决了寻找具有专业Spark专业知识人员的困难等挑战,因为大部分运营开销由Snowflake管理。Everest Group高级分析师Shubham Yadav认为,鉴于AI和ML的日益普及以及对简化基础设施和降低成本的相应需求,此次发布是及时的。
企业区分新的Snowpark Connect for Apache Spark和现有的Snowflake Connector for Spark至关重要。Connector促进Spark和Snowflake之间的数据传输,而Snowpark Connect有效地将Spark处理“重新定位”到Snowflake内部,最大限度地减少数据移动及其相关的延迟和成本。从旧的Connector迁移到Snowpark Connect for Apache Spark旨在无缝进行,无需代码转换。
Snowflake此举使其更直接地与Databricks等竞争对手抗衡,后者通过其Databricks Connect产品提供类似功能。虽然Snowflake传统上作为结构化数据和SQL优先工作流的数据仓库进行了优化,但基于湖仓架构构建的Databricks在处理结构化和非结构化数据方面表现出色,特别是对于复杂的机器学习和流式作业。然而,这两个平台都在不断发展,其功能重叠日益增多。Snowflake的Snowpark及其DataFrame API以及对Python、Java和Scala等各种语言的支持,旨在进行数据库内处理,与托管的Spark环境相比,提供了显著的性能提升和成本节约。这使开发人员能够直接在Snowflake内部构建数据管道和应用程序,从而减少数据传输并简化治理。