关于 DuckDB CLI
DuckDB 是一个嵌入式 SQL 数据库引擎,无需安装服务器即可在本地运行。通过命令行界面可以直接查询 CSV、Parquet、JSON 等多种格式的文件,适合数据分析和探索工作流。
主要功能
- 01查询 CSV、Parquet、JSON 等本地文件格式
- 02执行分析性 SQL 查询并输出结果
- 03通过 -c 标志运行单行命令或脚本
- 04交互式 REPL 环境探索数据
适用场景
- 01Agent 快速分析和转换本地数据集
- 02编码 Agent 在工作流中查询结构化数据
- 03数据工程师原型设计数据处理管道
- 04开发人员检查和验证数据文件内容
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行duckdb --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
DuckDB
DuckDB 是一款高性能分析型数据库系统,旨在实现快速、可靠、可移植且易于使用。DuckDB 在应用程序进程内运行,无需管理独立服务,也不依赖外部组件。它还可以读取远程文件、查询其他数据库,并在需要时连接其他 DuckDB 实例。它提供丰富的 SQL 方言,支持远超基础 SQL 的功能:任意形式的嵌套相关子查询、窗口函数、排序规则和复杂类型(数组、结构体、映射)。易用 SQL 扩展加入了让查询更简短、更易编写的语法。
DuckDB 提供独立的命令行应用程序,并为 Python、R、Java、Rust、Go、Wasm 等更多平台提供客户端,还与 pandas 等软件包深度集成。
有关如何使用 DuckDB 的更多信息,请参阅 DuckDB 文档。
读写任意数据
DuckDB 可以直接从本地磁盘或 S3、HTTP(S)、Azure 和 Google Cloud Storage 等远程端点读写多种文件格式,包括 CSV、Parquet、JSON 和 Excel。对于 CSV、Parquet 和 JSON 等多种格式,只需在 FROM 子句中引用文件即可轻松加载数据:
SELECT * FROM 'myfile.csv';
SELECT * FROM 'myfile.parquet';
DuckDB 还支持开放的湖仓格式。DuckLake 将表元数据存储在 SQL 数据库中,而非元数据文件中,因此无需独立的目录服务,同时仍支持 ACID 事务、快照和时间旅行。DuckDB 还支持 Apache Iceberg 和 Delta Lake 格式。更多信息请参阅我们的数据导入部分。
连接到其他数据库
DuckDB 可以附加到其他数据库系统并就地查询数据,因此你可以跨引擎读取、联接和移动数据,而无需单独执行 ETL 步骤。它支持 PostgreSQL、MySQL 和 SQLite 的原生协议。
DuckDB 实例还可以通过 quack 协议相互连接,该协议可将一个 DuckDB 实例变为服务,让其他 DuckDB 客户端通过 HTTP 附加到该服务。
可扩展
DuckDB 采用模块化的扩展机制:核心扩展与 DuckDB 一同打包,而社区和第三方扩展可在运行时安装并加载。扩展可添加文件格式、数据库连接器、新函数、新类型等。
安装
如果你想安装 DuckDB,请参阅安装页面了解相关说明。
SQL 参考
文档中包含 SQL 入门与参考。
开发
开发 DuckDB 需要 CMake、Python 3 和符合 C++17 标准的编译器。在根目录中运行 make 以编译源代码。开发时,使用 make debug 可构建未优化的调试版本。进行更改后,应运行 make unit 和 make allunit,以验证版本是否正常工作。若要测试性能,可以运行 BUILD_BENCHMARK=1 BUILD_TPCH=1 make,然后在根目录中执行 ./build/release/benchmark/benchmark_runner,运行几项标准基准测试。基准测试详情请参阅基准测试指南。
支持
请参阅支持选项页面以及专门的 endoflife.date 页面。