Databend
Enterprise Data Warehouse for AI Agents
Large-scale analytics, vector search, full-text search β with flexible agent orchestration and secure Python UDF sandboxes. Built for enterprise AI workloads.
## π‘ Why Databend?
Databend is an open-source enterprise data warehouse built in Rust.
**Core capabilities**: Analytics, vector search, full-text search, auto schema evolution β unified in one engine.
**Agent-ready**: Sandbox UDFs for agent logic, SQL for orchestration, transactions for reliability, branching for safe experimentation on production data.
| | |
| :--- | :--- |
| **π Core Engine**
Analytics, vector search, full-text search, auto schema evolution, transactions. | **π€ Agent-Ready**
Sandbox UDF + SQL orchestration. Build and run agents on your enterprise data. |
| **π’ Enterprise Scale**
Elastic compute, cloud native. S3/Azure/GCS. | **πΏ Branching**
Git-like data versioning. Agents safely operate on production snapshots. |

## β‘ Quick Start
### 1. Cloud (Recommended)
[Start for free on Databend Cloud](https://docs.databend.com/guides/cloud/) β Production-ready in 60 seconds.
### 2. Local (Python)
Ideal for development and testing. Requires Python 3.12 or 3.13 and `databend-driver` 0.34.0 or later:
```bash
pip install "databend-driver[local]>=0.34.0"
```
```python
from databend_driver import connect
conn = connect("databend+local:///./local-state")
print(conn.query_row("SELECT 'Hello, Databend!'").values())
```
### 3. Docker
Run the full warehouse locally:
```bash
docker run -p 8000:8000 datafuselabs/databend
```
## π€ Agent-Ready Architecture
Databend's **Sandbox UDF** enables flexible agent orchestration with a three-layer architecture:
- **Control Plane**: Resource scheduling, permission validation, sandbox lifecycle management
- **Execution Plane** (Databend): SQL orchestration, issues requests via Arrow Flight
- **Compute Plane** (Sandbox Workers): Isolated sandboxes running your agent logic
```sql
-- Define your agent logic
CREATE FUNCTION my_agent(input STRING) RETURNS STRING
LANGUAGE python HANDLER = 'run'
AS $$
def run(input):
# Your agent logic: LLM calls, tool use, reasoning...
return response
$$;
-- Orchestrate agents with SQL
SELECT my_agent(question) FROM tasks;
```
## π Use Cases
- **AI Agents**: Sandbox UDF + SQL orchestration + branching for safe operations
- **Analytics & BI**: Large-scale SQL analytics β [Learn more](https://docs.databend.com/guides/query/sql-analytics)
- **Search & RAG**: Vector + full-text search β [Learn more](https://docs.databend.com/guides/query/vector-db)
## π€ Community & Support
- [π Documentation](https://docs.databend.com/)
- [π¬ Join Slack](https://link.databend.com/join-slack)
- [π Issue Tracker](https://github.com/databendlabs/databend/issues)
- [πΊοΈ Roadmap](https://github.com/databendlabs/databend/issues/14167)
**Contributors are immortalized in the `system.contributors` table π**
## π License
[Apache 2.0](licenses/Apache-2.0.txt) + [Elastic 2.0](licenses/Elastic.txt) | [Licensing FAQ](https://docs.databend.com/guides/products/dee/license)
---