V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
auxten
V2EX  ›  数据库

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

  •  1
     
  •   auxten · 2023-04-25 21:52:27 +08:00 · 881 次点击
    这是一个创建于 577 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    特性

    • 进程内 SQL OLAP 引擎,由 ClickHouse 提供支持
    • 无需安装 ClickHouse
    • 使用 python memoryview 最大限度地减少从 C++ 到 Python 的数据复制
    • 输入和输出支持 Parquet 、CSV 、JSON 、Arrow 、ORC 和 更多

    安装

    目前,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

    kongsys
        1
    kongsys  
       2023-04-26 07:35:07 +08:00
    一楼抢个沙发,顶一下
    daxin945
        2
    daxin945  
       2023-04-26 17:06:47 +08:00
    已经 star 加油
    ayogo
        3
    ayogo  
       2023-05-02 05:34:16 +08:00 via Android
    有种东西叫做 duckdb ,和你做的这个功能基本上一样
    auxten
        4
    auxten  
    OP
       2023-05-04 22:15:14 +08:00
    @ayogo 你说的对,其实 dask ,data.table ,dplyr ,pandas ,(py)datatable ,spark ,ClickHouse ,Polars ,Arrow ,DuckDB 都可以说是类似的东西。无非是用 Python 在数据上跑 SQL
    ayogo
        5
    ayogo  
       2023-05-04 22:54:52 +08:00 via Android
    @auxten 我是指 duckdb 和大佬做的都是这种基于文件的进程内 SQL 引擎。我对 spark 不是很清楚,我们目前主要是 ray+pandas+clickhouse/citus 这样做一些 olap 场景的数据分析。最近也在关注类似于 duckdb 和大佬这种 chdb 的这种嵌入式处理模式,想把数据源从 clickhouse 切到 s3 的 parquet 文件上。很早之前也看了大佬的项目,已 star 加油(›´ω`‹ )
    auxten
        6
    auxten  
    OP
       2023-05-04 23:35:33 +08:00
    @ayogo 谢谢支持,也欢迎多多提建议
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2732 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:35 · PVG 22:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.