|
发表于 2025-8-16 16:28:15
|
显示全部楼层
注意:DuckDB不是编程语言,而是一个嵌入式数据库系统!它通过SQL和API与多种编程语言交互。以下是核心介绍:
DuckDB 核心特点:
- 嵌入式数据库:无需独立服务器,直接集成到应用程序中
- OLAP 优化:为分析型查询设计(非事务处理)
- 支持标准 SQL:兼容 SQLite 语法并扩展分析功能
- 多语言绑定:Python/R/Java/C++/Node.js 等
常用编程语言对接示例:
1. Python 示例
安装库:
基础操作:
- import duckdb
- # 创建内存数据库
- con = duckdb.connect(database=':memory:')
- # 执行SQL
- con.execute("CREATE TABLE users (id INTEGER, name VARCHAR)")
- con.execute("INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob')")
- # 查询数据
- result = con.execute("SELECT * FROM users").fetchall()
- print(result) # 输出 [(1, 'Alice'), (2, 'Bob')]
- # 直接读取CSV
- data = con.execute("SELECT * FROM 'data.csv'").df()
复制代码
2. R 语言示例
安装:
- install.packages("duckdb")
复制代码
操作:
- library(duckdb)
- con <- dbConnect(duckdb::duckdb(), dbdir=":memory:")
- dbWriteTable(con, "mtcars", mtcars)
- result <- dbGetQuery(con, "SELECT mpg, cyl FROM mtcars WHERE hp > 100")
- print(head(result))
复制代码
3. 命令行使用(类似SQLite)
- # 启动交互终端
- duckdb mydatabase.db
- # 执行SQL
- D SELECT 'Hello DuckDB' AS message;
复制代码
典型应用场景:
- 替代 Pandas 处理内存放不下的数据
- 桌面端数据分析工具嵌入
- 替换 SQLite 需要复杂分析的场景
- 科学计算中间层
重要提示:
DuckDB 不是通用编程语言,而是通过 SQL + 宿主语言API 操作的分析型数据库。其核心优势在于高性能的列式存储和向量化计算引擎。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|