自托管需另装 BendSQL 客户端连接;默认只把 8000 端口绑定到 127.0.0.1,远程访问需自行调整;生产部署的凭据与存储配置需参考 self-hosted 文档,README 未给出默认值。
databend
databendlabsApache-2.0活跃维护基于 Rust 重写的云原生数据仓库,统一支持分析、搜索、AI 与 Python 沙箱,直接架在 S3 上,省去多套系统拼装。
Data Agent Ready Warehouse : One for Analytics, Search, AI, Python Sandbox. — rebuilt from scratch. Unified architecture on your S3.
docker run -d -p 127.0.0.1:8000:8000 datafuselabs/databend
bendsql -u rootREADME 未说明具体 CPU、内存或显存要求;平台标注支持 Linux、macOS、ARM,存储后端支持 S3、Azure、GCS。
Rust 写的开源数据仓库,把 SQL 分析、向量检索和全文检索放在同一张表上,省去多系统同步
基于 Rust 重写的云原生数据仓库,统一支持分析、搜索、AI 与 Python 沙箱,直接架在 S3 上,省去多套系统拼装。
核心能力
- 同一张表同时支持 SQL 分析、向量检索与全文检索
- 用 Rust 实现向量化引擎,计算弹性伸缩在对象存储上
- 提供沙箱化 Python UDF,用 SQL 编排 Agent 逻辑
- 支持类 Git 的数据分支,可在生产快照上安全试验
- 支持自动 schema 演进与事务
容易踩的坑
- v1.2.961-nightlypre-release最新正式版2026-11-08 · 2026-11-08 23:04 UTC
What's Changed
Exciting New Features ✨
- feat(http): support catalog in /v1/session/login by @youngsofun in https://github.com/databendlabs/databend/pull/20949
- feat(query): adapt partial aggregation at runtime and route it through global shuffle(2/3) by @dqhl76 in https://github.com/databendlabs/databend/pull/20915
- feat(query): keep shuffle connections busy when cores are saturated(1/3) by @dqhl76 in https://github.com/databendlabs/databend/pull/20911
- feat(query): admin API for on-demand CPU flamegraphs by @dqhl76 in https://github.com/databendlabs/databend/pull/20903
- feat(rbac): add explicit materialized view SELECT grants by @TCeason in https://github.com/databendlabs/databend/pull/20940
- feat(query): prune group items computed from group items and constants by @KKould in https://github.com/databendlabs/databend/pull/20962
- feat(query): prune runtime TopN by the first of several sort keys by @KKould in https://github.com/databendlabs/databend/pull/20964
- feat(query): control Python UDF egress with external integrations by @sundy-li in https://github.com/databendlabs/databend/pull/20898
- feat(query): support runtime TopN pruning across UNION ALL by @zhang2014 in https://github.com/databendlabs/databend/pull/20967
- feat(query): keep dictionary encoded columns in hash join by @KKould in https://github.com/databendlabs/databend/pull/20956
- feat(query): expose node-local cache statistics on admin API by @bohutang in https://github.com/databendlabs/databend/pull/21013
- feat(query): sort hash write lanes by the linear cluster key by @youngsofun in https://github.com/databendlabs/databend/pull/20980
- feat(cache): one disk cache of object bytes below the readers by @bohutang in https://github.com/databendlabs/databend/pull/20945
- feat(query): unify recluster under OPTIMIZE TABLE by @zhyass in https://github.com/databendlabs/databend/pull/20979
- feat(query): segment zone map for fuse tables, built by recluster by @zhang2014 in https://github.com/databendlabs/databend/pull/21021
Thoughtful Bug Fix 🔧
- fix(query): Fix repetitive SQL processing operations by @b41sh in https://github.com/databendlabs/databend/pull/20926
- fix(query): keep rows that tie with the last vector TopN row by @b41sh in https://github.com/databendlabs/databend/pull/20932
- fix(query): scan only the vector TopN rows instead of whole blocks by @b41sh in https://github.com/databendlabs/databend/pull/20931
- fix(query): remove experimental privilege check settings by @TCeason in https://github.com/databendlabs/databend/pull/20933
- fix(query): speed up lazy prune pipeline, keep prune cache under LIMIT by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20884
- fix(query): skip aggregate work for empty inputs and buckets by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20891
- fix(query): correct grouping-set schemas and grouping IDs by @sundy-li in https://github.com/databendlabs/databend/pull/20934
- fix(storage): prevent incomplete index refresh after writes by @zhyass in https://github.com/databendlabs/databend/pull/20909
- fix(storage): publish snapshot hints only after transaction commit by @dantengsky in https://github.com/databendlabs/databend/pull/20827
- fix(query): allow create Materialized View with Table in different Database by @b41sh in https://github.com/databendlabs/databend/pull/20906
- refactor(sql): fold ScalarExpr bottom-up during type checking by @forsaken628 in https://github.com/databendlabs/databend/pull/20901
- fix(formats): preserve CSV empty values and correct quote styles by @youngsofun in https://github.com/databendlabs/databend/pull/20946
- fix(query): fix data loss in UNION ALL by @SkyFan2002 in https://github.com/databendlabs/databend/pull/21011
- fix(fuse): infer string statistics truncation by character count by @dantengsky in https://github.com/databendlabs/d
- v1.2.960-nightlypre-release2026-11-02 · 2026-11-02 07:47 UTC
查看更新说明
What's Changed
Thoughtful Bug Fix 🔧
- fix(query): materialize outer input where correlated aliases are invalid by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20892
Code Refactor 🎉
- refactor(query): select if branches by mask word for all types by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20904
- refactor(query): avoid optimizer trace overhead when tracing is off by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20878
- refactor(query): bypass ineffective rank-limit pre-sort in partial aggregate by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20879
- refactor(cache): kind-based cache store; migrate all caches by @bohutang in https://github.com/databendlabs/databend/pull/20899
Full Changelog: https://github.com/databendlabs/databend/compare/v1.2.959-nightly...v1.2.960-nightly
- v1.2.959-nightlypre-release2026-11-01 · 2026-11-01 23:12 UTC
查看更新说明
What's Changed
Thoughtful Bug Fix 🔧
- fix(query): exact float-to-decimal casts and decimal quantile_cont by @forsaken628 in https://github.com/databendlabs/databend/pull/20897
- fix(query): decode each segment once in row fetch by @b41sh in https://github.com/databendlabs/databend/pull/20894
- fix(parser): avoid reparsing trailing function arguments by @KKould in https://github.com/databendlabs/databend/pull/20912
Build/Testing/CI Infra Changes 🔌
- ci: prepare upgrade toolchain to nightly-2026-10-25 by @sundy-li in https://github.com/databendlabs/databend/pull/20917
Others 📒
- chore(build): use line-tables-only debuginfo for the test profile by @sundy-li in https://github.com/databendlabs/databend/pull/20908
Full Changelog: https://github.com/databendlabs/databend/compare/v1.2.958-nightly...v1.2.959-nightly
- v1.2.958-nightlypre-release2026-10-30 · 2026-10-30 05:25 UTC
查看更新说明
What's Changed
Exciting New Features ✨
- feat(query): evaluate functions, grouping and aggregates on encoded dictionaries by @KKould in https://github.com/databendlabs/databend/pull/20873
Thoughtful Bug Fix 🔧
- fix(query): block runtime filters across row-sensitive probe paths by @dantengsky in https://github.com/databendlabs/databend/pull/20805
- fix(query): dedup in-flight cascades group tasks by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20883
- fix(query): keep hash shuffle sender running after its output finishes by @dqhl76 in https://github.com/databendlabs/databend/pull/20893
Code Refactor 🎉
- refactor(query): optimize numeric if branch selection by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20881
Full Changelog: https://github.com/databendlabs/databend/compare/v1.2.957-nightly...v1.2.958-nightly
- v1.2.957-nightlypre-release2026-10-29 · 2026-10-29 11:51 UTC
查看更新说明
What's Changed
Exciting New Features ✨
- feat(query): sandbox Python UDF workers and bound script UDF resources by @sundy-li in https://github.com/databendlabs/databend/pull/20830
- feat(query): Vector Index support refine by @b41sh in https://github.com/databendlabs/databend/pull/20832
- feat(query): fold runtime bloom filters to target fpp after build by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20869
Thoughtful Bug Fix 🔧
- fix(query): make prune cache key exact for floats and session settings by @SkyFan2002 in https://github.com/databendlabs/databend/pull/20845
- fix(query): resolve qualified names as tables, not CTEs by @TCeason in https://github.com/databendlabs/databend/pull/20695
- fix(storage): decode escaped custom TEXT delimiters by @youngsofun in https://github.com/databendlabs/databend/pull/20844
- fix(query): restrict identity visibility and redact credentials by @TCeason in https://github.com/databendlabs/databend/pull/20833
- fix(storage): report tolerated errors for ON_ERROR=ABORT_N by @youngsofun in https://github.com/databendlabs/databend/pull/20849
- fix(query): parse non-integer text into int columns exactly by @youngsofun in https://github.com/databendlabs/databend/pull/20851
- fix(query): make decimal arithmetic, casts and rounding exact by @forsaken628 in https://github.com/databendlabs/databend/pull/20848
- fix(query): avoid nested nullable column in TRY_CAST(variant AS decimal) by @bohutang in https://github.com/databendlabs/databend/pull/20861
- fix(query): preserve year-one timestamp boundaries and text round trips by @TCeason in https://github.com/databendlabs/databend/pull/20853
- fix(formats): ignore input escape when quoting CSV output by @youngsofun in https://github.com/databendlabs/databend/pull/20863
- fix(query): retain only exact NDV bounds after estimation by @dantengsky in https://github.com/databendlabs/databend/pull/20798
- fix(query): reject spilling blocks without columns by @dqhl76 in https://github.com/databendlabs/databend/pull/20855
- fix(query): own next-level hash join spill states by their parent level by @dqhl76 in https://github.com/databendlabs/databend/pull/20857
- fix(query): bound hash shuffle memory independent of cluster size by @dqhl76 in https://github.com/databendlabs/databend/pull/20778
Build/Testing/CI Infra Changes 🔌
- ci: strengthen session header HTTP tests by @youngsofun in https://github.com/databendlabs/databend/pull/20858
- ci(fuse): test partition-key moves by mutation and ALTER PARTITION BY by @bohutang in https://github.com/databendlabs/databend/pull/20866
Documentation 📔
- docs: meta: update compatibility tables through 1.2.956 by @drmingdrmer in https://github.com/databendlabs/databend/pull/20852
Others 📒
- chore(deps): bump tokio from 1.52.3 to 1.54.1 by @dqhl76 in https://github.com/databendlabs/databend/pull/20875
- chore(settings): disable enable_recluster_multiway_merge by default by @zhang2014 in https://github.com/databendlabs/databend/pull/20882
Full Changelog: https://github.com/databendlabs/databend/compare/v1.2.956-nightly...v1.2.957-nightly
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
☁️ Try Cloud • 🚀 Quick Start • 📈 Performance • 📖 Documentation
💡 Why Databend?
Databend is an open-source data warehouse built in Rust. Analytics, search, and agent workloads run on the same tables, so there is no second system to sync.
| 📊 One WarehouseSQL analytics, vector search, full-text search, auto schema evolution, transactions. | 🤖 Agent-ReadySandboxed Python UDFs for agent logic, SQL for orchestration. |
| 🏢 Enterprise ScaleFast vectorized engine, elastic compute on object storage: S3, Azure, GCS. | 🌿 BranchingGit-like data versioning. Agents experiment safely on production snapshots. |
📈 Performance
Published results on Databend Cloud with default settings. Each page includes the SQL to reproduce it.
| Benchmark | Result |
|---|---|
| TPC-H SF100 vs. Snowflake | 1.25× faster, ~60% lower cost |
| Data ingestion vs. Snowflake | 5.15× faster, 91% lower cost |
| Vector & full-text search | 10M docs: vector p50 41 ms, full-text p50 35 ms |
| TPC-H SF1000 (1 TB) scaling | 4.1× faster on Large vs. Small warehouse |
See all benchmarks.
⚡ Quick Start
Cloud (Recommended) — Sign up, create a warehouse, and run SQL in the worksheet. Cloud guide →
Self-hosted — Run the all-in-one image and connect with BendSQL:
docker run -d -p 127.0.0.1:8000:8000 datafuselabs/databend
bendsql -u root
See Docker image options and self-hosted deployment for credentials, storage, and production setup.
Your First Query
Analytics, full-text search, and vector search in one table:
CREATE TABLE docs (
id INT,
content STRING,
embedding VECTOR(3),
INVERTED INDEX content_idx(content),
VECTOR INDEX embedding_idx(embedding) distance = 'cosine'
);
INSERT INTO docs VALUES
(1, 'SQL analytics for agents', [1.0, 0.0, 0.0]),
(2, 'Vector search for documents', [0.0, 1.0, 0.0]);
SELECT id, content FROM docs WHERE MATCH(content, 'analytics');
SELECT id, content FROM docs
ORDER BY COSINE_DISTANCE(embedding, [1.0, 0.0, 0.0]::VECTOR(3))
LIMIT 1;
Both queries return document 1. Learn more: Vector search · JSON & search.
🤖 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
-- 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...
answer = f"processed: {input}"
return answer
$$;
-- 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
- Search & RAG: Vector + full-text search — Learn more
🤝 Community & Support
- 📖 Documentation
- 💬 Join Slack
- 🐛 Issue Tracker
- 🗺️ Roadmap
- 🛠️ Contributing — AI-assisted PRs are welcome; a responsible human must review the full diff
Contributors are immortalized in the system.contributors table 🏆
📄 License
Databend is licensed under Apache 2.0. A small set of enterprise features is under Elastic 2.0, see LICENSING.md | Licensing FAQ