你可能已经从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优化
->
lanner生成ExecutionPlan
->Scheduler调度执行
->
latform运行任务
map()、filter()和partial_sql()等操作使用惰性求值(lazy evaluation)。它不会立即执行这些操作,而是构建一个逻辑执行计划,表现为一个有向无环图(DAG),每个操作成为一个节点SqlEngineNodeHashPartitionNode、DataSourceNode。直到你显式触发执行操作时,才会真正开始计算。这些触发操作包括:
write_parquet()— 将数据写入磁盘
to_pandas()— 将结果转换为pandas
DataFrame
compute()— 显式强制计算count()— 统计行数take()— 获取部分数据行这种惰性求值机制非常高效,因为它避免了不必要的计算,并优化了工作流程。
SqlEngineTask、HashPartitionTask)组成的执行计划。这些任务是实际的工作单元,由Ray进行分发和执行。每个分区在其自己的Ray任务中独立运行,使用DuckDB实例处理SQL查询。这种与Ray的紧密集成强调了水平扩展(增加更多节点)而非垂直扩展(使用更强大的单节点)。要在规模上使用它,你需要一个Ray集群。你可以选择在自己的基础设施或云提供商(如AWS)上运行Ray集群,但如果你只是想测试一下,使用Anyscale会更容易上手。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |