chdb-datastore
This skill enables working with tabular data using a pandas-compatible API backed by ClickHouse for faster execution.
Identity proven by GitHub's verified organisation badge (ClickHouse)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- Apache-2.0 (permissive)
- Pin
- 356a8c1pinned Oct 9, 2026
- Context cost
- about 1,200 tokenswhen the skill loads
- GitHub stars
- 544on clickhouse/agent-skills
- Scripts
- 1 script
What it does
“Use when the user has tabular data (pandas DataFrame, parquet, csv, Arrow, json) and wants to filter, group, aggregate, join, or speed up slow pandas. Provides chDB DataStore — same pandas API, ClickHouse engine underneath. Also handles reading from S3, MySQL, PostgreSQL, MongoDB, ClickHouse Cloud, Iceberg, Delta Lake as DataFrames and joining across sources. TRIGGER when: user mentions DataFrame, parquet, csv, "fast pandas", "speed up pandas", or cross-source DataFrame joins; user imports `chdb.datastore` or `from datastore import DataStore`. SKIP this skill for raw SQL syntax (use chdb-sql instead), ClickHouse server administration, or non-Python DataStore API work.”
Generated summary from the skill's own text
This skill enables working with tabular data using a pandas-compatible API backed by ClickHouse for faster execution. It handles filtering, grouping, aggregating, and joining data from multiple sources including local files, S3, MySQL, PostgreSQL, MongoDB, and ClickHouse Cloud without changing existing pandas code.
When to use it
- Speeding up slow pandas operations on large datasets
- Joining data from multiple sources like databases and files
- Reading tabular data from S3, MySQL, PostgreSQL, or other connectors
- Replacing pandas with one-line import for immediate performance gains
When not to
- Writing raw SQL queries directly, use chdb-sql skill instead
- Non-Python DataStore API work or ClickHouse server administration
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add clickhouse/agent-skills --skill chdb-datastoreInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install clickhouse/agent-skills chdb-datastore@356a8c1b9a7392adb389a132f5ad3fec38532a03Installs the commit we checked (356a8c1).
Copy by hand
Download the folder at 356a8c1 and put it in .claude/skills/chdb-datastore for Claude Code and in .agents/skills/chdb-datastore for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install clickhouse@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Claude Code plugin
/plugin install clickhouse-best-practices@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "chdb-datastore" by ClickHouse. Source, pinned to commit 356a8c1b9a7392adb389a132f5ad3fec38532a03: https://github.com/clickhouse/agent-skills/tree/356a8c1b9a7392adb389a132f5ad3fec38532a03/skills/chdb-datastore 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/chdb-datastore/ for Claude Code and .agents/skills/chdb-datastore/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/clickhouse/chdb-datastore
SKILL.md at the pin
---
name: chdb-datastore
description: >-
Use when the user has tabular data (pandas DataFrame, parquet, csv,
Arrow, json) and wants to filter, group, aggregate, join, or speed
up slow pandas. Provides chDB DataStore — same pandas API,
ClickHouse engine underneath. Also handles reading from S3, MySQL,
PostgreSQL, MongoDB, ClickHouse Cloud, Iceberg, Delta Lake as
DataFrames and joining across sources.
TRIGGER when: user mentions DataFrame, parquet, csv, "fast pandas",
"speed up pandas", or cross-source DataFrame joins; user imports
`chdb.datastore` or `from datastore import DataStore`.
SKIP this skill for raw SQL syntax (use chdb-sql instead),
ClickHouse server administration, or non-Python DataStore API work.
license: Apache-2.0
compatibility: Requires Python 3.9+, macOS or Linux. pip install chdb.
metadata:
author: chdb-io
version: "4.1"
homepage: https://clickhouse.com/docs/chdb
---
# chdb DataStore — It's Just Faster Pandas
## The Key Insight
```python
# Change this:
import pandas as pd
# To this:
import chdb.datastore as pd
# Everything else stays the same.
```
DataStore is a **lazy, ClickHouse-backed pandas replacement**. Your existing pandas code works unchanged — but operations compile to optimized SQL and execute only when results are needed (e.g., `print()`, `len()`, iteration).
```bash
pip install chdb
```
## Decision Tree: Pick the Right Approach
```
1. "I have a file/database and want to analyze it with pandas"
→ DataStore.from_file() / from_mysql() / from_s3() etc.
→ See references/connectors.md
2. "I need to join data from different sources"
→ Create DataStores from each source, use .join()
→ See examples/examples.md #3-5
3. "My pandas code is too slow"
→ import chdb.datastore as pd — change one line, keep the rest
4. "I need raw SQL queries"
→ Use the chdb-sql skill instead
```
## Connect to Any Data Source — One Pattern
```python
from datastore import DataStore
# Local file (auto-detects .parquet, .csv, .json, .arrow, .orc, .avro, .tsv, .xml)
ds = DataStore.from_file("sales.parquet")
# Database
ds = DataStore.from_mysql(host="db:3306", database="shop", table="orders", user="root", password="pass")
# Cloud storage
ds = DataStore.from_s3("s3://bucket/data.parquet", nosign=True)
# URI shorthand — auto-detects source type
ds = DataStore.uri("mysql://root:pass@db:3306/shop/orders")
```
All 16+ sources and URI schemes → [connectors.md](references/connectors.md)
## After Connecting — Full Pandas API
```python
result = ds[ds["age"] > 25] # filter
result = ds[["name", "city"]] # select columns
result = ds.sort_values("revenue", ascending=False) # sort
result = ds.groupby("dept")["salary"].mean() # groupby
result = ds.assign(margin=lambda x: x["profit"] / x["revenue"]) # computed column
ds["name"].str.upper() # string accessor
ds["date"].dt.year # datetime accessor
result = ds1.join(ds2, on="id") # join
result = ds.head(10) # preview
print(ds.to_sql()) # see generated SQL
```
209 DataFrame methods supported. Full API → [api-reference.md](references/api-reference.md)
## Cross-Source Join — The Killer Feature
```python
from datastore import DataStore
customers = DataStore.from_mysql(host="db:3306", database="crm", table="customers", user="root", password="pass")
orders = DataStore.from_file("orders.parquet")
result = (orders
.join(customers, left_on="customer_id", right_on="id")
.groupby("country")
.agg({"amount": "sum", "rating": "mean"})
.sort_values("sum", ascending=False))
print(result)
```
More join examples → [examples.md](examples/examples.md)
## Writing Data
```python
source = DataStore.from_mysql(host="db:3306", database="shop", table="orders", user="root", password="pass")
target = DataStore("file", path="summary.parquet", format="Parquet")
target.insert_into("category", "total", "count").select_from(
source.groupby("category").select("category", "sum(amount) AS total", "count() AS count")
).execute()
```
## Troubleshooting
| Problem | Fix |
|---------|-----|
| `ImportError: No module named 'chdb'` | `pip install chdb` |
| `ImportError: cannot import 'DataStore'` | Use `from datastore import DataStore` or `from chdb.datastore import DataStore` |
| Database connection timeout | Include port in host: `host="db:3306"` not `host="db"` |
| Join returns empty result | Check key types match (both int or both string); use `.to_sql()` to inspect |
| Unexpected results | Call `ds.to_sql()` to see the generated SQL and debug |
| Environment check | Run `python scripts/verify_install.py` (from skill directory) |
## References
- [API Reference](references/api-reference.md) — Full DataStore method signatures
- [Connectors](references/connectors.md) — All 16+ data source connection methods
- [Examples](examples/examples.md) — 10+ runnable examples with expected output
- [Verify Install](scripts/verify_install.py) — Environment verification script
- [Official Docs](https://clickhouse.com/docs/chdb)
> Note: This skill teaches how to *use* chdb DataStore.
> For raw SQL queries, use the `chdb-sql` skill.
> For contributing to chdb source code, see CLAUDE.md in the project root.
From clickhouse/agent-skills at 356a8c1, shown as plain text under its license: Apache-2.0 (permissive). The license text is in skills/chdb-datastore/SKILL.md.
View SKILL.md on GitHub at 356a8c1Files
- SKILL.md5.6 KB · 93e77cfb444f
- README.md1.1 KB · 26771b27fa15
- examples/
- examples.md10 KB · eb92939cae51
- metadata.json464 B · 92cd494b9d28
- references/
- api-reference.md8.8 KB · 77c206fa6f6a
- connectors.md7.4 KB · 154fc0f2fb6e
- scripts/
- verify_install.py2.9 KB · aaba753011b4
7 files, 37 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 356a8c1More from ClickHouse
chdb-sql
The skill enables running ClickHouse SQL queries on local files (parquet, csv, json), remote databases (Postgres, MySQL, MongoDB, ClickHouse Cloud), and cloud…
Contains scripts
Claude Code, Codex, Cursor +3 · about 960 tokens · pinned 6 days ago
clickhouse-architecture-advisor
This skill guides agents through ClickHouse architecture decisions for specific workloads like observability, SIEM, and financial services.
Claude Code, Codex, Cursor +4 · about 690 tokens · pinned 6 days ago
clickhouse-best-practices
This skill provides 31 ClickHouse best practices rules covering schema design, query optimization, data ingestion, and agent connectivity.
Claude Code, Codex, Cursor +4 · about 2.5K tokens · pinned 6 days ago
clickhouse-js-node-rowbinary
This skill generates TypeScript/JavaScript code to read and write ClickHouse RowBinary format streams in Node.js.
Contains scripts
Claude Code, Codex, Cursor +3 · about 1.2K tokens · pinned 6 days ago
clickhouse-js-node-troubleshooting
Diagnose and fix issues with the ClickHouse Node.js client (@clickhouse/client) running in Node.js environments.
Claude Code, Codex, Cursor +4 · about 1.1K tokens · pinned 6 days ago
clickhouse-managed-postgres-rca
This skill diagnoses performance problems on ClickHouse-managed Postgres instances by scraping Prometheus metrics and querying the Slow Query Patterns API to…
Claude Code, Codex, Cursor +4 · about 1.1K tokens · pinned 6 days ago
Related in Data and databases
prisma-orm-setup
This skill sets up Prisma ORM in new applications, defaulting to version 8, or connects and troubleshoots existing Prisma 6, 7, or 8 applications.
by PrismaOfficial publisher
Claude Code, Codex, Cursor +4 · about 1.6K tokens · pinned 6 days ago
prisma-8
This skill helps agents work with Prisma 8, a contract-first data layer for TypeScript projects.
by PrismaOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 3.5K tokens · pinned 6 days ago
dsql
This skill enables agents to build and manage Aurora DSQL, a serverless PostgreSQL-compatible distributed SQL database.
by Amazon (AWS)Official publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 6.5K tokens · pinned 6 days ago
infra-postgres
This skill sets up and manages Postgres databases using the clickhousectl CLI.
by ClickHouseOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 570 tokens · pinned 6 days ago
prisma-next-contract
This skill enables editing the Prisma Next data contract, the single source of truth for your data layer.
by PrismaOfficial publisher
Claude Code, Codex, Cursor +4 · about 6.9K tokens · pinned 6 days ago
prisma-next-migrations
Author and execute Prisma Next migrations by choosing between quick database updates or formal migration plans with data transforms.
by PrismaOfficial publisher
Claude Code, Codex, Cursor +4 · about 10K tokens · pinned 6 days ago