微信扫码
添加专属顾问
我要投稿
DeepSeek Smallpond:解析新兴轻量级分布式数据处理框架 核心内容: 1. Smallpond框架及其扩展DuckDB的分布式分析能力 2. 3FS文件系统在AI和HPC工作负载中的性能优势 3. Smallpond的实际安装和使用指南
你可能已经从Twitter/LinkedIn的热议中听说了smallpond。从这些热议中,你可能会得出结论:Databricks和Snowflake已经完蛋了。别急,事实并非如此。
尽管这项开源技术很有趣且功能强大,但它短期内不太可能在分析领域被广泛使用。以下是一个简明的解析,帮助你透过喧嚣看清本质。我们将涵盖以下内容:
1.smallpond及其配套系统3FS是什么
2.它们是否适合你的使用场景
3.如果适合,如何使用它们
什么是smallpond?
smallpond是DeepSeek最近推出的一款轻量级分布式数据处理框架。它扩展了DuckDB(通常是一个单节点分析数据库),使其能够跨多个节点处理更大的数据集。smallpond通过使用分布式存储和计算系统,让DuckDB能够管理分布式工作负载。主要特性:
1.分布式分析:通过数据分区和并行运行分析任务,使DuckDB能够处理超出单机内存容量的数据集。
2.开源部署:如果你能成功运行它,3FS将为你提供强大且高性能的存储,成本远低于其他替代方案。
3.手动分区:用户需要手动对数据进行分区,smallpond会将这些分区分布到多节点上进行并行处理。
什么是3FS?
3FS,全称为Fire-Flyer File System,是深度求索开发的一款高性能并行文件系统。它专门为AI和高性能计算(HPC)工作负载优化,通过使用SSD和RDMA网络技术,提供了极高的吞吐量和低延迟。
3FS是smallpond依赖的高速分布式存储后端,为其提供了惊人的性能。3FS在180个节点的集群上实现了6.6 TiB/s的读取吞吐量,远超许多传统分布式文件系统。
如何使用它?首先,和安装其他Python包一样,使用以下命令安装:pip install smallpond。但要真正发挥smallpond的优势,还需要更多的努力,具体取决于你的数据规模和基础设施:
1.小于10TB:除非你有非常特定的分布式计算求,否则smallpond可能并不必要。单节点的DuckDB实例或更简单的存储解决方案会更简单,甚至可能性能更好。坦白说,在小规模数据下使用smallpond(没有Ray或3FS)可能会比原版DuckDB更慢,也更复杂。
2.10TB到1PB:smallpond开始展现其优势。你需要设置一个集群,利用3FS或其他高速存储后端来实现快速并行处理。
3.超过1PB(PB级规模):smallpond和3FS正是为处理海量数据集而设计的。在这个规模下,你需要部署一个更大的集群,并进行大量的基础设施投资。
其中,步骤1和步骤3非常简单,但步骤2非常困难。由于3FS是新技术,目前还没有关于如何在AWS或其他云平台上设置它的指南(也许深度求索未来会提供相关支持?)。你当然可以在裸金属服务器上部署它,但这会让你陷入更深层次的DevOps困境。
我尝试过用S3替换3FS来运行smallpond,但对于中等规模的数据,尚不清楚这样做是否能带来比单节点扩展更好的性能提升。
Session
DataFrame
Platform
LogicalPlan
表示整个计算的DAG(有向无环图)
由 Node 组成
可以被优化和转换为执行计划
Node (逻辑节点)
Task
Scheduler
WorkQueue
Session
-> 创建 DataFrame
-> 构建 LogicalPlan
-> Optimizer 优化
-> Planner 生成 ExecutionPlan
-> Scheduler 调度执行
-> Platform 运行任务
map()
、filter()
和partial_sql()
等操作使用惰性求值(lazy evaluation)。它不会立即执行这些操作,而是构建一个逻辑执行计划,表现为一个有向无环图(DAG),每个操作成为一个节点SqlEngineNode
HashPartitionNode
、DataSourceNode
。直到你显式触发执行操作时,才会真正开始计算。这些触发操作包括:
write_parquet()
— 将数据写入磁盘
to_pandas()
— 将结果转换为pandas
DataFrame
compute()
— 显式强制计算count()
— 统计行数take()
— 获取部分数据行这种惰性求值机制非常高效,因为它避免了不必要的计算,并优化了工作流程。
SqlEngineTask
、HashPartitionTask
)组成的执行计划。这些任务是实际的工作单元,由Ray进行分发和执行。每个分区在其自己的Ray任务中独立运行,使用DuckDB实例处理SQL查询。这种与Ray的紧密集成强调了水平扩展(增加更多节点)而非垂直扩展(使用更强大的单节点)。要在规模上使用它,你需要一个Ray集群。你可以选择在自己的基础设施或云提供商(如AWS)上运行Ray集群,但如果你只是想测试一下,使用Anyscale会更容易上手。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-06
vllm近期更新的一些trick总结
2025-04-06
Meta Llama 4 全面解析:全新的原生多模态 AI
2025-04-06
字节跳动开源神器Agent TARS,AI自动化时代真来了
2025-04-06
一文读懂开源 Llama 4 模型
2025-04-06
Meta深夜开源Llama 4!首次采用MoE,惊人千万token上下文,竞技场超越DeepSeek
2025-04-06
Meta 对 DeepSeek 的回应来了:Llama 4 发布,上下文长达 1000 万,参数超 2 万亿!
2025-04-06
Colab上运行Gemma 3 + Ollama:开发者快速入门指南
2025-04-06
开源LLaMA 4 发布,288B参数巨擘,传统RAG可能原地失业!
2025-01-01
2024-07-25
2025-01-21
2024-05-06
2024-09-20
2024-07-20
2024-06-12
2024-07-11
2024-08-13
2024-12-26
2025-04-03
2025-04-03
2025-04-03
2025-04-01
2025-03-31
2025-03-25
2025-03-25
2025-03-24