chDB
chDB 是一个快速的进程内 SQL OLAP 引擎,由 ClickHouse v25.8.2.1 提供支持。当您希望在编程语言中使用 ClickHouse 的强大功能而又无需连接到 ClickHouse 服务器时,可以使用它。
主要特性
- 进程内 SQL OLAP 引擎 - 由 ClickHouse 驱动,无需安装 ClickHouse 服务器
- 多种数据格式 - 输入和输出支持 Parquet、CSV、JSON、Arrow、ORC 以及 70 多种其他格式
- 最小化数据复制 - 通过 python memoryview 实现从 C++ 到 Python 的高效传输
- 丰富的 Python 生态系统集成 - 原生支持 Pandas、Arrow、DB API 2.0,无缝融入现有的数据科学工作流
- 零依赖 - 无需安装外部数据库
- DataStore API - 兼容 Pandas 的 API 并具备 SQL 优化功能,支持 630 多种方法
DataStore: 兼容 Pandas 的 API
新功能! DataStore 提供了一个兼容 pandas 的 API,将熟悉的 pandas 语法与 ClickHouse 的性能结合在一起。
一行代码迁移
性能亮点
| 操作 | pandas | DataStore | 加速倍数 |
|---|---|---|---|
| GroupBy count | 347ms | 17ms | 19.93x |
| 复杂管道 | 2,047ms | 380ms | 5.39x |
| Filter+Sort+Head | 1,537ms | 350ms | 4.40x |
1000 万行数据的基准测试
DataStore 特性
- 630 多个 API 方法 - 209 个 pandas DataFrame 方法,185 多个访问器 (accessor) 方法
- 惰性求值 - 操作将编译为优化的 SQL
- SQL 下推 - 过滤和聚合操作在数据源端运行
- 通用数据源 - 从文件、S3、数据库、数据湖中读取
了解更多:DataStore 文档
chDB 支持哪些语言?
chDB 拥有以下语言绑定
如何开始使用?
致 pandas 用户
从 DataStore API 开始,以熟悉的 pandas 体验享受 ClickHouse 的高性能
- DataStore 快速入门 - 安装与一行代码迁移
- 从 pandas 迁移 - 逐步迁移指南
- Pandas 手册 - 常用模式
- 主要差异 - 与 pandas 的重要区别
- 性能指南 - 优化技巧
DataStore API 参考
- 工厂方法 - 从文件、数据库、云存储创建
- 查询构建 - SQL 风格的操作
- Pandas 兼容性 - 209 个兼容方法
- 访问器 (Accessors) - .str, .dt, .arr, .json, .url, .ip, .geo
- 配置 - 引擎、日志、分析
- 调试 - explain()、分析、日志
SQL API 指南
- Python API 参考 - 完整的 SQL API 文档
- JupySQL
- 查询 Pandas
- 查询 Apache Arrow
- 查询 S3 中的数据
- 查询 Parquet 文件
- 查询远程 ClickHouse
- 使用 clickhouse-local 数据库
介绍视频
观看 chDB 的简短介绍,了解它如何将 ClickHouse 的强大功能带入您的 Python 环境
性能基准测试
chDB 在不同场景下均表现出卓越的性能
- 嵌入式引擎 ClickBench - SQL API 性能对比
- DataFrame 基准测试 - DataFrame 引擎对比
- DataStore vs Pandas - 在常用操作上比 pandas 快高达 20 倍
关于 chDB
- 在 博客上阅读关于 chDB 项目诞生的完整故事
- 在 博客上阅读关于 chDB 及其使用场景
- 参加 chDB 随需课程
- 使用 codapi 示例在浏览器中探索 chDB
- 更多示例请见 (https://github.com/chdb-io/chdb/tree/main/examples)
许可
chDB 在 Apache License 2.0 版本下发布。更多信息请参阅 LICENSE。