前面有说过,DuckDB的创建者一开始就放弃了分布式,然后就有同学提出质疑,DuckDB会有性能瓶颈。我只想说,目前DuckDB可以说是单机场景下大数据量分析的最佳选择。
本文,我将为同学们演示DuckDB在百亿级数据量下的性能表现,我感觉我已经彻底魔怔了,百亿级数据量意味着什么?
百亿级数据是多少
我们假设一家企业每天可以产生1000万的数据量,那么产生100亿的数据量就需要1000天(超过两年半)。
我们按照前文3亿数据量,CSV文件约9GB,那么100亿就是300G。这个数据量我相信这个世界上已经没有几个单机可以处理这个CSV文件了。
此情此景,如何解决呢?
答案就是Parquet。
Parquet是什么
Parquet又称Apache Parquet,是Apache Hadoop生态系统的一种免费、开源的面向列的数据存储格式。
Parquet优点
-
数据压缩
-
列式存储
-
与编程语言无关
-
开源格式,免费使用
-
支持复杂数据类型
创建超百亿的数据量
- 创建数据库文件并创建表
CREATE TABLE weather (
city VARCHAR,
temp_lo INTEGER,
temp_hi INTEGER,
prcp REAL,
date DATE
);
- 插入数据
INSERT IN