{"id":13436015,"url":"https://github.com/chdb-io/chdb","last_synced_at":"2026-03-10T06:10:53.947Z","repository":{"id":143614015,"uuid":"606433492","full_name":"chdb-io/chdb","owner":"chdb-io","description":"chDB is an in-process OLAP SQL Engine 🚀 powered by ClickHouse ","archived":false,"fork":false,"pushed_at":"2026-02-26T12:56:50.000Z","size":936331,"stargazers_count":2618,"open_issues_count":43,"forks_count":102,"subscribers_count":31,"default_branch":"main","last_synced_at":"2026-02-26T13:51:18.769Z","etag":null,"topics":["chdb","clickhouse","clickhouse-database","clickhouse-server","data-science","database","embedded-database","olap","python","sql"],"latest_commit_sha":null,"homepage":"https://clickhouse.com/chdb","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chdb-io.png","metadata":{"files":{"readme":"README-zh.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["chdb-io"]}},"created_at":"2023-02-25T13:35:14.000Z","updated_at":"2026-02-26T12:56:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"c977e7cb-e738-43de-962d-82106c3b4d4a","html_url":"https://github.com/chdb-io/chdb","commit_stats":{"total_commits":1322,"total_committers":15,"mean_commits":88.13333333333334,"dds":"0.35552193645990926","last_synced_commit":"8a84df2b25b2cb4ecdbabf9161f06411802d1d7d"},"previous_names":["auxten/chdb"],"tags_count":79,"template":false,"template_full_name":null,"purl":"pkg:github/chdb-io/chdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdb-io%2Fchdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdb-io%2Fchdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdb-io%2Fchdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdb-io%2Fchdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chdb-io","download_url":"https://codeload.github.com/chdb-io/chdb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chdb-io%2Fchdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chdb","clickhouse","clickhouse-database","clickhouse-server","data-science","database","embedded-database","olap","python","sql"],"created_at":"2024-07-31T03:00:42.326Z","updated_at":"2026-03-10T06:10:53.931Z","avatar_url":"https://github.com/chdb-io.png","language":"C++","readme":"\u003cdiv align=\"center\"\u003e\n   \u003ca href=\"https://clickhouse.com/blog/chdb-joins-clickhouse-family\"\u003e📢 chDB joins the ClickHouse family 🐍+🚀\u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/_static/snake-chdb-dark.png\" height=\"130\"\u003e\n  \u003cimg src=\"docs/_static/snake-chdb.png\" height=\"130\"\u003e\n\u003c/picture\u003e\n\n[![构建状态](https://github.com/chdb-io/chdb/actions/workflows/build_linux_x86_wheels.yml/badge.svg?branch=main)](https://github.com/chdb-io/chdb/actions/workflows/build_linux_x86_wheels.yml)\n[![PyPI](https://img.shields.io/pypi/v/chdb.svg)](https://pypi.org/project/chdb/)\n[![Downloads](https://static.pepy.tech/badge/chdb)](https://pepy.tech/project/chdb)\n[![Discord](https://img.shields.io/discord/1098133460310294528?logo=Discord)](https://discord.gg/D2Daa2fM5K)\n[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social\u0026label=Twitter)](https://twitter.com/chdb_io)\n\u003c/div\u003e\n\n# chDB\n\n[English](README.md)\n\n\u003e chDB 是一个由 ClickHouse 驱动的嵌入式 SQL OLAP 引擎。更多细节：[chDB: ClickHouse as a Function](https://zhuanlan.zhihu.com/p/642345300)\n\n\n## 特点\n     \n* 嵌入在 Python 中的 SQL OLAP 引擎，由 ClickHouse 驱动\n* 不需要安装 ClickHouse\n* 支持 Parquet、CSV、JSON、Arrow、ORC 和其他 60 多种格式的[输入输出](https://clickhouse.com/docs/en/interfaces/formats)，[示例](tests/format_output.py)。\n* 支持 Python DB API 2.0 标准, [example](examples/dbapi.py)\n\n## 架构\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/_static/arch-chdb3.png\" width=\"450\"\u003e\n\u003c/div\u003e\n\n## 安装方式\n目前，chDB 只支持在 macOS（x86_64 和 ARM64）和 Linux 上的 Python 3.9+。\n```bash\npip install chdb\n```\n\n## 用法\n\n### 在命令行中运行\n\u003e `python3 -m chdb SQL [OutputFormat]`\n```bash\npython3 -m chdb \"SELECT 1,'abc'\" Pretty\n```\n\n\n有三种使用 chdb 的方法：“原始文件查询（性能）”、“高级查询（推荐）”和“DB-API”：\n\u003cdetails\u003e\n    \u003csummary\u003e\u003ch4\u003e🗂️ 原始文件查询\u003c/h4\u003e（Parquet、CSV、JSON、Arrow、ORC 等 60 多种格式）\u003c/summary\u003e\n\n您可以执行 SQL 并返回所需格式的数据。\n\n```python\nimport chdb\nres = chdb.query('select version()', 'Pretty'); print(res)\n```\n\n### 使用 Parquet 或 CSV\n```python\n# 查看更多数据类型格式，请参见 tests/format_output.py\nres = chdb.query('select * from file(\"data.parquet\", Parquet)', 'JSON'); print(res)\nres = chdb.query('select * from file(\"data.csv\", CSV)', 'CSV');  print(res)\nprint(f\"SQL read {res.rows_read()} rows, {res.bytes_read()} bytes, elapsed {res.elapsed()} seconds\")\n```\n\n### 参数化查询\n```python\nimport chdb\n\ndf = chdb.query(\n    \"SELECT toDate({base_date:String}) + number AS date \"\n    \"FROM numbers({total_days:UInt64}) \"\n    \"LIMIT {items_per_page:UInt64}\",\n    \"DataFrame\",\n    params={\"base_date\": \"2025-01-01\", \"total_days\": 10, \"items_per_page\": 2},\n)\nprint(df)\n#         date\n# 0 2025-01-01\n# 1 2025-01-02\n```\n\n### 查询进度（`progress=auto`）\n```python\nimport chdb\n\n# Connection API\nconn = chdb.connect(\":memory:?progress=auto\")\nconn.query(\"SELECT sum(number) FROM numbers_mt(1e10) GROUP BY number % 10 SETTINGS max_threads=4\")\n```\n\n```python\nimport chdb\n\n# 一次性 query API\nres = chdb.query(\n    \"SELECT sum(number) FROM numbers_mt(1e10) GROUP BY number % 10 SETTINGS max_threads=4\",\n    options={\"progress\": \"auto\"},\n)\n```\n\n`progress=auto` 的行为：\n- 在终端运行时：在终端中显示文本进度更新。\n- 在 Jupyter/Marimo 中：在 notebook 输出区域渲染进度。\n\n其他进度选项：\n- 进度条：\n  - `progress=tty`：将进度输出到终端 TTY。\n  - `progress=err`：将进度输出到 `stderr`。\n  - `progress=off`：关闭进度条输出。\n- 进度表（终端输出）：\n  - `progress-table=tty`：将进度表输出到终端 TTY。\n  - `progress-table=err`：将进度表输出到 `stderr`。\n  - `progress-table=off`：关闭进度表输出。\n\n更多内容请参见:\n* [ClickHouse SQL语法: 定义和使用查询参数](https://clickhouse.com/docs/sql-reference/syntax#defining-and-using-query-parameters)\n* [ClickHouse中如何使用参数化查询](https://clickhouse.com/videos/how-to-use-query-parameters-in-clickhouse)\n\n### Pandas DataFrame 输出\n```python\n# 更多内容请参见 https://clickhouse.com/docs/en/interfaces/formats\nchdb.query('select * from file(\"data.parquet\", Parquet)', 'Dataframe')\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003e\u003ch4\u003e🗂️ 高级查询\u003c/h4\u003e（Pandas DataFrame、Parquet 文件/字节、Arrow 文件/字节）\u003c/summary\u003e\n\n### 查询 Pandas DataFrame\n```python\nimport chdb.dataframe as cdf\nimport pandas as pd\n# Join 2 DataFrames\ndf1 = pd.DataFrame({'a': [1, 2, 3], 'b': [\"one\", \"two\", \"three\"]})\ndf2 = pd.DataFrame({'c': [1, 2, 3], 'd': [\"①\", \"②\", \"③\"]})\nret_tbl = cdf.query(sql=\"select * from __tbl1__ t1 join __tbl2__ t2 on t1.a = t2.c\",\n                  tbl1=df1, tbl2=df2)\nprint(ret_tbl)\n# Query on the DataFrame Table\nprint(ret_tbl.query('select b, sum(a) from __table__ group by b'))\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch4\u003e🗂️ 基于有状态会话 Session 查询\u003c/h4\u003e\u003c/summary\u003e\n\n```python\nfrom chdb import session as chs\n\n## 在临时会话中创建DB, Table, View，当会话被删除时自动清除。\nsess = chs.Session()\nsess.query(\"CREATE DATABASE IF NOT EXISTS db_xxx ENGINE = Atomic\")\nsess.query(\"CREATE TABLE IF NOT EXISTS db_xxx.log_table_xxx (x String, y Int) ENGINE = Log;\")\nsess.query(\"INSERT INTO db_xxx.log_table_xxx VALUES ('a', 1), ('b', 3), ('c', 2), ('d', 5);\")\nsess.query(\n    \"CREATE VIEW db_xxx.view_xxx AS SELECT * FROM db_xxx.log_table_xxx LIMIT 4;\"\n)\nprint(\"Select from view:\\n\")\nprint(sess.query(\"SELECT * FROM db_xxx.view_xxx\", \"Pretty\"))\n```\n\n参见: [test_stateful.py](tests/test_stateful.py)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003e\u003ch4\u003e🗂️ Python DB-API 2.0\u003c/h4\u003e\u003c/summary\u003e\n\n```python\nimport chdb.dbapi as dbapi\nprint(\"chdb driver version: {0}\".format(dbapi.get_client_info()))\n\nconn1 = dbapi.connect()\ncur1 = conn1.cursor()\ncur1.execute('select version()')\nprint(\"description: \", cur1.description)\nprint(\"data: \", cur1.fetchone())\ncur1.close()\nconn1.close()\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003e\u003ch4\u003e🗂️ Query with UDF(User Defined Functions)\u003c/h4\u003e\u003c/summary\u003e\n\n```python\nfrom chdb.udf import chdb_udf\nfrom chdb import query\n\n@chdb_udf()\ndef sum_udf(lhs, rhs):\n    return int(lhs) + int(rhs)\n\nprint(query(\"select sum_udf(12,22)\"))\n```\n\n参见: [test_udf.py](tests/test_udf.py).\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003e\u003ch4\u003e🗂️ 流式查询\u003c/h4\u003e\u003c/summary\u003e\n\n通过分块流式处理大数据集，保持内存使用恒定。\n\n```python\nfrom chdb import session as chs\n\nsess = chs.Session()\n\n# 示例1：流式查询基础用法\nrows_cnt = 0\nwith sess.send_query(\"SELECT * FROM numbers(200000)\", \"CSV\") as stream_result:\n    for chunk in stream_result:\n        rows_cnt += chunk.rows_read()\n\nprint(rows_cnt) # 200000\n\n# 示例2：使用fetch()手动迭代\nrows_cnt = 0\nstream_result = sess.send_query(\"SELECT * FROM numbers(200000)\", \"CSV\")\nwhile True:\n    chunk = stream_result.fetch()\n    if chunk is None:\n        break\n    rows_cnt += chunk.rows_read()\n\nprint(rows_cnt) # 200000\n\n# 示例3：提前取消查询\nrows_cnt = 0\nstream_result = sess.send_query(\"SELECT * FROM numbers(200000)\", \"CSV\")\nwhile True:\n    chunk = stream_result.fetch()\n    if chunk is None:\n        break\n    if rows_cnt \u003e 0:\n        stream_result.close()\n        break\n    rows_cnt += chunk.rows_read()\n\nprint(rows_cnt) # 65409\n\n# 示例4：使用PyArrow RecordBatchReader进行批量导出以及与其他库集成\nimport pyarrow as pa\nfrom deltalake import write_deltalake\n\n# 获取arrow格式的流式结果\nstream_result = sess.send_query(\"SELECT * FROM numbers(100000)\", \"Arrow\")\n\n# 创建自定义批次大小的RecordBatchReader（默认rows_per_batch=1000000）\nbatch_reader = stream_result.record_batch(rows_per_batch=10000)\n\n# 将RecordBatchReader与外部库（如Delta Lake）一起使用\nwrite_deltalake(\n    table_or_uri=\"./my_delta_table\",\n    data=batch_reader,\n    mode=\"overwrite\"\n)\n\nstream_result.close()\n\nsess.close()\n```\n\n**重要提示**：使用流式查询时，如果`StreamingResult`没有被完全消耗（由于错误或提前终止），必须显式调用`stream_result.close()`来释放资源，或使用`with`语句进行自动清理。否则可能会阻塞后续查询。\n\n参见: [test_streaming_query.py](tests/test_streaming_query.py) 和 [test_arrow_record_reader_deltalake.py](tests/test_arrow_record_reader_deltalake.py)。\n\u003c/details\u003e\n\n更多示例，请参见 [examples](examples) 和 [tests](tests)。\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003ch4\u003e🧠 AI 辅助 SQL 生成\u003c/h4\u003e\u003c/summary\u003e\n\nchDB 可以将自然语言提示转换为 SQL。通过连接/会话字符串配置 AI 客户端参数：\n\n- `ai_provider`：`openai` 或 `anthropic`。当设置了 `ai_base_url` 时默认使用 OpenAI 兼容接口，否则自动检测。\n- `ai_api_key`：API 密钥；也可从环境变量 `AI_API_KEY`、`OPENAI_API_KEY` 或 `ANTHROPIC_API_KEY` 读取。\n- `ai_base_url`：OpenAI 兼容服务的自定义 Base URL。\n- `ai_model`：模型名称（如 `gpt-4o-mini`、`claude-3-opus-20240229`）。\n- `ai_temperature`：生成温度，默认 `0.0`。\n- `ai_max_tokens`：最大全量生成 token 数，默认 `1000`。\n- `ai_timeout_seconds`：请求超时时间（秒），默认 `30`。\n- `ai_system_prompt`：自定义系统提示词。\n- `ai_max_steps`：工具调用的最大步数，默认 `5`。\n- `ai_enable_schema_access`：允许 AI 查看数据库/表元数据，默认 `true`。\n\n未开启 AI 或配置缺失时，调用 `generate_sql`/`ask` 会抛出 `RuntimeError`。\n\n```python\nimport chdb\n\n# 使用环境变量 OPENAI_API_KEY/AI_API_KEY/ANTHROPIC_API_KEY 提供凭据\nconn = chdb.connect(\"file::memory:?ai_provider=openai\u0026ai_model=gpt-4o-mini\")\nconn.query(\"CREATE TABLE nums (n UInt32) ENGINE = Memory\")\nconn.query(\"INSERT INTO nums VALUES (1), (2), (3)\")\n\nsql = conn.generate_sql(\"Select all rows from nums ordered by n desc\")\nprint(sql)  # 例如：SELECT * FROM nums ORDER BY n DESC\n\n# ask()：一键生成并执行 SQL\n# `ask()` 会先调用 `generate_sql` 再执行 `query`，关键字参数会透传给 `query`。\nprint(conn.ask(\"List the numbers table\", format=\"Pretty\"))\n```\n\n`Session` 同样支持以上能力；`Session.ask()` 会将关键字参数透传给 `Session.query`：\n\n```python\nfrom chdb import session as chs\n\nwith chs.Session(\"file::memory:?ai_provider=openai\") as sess:\n    sess.query(\"CREATE TABLE users (id UInt32, name String) ENGINE = Memory\")\n    sess.query(\"INSERT INTO users VALUES (1, 'alice'), (2, 'bob')\")\n    df = sess.ask(\"Show all users ordered by id\", format=\"DataFrame\")\n    print(df)\n```\n\n\u003c/details\u003e\n\n## 演示和示例\n\n- [Colab Notebook](https://colab.research.google.com/drive/1-zKB6oKfXeptggXi0kUX87iR8ZTSr4P3?usp=sharing) 和更多 [示例](examples)\n\n## 基准测试\n\n- [ClickBench of embedded engines](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQXRoZW5hIChwYXJ0aXRpb25lZCkiOnRydWUsIkF0aGVuYSAoc2luZ2xlKSI6dHJ1ZSwiQXVyb3JhIGZvciBNeVNRTCI6dHJ1ZSwiQXVyb3JhIGZvciBQb3N0Z3JlU1FMIjp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIiOnRydWUsIkNpdHVzIjp0cnVlLCJjbGlja2hvdXNlLWxvY2FsIChwYXJ0aXRpb25lZCkiOnRydWUsImNsaWNraG91c2UtbG9jYWwgKHNpbmdsZSkiOnRydWUsIkNsaWNrSG91c2UiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoenN0ZCkiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQiOnRydWUsIkNsaWNrSG91c2UgKHdlYikiOnRydWUsIkNyYXRlREIiOnRydWUsIkRhdGFiZW5kIjp0cnVlLCJEYXRhRnVzaW9uIChzaW5nbGUpIjp0cnVlLCJBcGFjaGUgRG9yaXMiOnRydWUsIkRydWlkIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQpIjp0cnVlLCJEdWNrREIiOnRydWUsIkVsYXN0aWNzZWFyY2giOnRydWUsIkVsYXN0aWNzZWFyY2ggKHR1bmVkKSI6ZmFsc2UsIkdyZWVucGx1bSI6dHJ1ZSwiSGVhdnlBSSI6dHJ1ZSwiSHlkcmEiOnRydWUsIkluZm9icmlnaHQiOnRydWUsIktpbmV0aWNhIjp0cnVlLCJNYXJpYURCIENvbHVtblN0b3JlIjp0cnVlLCJNYXJpYURCIjpmYWxzZSwiTW9uZXREQiI6dHJ1ZSwiTW9uZ29EQiI6dHJ1ZSwiTXlTUUwgKE15SVNBTSkiOnRydWUsIk15U1FMIjp0cnVlLCJQaW5vdCI6dHJ1ZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2VsZWN0REIiOnRydWUsIlNpbmdsZVN0b3JlIjp0cnVlLCJTbm93Zmxha2UiOnRydWUsIlNRTGl0ZSI6dHJ1ZSwiU3RhclJvY2tzIjp0cnVlLCJUaW1lc2NhbGVEQiAoY29tcHJlc3Npb24pIjp0cnVlLCJUaW1lc2NhbGVEQiI6dHJ1ZX0sInR5cGUiOnsic3RhdGVsZXNzIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsIkphdmEiOmZhbHNlLCJjb2x1bW4tb3JpZW50ZWQiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQyI6ZmFsc2UsIlBvc3RncmVTUUwgY29tcGF0aWJsZSI6ZmFsc2UsIkNsaWNrSG91c2UgZGVyaXZhdGl2ZSI6ZmFsc2UsImVtYmVkZGVkIjp0cnVlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiUnVzdCI6ZmFsc2UsInNlYXJjaCI6ZmFsc2UsImRvY3VtZW50IjpmYWxzZSwidGltZS1zZXJpZXMiOmZhbHNlfSwibWFjaGluZSI6eyJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNS40eGxhcmdlLCA1MDBnYiBncDIiOnRydWUsIjE2IHRocmVhZHMiOnRydWUsIjIwIHRocmVhZHMiOnRydWUsIjI0IHRocmVhZHMiOnRydWUsIjI4IHRocmVhZHMiOnRydWUsIjMwIHRocmVhZHMiOnRydWUsIjQ4IHRocmVhZHMiOnRydWUsIjYwIHRocmVhZHMiOnRydWUsIm01ZC4yNHhsYXJnZSI6dHJ1ZSwiYzVuLjR4bGFyZ2UsIDIwMGdiIGdwMiI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDE1MDBnYiBncDIiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMjQiOnRydWUsIlMyIjp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZX0sImNsdXN0ZXJfc2l6ZSI6eyIxIjp0cnVlLCIyIjp0cnVlLCI0Ijp0cnVlLCI4Ijp0cnVlLCIxNiI6dHJ1ZSwiMzIiOnRydWUsIjY0Ijp0cnVlLCIxMjgiOnRydWUsInNlcnZlcmxlc3MiOnRydWUsInVuZGVmaW5lZCI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)\n\n- [chDB vs Pandas](https://colab.research.google.com/drive/1FogLujJ_-ds7RGurDrUnK-U0IW8a8Qd0)\n\n- [Benchmark on DataFrame: chDB Pandas DuckDB Polars](https://benchmark.clickhouse.com/#eyJzeXN0ZW0iOnsiQWxsb3lEQiI6dHJ1ZSwiQWxsb3lEQiAodHVuZWQpIjp0cnVlLCJBdGhlbmEgKHBhcnRpdGlvbmVkKSI6dHJ1ZSwiQXRoZW5hIChzaW5nbGUpIjp0cnVlLCJBdXJvcmEgZm9yIE15U1FMIjp0cnVlLCJBdXJvcmEgZm9yIFBvc3RncmVTUUwiOnRydWUsIkJ5Q29uaXR5Ijp0cnVlLCJCeXRlSG91c2UiOnRydWUsImNoREIgKERhdGFGcmFtZSkiOnRydWUsImNoREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiY2hEQiI6dHJ1ZSwiQ2l0dXMiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF3cykiOnRydWUsIkNsaWNrSG91c2UgQ2xvdWQgKGF6dXJlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSBDbG91ZCAoZ2NwKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoZGF0YSBsYWtlLCBwYXJ0aXRpb25lZCkiOnRydWUsIkNsaWNrSG91c2UgKGRhdGEgbGFrZSwgc2luZ2xlKSI6dHJ1ZSwiQ2xpY2tIb3VzZSAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJDbGlja0hvdXNlIChQYXJxdWV0LCBzaW5nbGUpIjp0cnVlLCJDbGlja0hvdXNlICh3ZWIpIjp0cnVlLCJDbGlja0hvdXNlIjp0cnVlLCJDbGlja0hvdXNlICh0dW5lZCkiOnRydWUsIkNsaWNrSG91c2UgKHR1bmVkLCBtZW1vcnkpIjp0cnVlLCJDbG91ZGJlcnJ5Ijp0cnVlLCJDcmF0ZURCIjp0cnVlLCJDcnVuY2h5IEJyaWRnZSBmb3IgQW5hbHl0aWNzIChQYXJxdWV0KSI6dHJ1ZSwiRGF0YWJlbmQiOnRydWUsIkRhdGFGdXNpb24gKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRGF0YUZ1c2lvbiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiQXBhY2hlIERvcmlzIjp0cnVlLCJEcnVpZCI6dHJ1ZSwiRHVja0RCIChEYXRhRnJhbWUpIjp0cnVlLCJEdWNrREIgKFBhcnF1ZXQsIHBhcnRpdGlvbmVkKSI6dHJ1ZSwiRHVja0RCIjp0cnVlLCJFbGFzdGljc2VhcmNoIjp0cnVlLCJFbGFzdGljc2VhcmNoICh0dW5lZCkiOmZhbHNlLCJHbGFyZURCIjp0cnVlLCJHcmVlbnBsdW0iOnRydWUsIkhlYXZ5QUkiOnRydWUsIkh5ZHJhIjp0cnVlLCJJbmZvYnJpZ2h0Ijp0cnVlLCJLaW5ldGljYSI6dHJ1ZSwiTWFyaWFEQiBDb2x1bW5TdG9yZSI6dHJ1ZSwiTWFyaWFEQiI6ZmFsc2UsIk1vbmV0REIiOnRydWUsIk1vbmdvREIiOnRydWUsIk1vdGhlcmR1Y2siOnRydWUsIk15U1FMIChNeUlTQU0pIjp0cnVlLCJNeVNRTCI6dHJ1ZSwiT3hsYSI6dHJ1ZSwiUGFuZGFzIChEYXRhRnJhbWUpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgcGFydGl0aW9uZWQpIjp0cnVlLCJQYXJhZGVEQiAoUGFycXVldCwgc2luZ2xlKSI6dHJ1ZSwiUGlub3QiOnRydWUsIlBvbGFycyAoRGF0YUZyYW1lKSI6dHJ1ZSwiUG9zdGdyZVNRTCAodHVuZWQpIjpmYWxzZSwiUG9zdGdyZVNRTCI6dHJ1ZSwiUXVlc3REQiAocGFydGl0aW9uZWQpIjp0cnVlLCJRdWVzdERCIjp0cnVlLCJSZWRzaGlmdCI6dHJ1ZSwiU2luZ2xlU3RvcmUiOnRydWUsIlNub3dmbGFrZSI6dHJ1ZSwiU1FMaXRlIjp0cnVlLCJTdGFyUm9ja3MiOnRydWUsIlRhYmxlc3BhY2UiOnRydWUsIlRlbWJvIE9MQVAgKGNvbHVtbmFyKSI6dHJ1ZSwiVGltZXNjYWxlREIgKGNvbXByZXNzaW9uKSI6dHJ1ZSwiVGltZXNjYWxlREIiOnRydWUsIlVtYnJhIjp0cnVlfSwidHlwZSI6eyJDIjpmYWxzZSwiY29sdW1uLW9yaWVudGVkIjpmYWxzZSwiUG9zdGdyZVNRTCBjb21wYXRpYmxlIjpmYWxzZSwibWFuYWdlZCI6ZmFsc2UsImdjcCI6ZmFsc2UsInN0YXRlbGVzcyI6ZmFsc2UsIkphdmEiOmZhbHNlLCJDKysiOmZhbHNlLCJNeVNRTCBjb21wYXRpYmxlIjpmYWxzZSwicm93LW9yaWVudGVkIjpmYWxzZSwiQ2xpY2tIb3VzZSBkZXJpdmF0aXZlIjpmYWxzZSwiZW1iZWRkZWQiOmZhbHNlLCJzZXJ2ZXJsZXNzIjpmYWxzZSwiZGF0YWZyYW1lIjp0cnVlLCJhd3MiOmZhbHNlLCJhenVyZSI6ZmFsc2UsImFuYWx5dGljYWwiOmZhbHNlLCJSdXN0IjpmYWxzZSwic2VhcmNoIjpmYWxzZSwiZG9jdW1lbnQiOmZhbHNlLCJzb21ld2hhdCBQb3N0Z3JlU1FMIGNvbXBhdGlibGUiOmZhbHNlLCJ0aW1lLXNlcmllcyI6ZmFsc2V9LCJtYWNoaW5lIjp7IjE2IHZDUFUgMTI4R0IiOnRydWUsIjggdkNQVSA2NEdCIjp0cnVlLCJzZXJ2ZXJsZXNzIjp0cnVlLCIxNmFjdSI6dHJ1ZSwiYzZhLjR4bGFyZ2UsIDUwMGdiIGdwMiI6dHJ1ZSwiTCI6dHJ1ZSwiTSI6dHJ1ZSwiUyI6dHJ1ZSwiWFMiOnRydWUsImM2YS5tZXRhbCwgNTAwZ2IgZ3AyIjp0cnVlLCIxOTJHQiI6dHJ1ZSwiMjRHQiI6dHJ1ZSwiMzYwR0IiOnRydWUsIjQ4R0IiOnRydWUsIjcyMEdCIjp0cnVlLCI5NkdCIjp0cnVlLCJkZXYiOnRydWUsIjcwOEdCIjp0cnVlLCJjNW4uNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJBbmFseXRpY3MtMjU2R0IgKDY0IHZDb3JlcywgMjU2IEdCKSI6dHJ1ZSwiYzUuNHhsYXJnZSwgNTAwZ2IgZ3AyIjp0cnVlLCJjNmEuNHhsYXJnZSwgMTUwMGdiIGdwMiI6dHJ1ZSwiY2xvdWQiOnRydWUsImRjMi44eGxhcmdlIjp0cnVlLCJyYTMuMTZ4bGFyZ2UiOnRydWUsInJhMy40eGxhcmdlIjp0cnVlLCJyYTMueGxwbHVzIjp0cnVlLCJTMiI6dHJ1ZSwiUzI0Ijp0cnVlLCIyWEwiOnRydWUsIjNYTCI6dHJ1ZSwiNFhMIjp0cnVlLCJYTCI6dHJ1ZSwiTDEgLSAxNkNQVSAzMkdCIjp0cnVlLCJjNmEuNHhsYXJnZSwgNTAwZ2IgZ3AzIjp0cnVlfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsIjIiOnRydWUsIjQiOnRydWUsIjgiOnRydWUsIjE2Ijp0cnVlLCIzMiI6dHJ1ZSwiNjQiOnRydWUsIjEyOCI6dHJ1ZSwic2VydmVybGVzcyI6dHJ1ZX0sIm1ldHJpYyI6ImhvdCIsInF1ZXJpZXMiOlt0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlXX0=)\n\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/chdb-io/chdb/raw/main/docs/_static/df_bench.png\" width=\"800\"\u003e\n\u003c/div\u003e\n\n## 文档\n- 关于 SQL 语法，请参考 [ClickHouse SQL 参考](https://clickhouse.com/docs/en/sql-reference/syntax)\n\n\n## 贡献\n贡献是使开源社区成为一个学习、激励和创造的绝佳场所的原因。您做出的任何贡献都将受到**高度赞赏**。\n以下是您可以提供帮助的事项：\n- 「Star」和「分享」\n- [ ] 帮助测试和报告错误\n- [ ] 帮助改进文档\n- [ ] 帮助提高代码质量和性能\n\n## 事件\n\n- Demo chDB at [ClickHouse v23.7 livehouse!](https://t.co/todc13Kn19) and [Slides](https://docs.google.com/presentation/d/1ikqjOlimRa7QAg588TAB_Fna-Tad2WMg7_4AgnbQbFA/edit?usp=sharing)\n\n## 版本说明\n\n请查看 [VERSION-GUIDE.md](VERSION-GUIDE.md) 获取更多信息。\n\n## 相关论文\n\n- [ClickHouse - Lightning Fast Analytics for Everyone](https://www.vldb.org/pvldb/vol17/p3731-schulze.pdf)\n\n## 版权信息\nApache 2.0，请查看 [LICENSE](LICENSE.txt) 获取更多信息。\n\n## 鸣谢\nchDB 主要基于 [ClickHouse](https://github.com/ClickHouse/ClickHouse)。由于商标和其他原因，我将其命名为 chDB。\n\n## 联系方式\n- 知乎: [@auxten](https://www.zhihu.com/people/auxten)\n- Discord：[https://discord.gg/D2Daa2fM5K](https://discord.gg/D2Daa2fM5K)\n- 电子邮件：auxten@clickhouse.com\n- Twitter：[@chdb](https://twitter.com/chdb_io)\n","funding_links":["https://github.com/sponsors/chdb-io"],"categories":["C++","HarmonyOS","Language bindings","Python","\u003ca name=\"C%2B%2B\"\u003e\u003c/a\u003eC++","Ingestion and querying"],"sub_categories":["Windows Manager","Python","In-memory processing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchdb-io%2Fchdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchdb-io%2Fchdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchdb-io%2Fchdb/lists"}