DuckDB 到底能处理多大的数据?

文摘   2024-10-28 17:23   湖北  

最近DuckDB在国内越来越火,很多人都会问一个问题,DuckDB到底能处理多大数据集,1TB, 10TB 还是 100TB?

其实我还真没考虑过这个问题,我工作中根本没有碰到过这样体量的数据,我的硬盘最大也才1TB。

不过既然有人问了,我也有些好奇,自己不跑,看看别人的报告也是好的,还真是让我找到了一份,这里分享给大家。

想必很多人都看了昨天分享给大家的多款OLAP数据库大比拼。今天的这份报告依然以顺利完成22个TPC-H Query为基准。

本机模式(Macbook Pro)

 

 

云服务器(AWS)

结论

  • • 本地+小型?

选择 DuckDB 或 Polars。对于小型数据(10GB 或更小),Polars 和 DuckDB(或 pandas)非常合适。而 Dask 和 Spark 在这种配置下性能会损失很多。

  • • 本地+大数据?

选择 Dask 或 DuckDB。对于更大的数据,Polars 尚未完全稳定。不过,Polars 正在快速改进,并且是这个组中最动态的项目。DuckDB 更可靠(Dask 也是,但速度慢)。Spark 在这里很容易失败。如果你想对 100GB 本地数据执行 SQL 查询,DuckDB 是明智的选择。

  • • 云存储空间在 1 TB 以下?

选择 Dask 或 DuckDB。对于能够放入单个云虚拟机的数据集,Dask 和 DuckDB 通常优于 Spark 和 Polars。当我们迁移到云端时,快速本地系统(Polars/DuckDB)和分布式系统(Dask/Spark)之间的性能差距会很大,这主要是因为 S3 访问瓶颈(即使你速度很快,但如果等待 S3 获取数据,也是无济于事)。DuckDB 在相同硬件上跨不同规模表现良好,但无法扩展到单个虚拟机之外。

  • • 大规模云计算?

选择 Dask 或 Spark。DuckDB 在单个大型虚拟机上可以像 Dask 或 Spark 一样高效,但如果你想快速处理大量数据,最终需要一个可扩展的系统。Dask 和 Spark 可以通过添加更多硬件在更大的问题上胜过 DuckDB 和 Polars。对于大规模计算,Dask 通常优于 Spark,并且可以很好地扩展,超过 DuckDB 和 Polars。

有兴趣的可以看看这篇文章https://docs.coiled.io/blog/tpch.html

Python学习杂记
数据分析与挖掘、运筹优化、机器学习、AI 、数据可视化等。
 最新文章