DuckDB 主要是为结构化数据查询设计的,专注于高效处理和分析大规模数据集。它支持多种流行的数据存储格式,如 Parquet、CSV 和 SQLite,使得在处理这些格式时,无需进行额外的转换。DuckDB 的核心优势在于其轻量级架构和内存数据库设计,能够在本地机器上快速执行复杂的 SQL 查询,提供与传统数据库类似的功能,而无需设置复杂的服务器或集群。此外,DuckDB 还支持嵌入式使用,可以方便地集成到 Python、R 等数据科学环境中,成为数据分析工作流程中的一个高效工具。
安装:Using the DuckDB CLI | MotherDuck Docs
基础教程:MotherDuck and DuckDB Tutorial | MotherDuck Docs
wget https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip
unzip duckdb_cli-linux-amd64.zip
### add to user .bashrc
一些常用的结构化查询语句:
- 列出文件前10行
duckdb -s "SELECT * FROM 'yourfile.parquet' LIMIT 10"
- 列出文件的所有列
duckdb -s "DESCRIBE SELECT * FROM read_parquet('yourfile.parquet')"
- 根据列名构建查询:
duckdb -s "SELECT column0,column1 FROM 'yourfile.parquet' LIMIT 5"
- 条件化过滤:
从文件中选择所有列,然后过滤column_A大于100且column_B中以AAA开头的结果
duckdb -s "SELECT * FROM 'yourfile.parquet' WHERE column_A >= 100 AND column_B LIKE 'AAA%' "
- 读取CSV格式的文件:
duckdb -s "SELECT * FROM read_csv_auto('annnot_metadata.csv')"