跳转到主要内容

要求

  • Python 3.8+
  • 支持的平台:macOS 和 Linux (x86_64 和 ARM64)

安装

使用

命令行界面

可直接在命令行中运行 SQL 查询:

Python 基础用法

基于连接的 API (推荐)

为了更好地管理资源并提升性能:

数据输入方式

基于文件的数据源

chDB 支持 70 多种数据格式,可直接对文件进行查询:

输出格式示例

DataFrame 操作

旧版 DataFrame API

有状态会话

会话可在多个操作之间保留查询状态,从而支持更复杂的工作流:

高级会话功能

另见:test_stateful.py

Python DB-API 2.0 接口

与现有 Python 应用程序兼容的标准数据库接口:

用户自定义函数 (UDF)

通过自定义 Python 函数扩展 SQL:

UDF 基础用法

带自定义返回类型的高级 UDF

UDF 最佳实践

  1. 无状态函数:UDF 应为不带副作用的纯函数
  2. 在函数内部导入:所有必需的模块都必须在 UDF 内部导入
  3. String 输入/输出:所有 UDF 参数均为字符串 (TabSeparated 格式)
  4. 错误处理:加入 try-catch 块以增强 UDF 的健壮性
  5. 性能:UDF 会对每一行调用一次,因此应尽量优化性能

流式查询处理

以恒定的内存占用处理大型数据集:

Python 表引擎

查询 Pandas DataFrame 数据

使用 PyReader 自定义数据源

为特定数据源实现自定义数据读取器:

性能与优化

基准测试

chDB 持续优于其他嵌入式引擎:
  • DataFrame 操作:在分析查询中,速度比传统 DataFrame 库快 2–5 倍
  • Parquet 处理:可与领先的列式引擎媲美
  • 内存效率:内存占用低于替代方案
更多基准测试结果详情

性能建议

GitHub 仓库

最后修改于 2026年6月19日