Rust 数据工程领域超越 Python 与 Java
17611538698
webmaster@21cto.com

Rust 数据工程领域超越 Python 与 Java

编程语言 0 29 11小时前
图片

21CTO导读:Rust 编程语言正凭借着卓越的性能、安全性以及现代的设计理念,正逐渐成为众多企业处理数据密集型任务的首选,典型例如 Singular 的 Extract 平台,该平台在性能和成本效益方面均超越了传统工具。


尽管 Rust 的生态系统尚未像 Python 那样成熟,但其内存安全性和高效性能使其在数据工程领域占据了显著优势。

现如今,Rust 编程语言正在拓展新的疆域,包括企业级数据管道。

尽管 Python 和 Java 在多数行业中仍作为数据处理的主要语言,但越来越多的公司开始认识到 Rust 在性能、安全性和现代设计方面的独特结合,使其成为数据密集型工作负载的革新者。

最新的证据来自 Singular,他们的 Extract 平台相较于传统的提取、加载、转换 (ELT) 工具,性能提升了 17 倍,成本降低了高达 70% —— 这一切得益于 Rust 的强大支持。

为何 Rust 对数据工程至关重要

Rust 解决了长期以来困扰数据工程的根本问题。

大多数 ELT 平台运行在为不同目的设计的语言上,Python 旨在简单易用,Java 旨在满足企业需求。

Singular 的首席执行官加迪·埃利亚希夫Gadi Eliashiv表示,这两种语言都带来了显著的性能开销:不可预测的垃圾回收暂停、消耗大量内存的运行时环境,以及将开发人员与底层硬件隔离的抽象层。

然而,他指出,Rust 消除了这些权衡。它提供了与 语言相当的性能,并且具备内存安全的保障,能够预防一类错误,这一切都集成在一种现代语言设计之中,不会让开发者感觉落后。

我对此深感喜爱,因为我确实感受到了指尖的力量,”Eliashiv 补充说。我仿佛在编写可能属于内核级别的代码。它非常高效,同时这种语言又非常现代化。

内存效率革命

数字说明了一切。

Singular 的团队比较了他们的遗留 Python 实现与新 Rust 版本之间的等效连接器代码。使用 Rust,他们实现了 20 倍的内存消耗降低。对于多租户 SaaS 平台而言,这是一个巨大的突破,他这样

我们基本上可以在相同的服务器上容纳 20 倍的客户,因此我们可以为客户提供显著的成本节省,”Eliashiv 解释说。公司报告称,客户的成本节省超过 50%,某些操作的效率比传统工具高出 100 倍。

这种效率提升并非仅限于理论。他指出,Extract 已经在为包括华纳兄弟和艺电在内的企业客户提供服务,处理数据的规模是传统 Python 或 Java 平台难以企及的。

内存安全:隐藏的优势

Eliashiv 的团队在网络安全和漏洞研究方面拥有丰富的经验,这让他们对内存安全在生产系统中的重要性有了独特的理解。

每次有人在 CC++ 中错误使用数组或结构体时,他们都会无意中释放同一内存区域两次。这是漏洞的源头,他说。实际上,在 Rust 中我们无需考虑这个问题,这太不可思议了,因为我们能够编写出与 C/C++ 相同级别的效率代码,同时不必担心所有这些问题。

Eliashiv 表示,对于处理敏感企业信息的数据管道来说,这不仅仅是为了防止系统崩溃,更是为了防止可能导致数据泄露或数据损坏的内存错误。

Rust 开发的现实

然而,Rust 的采纳并非没有挑战。与 Python 丰富的预构建数据连接器生态系统不同,Rust 需要从零开始构建基础设施。

基础设施的初步建设花费了一些时间,因为……使用 Rust 编写连接器的人并不多,”Eliashiv 承认。该团队投入了大量时间来构建能够处理他们需要支持的各种 REST API 和数据格式的基础。

然而,一旦基础设施到位,开发速度就会提升。Rust 编译器的严格检查能够在编译时而非运行时捕获错误,从而缩短调试周期并提高代码质量的信心,他说。

扩展 Rust 团队

尽管如此,人才问题仍然是 Rust 采纳过程中的一个主要障碍。Eliashiv 的方法是有序的——从公司中最优秀的工程师开始,建立模式和基础设施,然后逐步扩大范围。

我们选择了公司里最优秀的工程师,并为这个产品组建了一个特别团队,他们是第一批学习 Rust 的人,他解释说。许多人都有 和 C++ 的背景,这使得过渡变得更加容易。

作为额外的好处,Rust 的严格编译器成为了一项培训优势。与 Python 不同,[新开发人员]破坏代码的可能性非常小,因为有一个编译器,它可以确保你不会出错,”Eliashiv 说。我们更有信心让新人入职,并交给他们明确的任务。

他补充说,像 Cursor 这样的人工智能编码工具帮助加速了这一过程,帮助开发人员理解 Rust 概念,甚至实现了跨职能的贡献。

超越数据管道:Rust 不断扩展的范围

Rust编程语言的影响远不止于 ELT 平台。

我认为 Rust 有一个实时变体,你没有完整的标准库,但你可以编写超高效的代码,”Eliashiv 说。我认为它对于所有这些不同类型的用例来说都很棒。

这样指出

编译:场长

参考:

Rust Eats Python's, Java’s Lunch in Data Engineering

评论