基于 ClickHouse 引擎的 Python 嵌入式数据库 chDB

2023-04-25 21:52:27 +08:00
 auxten

大家好,我做了个小玩意儿。

基于 ClickHouse 引擎的 Python 嵌入式数据库 chDB 。由于 ClickHouse 的强大功能,chDB 支持在几乎所有的数据文件格式上运行 SQL ,输出 60 多种格式。

特性

安装

目前,chDB 仅支持 macOS ( x86_64 和 ARM64 )和 Linux 上的 Python 3.7+。

pip install chdb

用法

目前 chDB 只支持query函数,用于执行 SQL ,返回想要的格式数据。

import chdb
res = chdb.query('select version()', 'CSV'); print(str(res.get_memview().tobytes()))

使用 Parquet 或 CSV 作为输出

chdb.query('select * from file("data.parquet", Parquet)', 'CSV')
chdb.query('select * from file("data.csv", CSV)', 'CSV')

Pandas 格式输出

chdb.query('select * from file("data.parquet", Parquet)', 'Dataframe')

Demos

Benchmark

Documentation

881 次点击
所在节点    数据库
6 条回复
kongsys
2023-04-26 07:35:07 +08:00
一楼抢个沙发,顶一下
daxin945
2023-04-26 17:06:47 +08:00
已经 star 加油
ayogo
2023-05-02 05:34:16 +08:00
有种东西叫做 duckdb ,和你做的这个功能基本上一样
auxten
2023-05-04 22:15:14 +08:00
@ayogo 你说的对,其实 dask ,data.table ,dplyr ,pandas ,(py)datatable ,spark ,ClickHouse ,Polars ,Arrow ,DuckDB 都可以说是类似的东西。无非是用 Python 在数据上跑 SQL
ayogo
2023-05-04 22:54:52 +08:00
@auxten 我是指 duckdb 和大佬做的都是这种基于文件的进程内 SQL 引擎。我对 spark 不是很清楚,我们目前主要是 ray+pandas+clickhouse/citus 这样做一些 olap 场景的数据分析。最近也在关注类似于 duckdb 和大佬这种 chdb 的这种嵌入式处理模式,想把数据源从 clickhouse 切到 s3 的 parquet 文件上。很早之前也看了大佬的项目,已 star 加油(›´ω`‹ )
auxten
2023-05-04 23:35:33 +08:00
@ayogo 谢谢支持,也欢迎多多提建议

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/935479

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX