V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
auxten
V2EX  ›  数据库

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

  •  1
     
  •   auxten · Apr 25, 2023 · 1613 views
    This topic created in 1097 days ago, the information mentioned may be changed or developed.

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

    基于 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  
       Apr 26, 2023
    一楼抢个沙发,顶一下
    haoyunyinglai
        2
    haoyunyinglai  
       Apr 26, 2023
    已经 star 加油
    ayogo
        3
    ayogo  
       May 2, 2023 via Android
    有种东西叫做 duckdb ,和你做的这个功能基本上一样
    auxten
        4
    auxten  
    OP
       May 4, 2023
    @ayogo 你说的对,其实 dask ,data.table ,dplyr ,pandas ,(py)datatable ,spark ,ClickHouse ,Polars ,Arrow ,DuckDB 都可以说是类似的东西。无非是用 Python 在数据上跑 SQL
    ayogo
        5
    ayogo  
       May 4, 2023 via Android
    @auxten 我是指 duckdb 和大佬做的都是这种基于文件的进程内 SQL 引擎。我对 spark 不是很清楚,我们目前主要是 ray+pandas+clickhouse/citus 这样做一些 olap 场景的数据分析。最近也在关注类似于 duckdb 和大佬这种 chdb 的这种嵌入式处理模式,想把数据源从 clickhouse 切到 s3 的 parquet 文件上。很早之前也看了大佬的项目,已 star 加油(›´ω`‹ )
    auxten
        6
    auxten  
    OP
       May 4, 2023
    @ayogo 谢谢支持,也欢迎多多提建议
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5788 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 07:09 · PVG 15:09 · LAX 00:09 · JFK 03:09
    ♥ Do have faith in what you're doing.