我们在 100 万行上对 DuckDB、SQLite 和 Pandas 进行了基准测试:以下是发生的情况

查看 DuckDB、SQLite 和 Pandas 在百万行数据集上的速度和内存效率比较结果。

来源:KDnuggets
作者图片

# 简介

#

如今有许多用于处理数据集的工具。他们都声称——当然他们确实如此——他们是你最好、最正确的选择。但他们是吗?这些工具应满足两个主要要求:即使在大型数据集的压力下,它们也应轻松执行日常数据分析操作并且快速执行。

为了确定 DuckDB、SQLite 和 Pandas 中最好的工具,我们在这些条件下对它们进行了测试。

DuckDB SQLite 熊猫

首先,我们只给他们日常分析任务:求和、按类别分组、按条件过滤以及多字段聚合。与旨在展示工具最佳特性的场景相比,这反映了分析师实际如何处理真实数据集。

其次,我们对超过 100 万行的 Kaggle 数据集执行了这些操作。这是一个现实的临界点——小到足以在单台机器上运行,但又大到内存压力和查询速度开始揭示工具之间的明显差异。

让我们看看这些测试进行得如何。

# 我们使用的数据集

// 数据集概述

//

我们使用了 Kaggle 的 Bank 数据集。该数据集包含超过 100 万行,包括五列:

Kaggle 列名称 说明 日期 交易发生日期 领域 业务类别或类型(零售、餐厅) 位置 地理区域(果阿、马图拉) Value 交易值 Transaction_count 当日交易总数
列名称描述 列名称 描述 Date交易发生的日期Domain业务类别或类型(零售、餐厅)位置地理区域(果阿、马图拉)Value交易值Transaction_count当天的交易总数 Date交易发生的日期 日期 交易发生的日期 域名业务类别或类型(零售、餐厅) 域 业务类别或类型(零售、餐厅) 位置地理区域(果阿、马图拉) 位置 地理区域(果阿、马图拉) 值 数据框