迪卡侬切换至Polars以优化数据管道和基础设施成本

迪卡侬切换至Polars以优化数据管道和基础设施成本

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

迪卡侬通过使用开源库Polars优化数据管道,发现其在处理小于50 GiB的数据时,比Apache Spark更快且成本更低。尽管在Kubernetes上运行Polars存在挑战,但其效率显著提升。

🎯

关键要点

  • 迪卡侬采用开源库Polars优化数据管道,发现其在处理小于50 GiB的数据时比Apache Spark更快且成本更低。

  • 迪卡侬的数据平台在云集群上运行PySpark工作流,数据存储为Delta表,使用AWS Glue作为技术元存储。

  • 虽然该解决方案针对大数据作业进行了优化,但对于较小的数据集(千兆字节或兆字节)来说被认为是次优的。

  • 数据团队开始尝试使用Polars处理较轻或中等大小的工作负载,最初是为了替代遇到扩展问题的pandas工具。

  • Polars的语法与Spark相似,团队决定将一个约50 GiB的Parquet表的Spark作业迁移到Polars。

  • 从Spark云托管集群迁移到单节点Kubernetes pod后,计算启动时间从8分钟减少到2分钟。

  • 启用Polars的新流处理引擎后,数据集处理效率显著提升,单个Kubernetes pod上作业运行效率高。

  • 团队决定在所有新管道中实施Polars,前提是输入表小于50 GiB,大小稳定且不涉及多个连接或复杂聚合。

  • 在Kubernetes上运行Polars存在挑战,需要团队学习如何运行容器服务,并可能导致数据管道在团队之间的跳转变慢。

  • Vennin强调Polars无法读取某些数据集的额外限制,例如使用Liquid Clustering或Column Mapping特性的情况。

🔎

延伸解读

Polars的优势与局限

迪卡侬选择Polars主要是为了处理小于50 GiB的数据集,因其在速度和成本上优于Apache Spark。然而,Polars并不适合所有场景,特别是涉及复杂聚合或多个连接的任务。因此,团队需谨慎评估数据集的特性,以决定是否使用Polars。

Kubernetes上的挑战

虽然Polars在单节点Kubernetes pod上运行效率高,但在Kubernetes环境中部署Polars也带来了新的挑战。团队需要学习如何管理容器服务,这可能导致数据管道在团队之间的流转变慢。因此,团队在实施Polars时需考虑这些管理和安全方面的因素。

数据处理架构的演变

迪卡侬的数据平台采用了Medallion架构来优化数据质量和治理。随着Polars的引入,团队能够更高效地处理小型数据集,这表明数据处理架构正在向更灵活和高效的方向发展。未来,如何平衡不同工具的使用将是关键。

延伸问答

迪卡侬为什么选择使用Polars来优化数据管道?

迪卡侬选择Polars是因为它在处理小于50 GiB的数据时比Apache Spark更快且成本更低。

Polars在数据处理方面有哪些优势?

Polars的优势包括更快的计算速度和更低的成本,尤其是在处理小型数据集时。

在Kubernetes上运行Polars存在哪些挑战?

在Kubernetes上运行Polars的挑战包括需要学习如何管理容器服务,并可能导致数据管道在团队之间的跳转变慢。

迪卡侬的数据平台是如何架构的?

迪卡侬的数据平台采用Medallion架构,使用AWS S3存储Delta表,并通过MWAA管理工作流。

Polars的语法与Spark有什么相似之处?

Polars的语法与Spark相似,这使得团队能够更容易地将Spark作业迁移到Polars。

迪卡侬在使用Polars时有哪些实施限制?

迪卡侬决定仅在输入表小于50 GiB且不涉及复杂聚合的情况下实施Polars。

🏷️

标签

➡️

继续阅读