Awesome
<h1 align="center">Databend: The Next-Gen Cloud [Data+AI] Analytics</h1> <div align="center"> <h4 align="center"> <a href="https://docs.databend.com/guides/cloud">Databend Serverless Cloud (beta)</a> | <a href="https://docs.databend.com/">Documentation</a> | <a href="https://benchmark.clickhouse.com/">Benchmarking</a> | <a href="https://github.com/datafuselabs/databend/issues/11868">Roadmap (v1.3)</a> </h4> <div> <a href="https://link.databend.com/join-slack"> <img src="https://img.shields.io/badge/slack-databend-0abd59?logo=slack" alt="slack" /> </a> <a href="https://link.databend.com/join-feishu"> <img src="https://img.shields.io/badge/feishu-databend-0abd59" alt="feishu" /> </a> <br> <a href="https://github.com/datafuselabs/databend/actions/workflows/release.yml"> <img src="https://img.shields.io/github/actions/workflow/status/datafuselabs/databend/release.yml?branch=main" alt="CI Status" /> </a> <img src="https://img.shields.io/badge/Platform-Linux%2C%20macOS%2C%20ARM-green.svg?style=flat" alt="Linux Platform" /> </div> </div> <img src="https://github.com/datafuselabs/databend/assets/172204/9997d8bc-6462-4dbd-90e3-527cf50a709c" alt="databend" />🐋 Introduction
Databend, built in Rust, is an open-source cloud data warehouse that serves as a cost-effective alternative to Snowflake. With its focus on fast query execution and data ingestion, it's designed for complex analysis of the world's largest datasets.
⚡ Performance
<div align="center">TPC-H Benchmark: Databend Cloud vs. Snowflake
</div> <div align="center">Data Ingestion Benchmark: Databend Cloud vs. Snowflake
</div>🚀 Why Databend
-
Cloud-Native: Integrates with AWS S3, Azure Blob, Google Cloud, and more.
-
High Performance: Rust-built, with cutting-edge, high-speed vectorized execution. 👉 ClickBench.
-
Cost-Effective: Designed for scalable storage and computation, reducing costs while enhancing performance. 👉 TPC-H.
-
AI-Powered Analytics: Enables advanced analytics with AI Functions.
-
Data Simplification: Streamlines data ingestion, no external ETL needed. 👉 Data Loading.
-
Real-Time CDC: Supports real-time incremental data updates to keep data current and accurate. 👉 Stream
-
Format Flexibility: Supports multiple data formats and types, including JSON, CSV, Parquet, GEO, and more.
-
ACID Transactions: Ensures data integrity with atomic, consistent, isolated, and durable operations.
-
Version Control: Provides Git-like version control for data, allowing querying, cloning, and reverting at any point.
-
Schemaless: VARIANT data type enabling schemaless data storage and flexible data modeling.
-
Flexible Indexing: Virtual Column, Aggregating Index, and Full-Text Index, for faster data retrieval.
-
Community-Driven: Join a welcoming community for a user-friendly cloud analytics experience.
📐 Architecture
🚀 Try Databend
1. Databend Serverless Cloud
The fastest way to try Databend, Databend Cloud
2. Install Databend from Docker
Prepare the image (once) from Docker Hub (this will download about 170 MB data):
docker pull datafuselabs/databend
To run Databend quickly:
docker run --net=host datafuselabs/databend
🚀 Getting Started
<details> <summary>Connecting to Databend</summary> </details> <details> <summary>Data Import and Export</summary>- How to load Parquet file into a table
- How to export a table to Parquet file
- How to load CSV file into a table
- How to export a table to CSV file
- How to load TSV file into a table
- How to export a table to TSV file
- How to load NDJSON file into a table
- How to export a table to NDJSON file
- How to load ORC file into a table
- How to Sync Full and Incremental MySQL Changes into Databend
- How to Sync Full and Incremental PostgreSQL Changes into Databend
- How to Sync Full and Incremental Oracle Changes into Databend
- How to query directly on Parquet file
- How to query directly on CSV file
- How to query directly on TSV file
- How to query directly on NDJSON file
- How to query directly on ORC file
- How to Create a User
- How to Grant Privileges to a User
- How to Revoke Privileges from a User
- How to Create a Role
- How to Grant Privileges to a Role
- How to Grant Role to a User
- How to Revoke the Role of a User
- How to Create a Table
- How to Drop a Table
- How to Rename a Table
- How to Truncate a Table
- How to Flash Back a Table
- How to Add/Drop Table Column
- Generating SQL with AI
- Creating Embedding Vectors
- Computing Text Similarities
- Text Completion with AI
- Data Lifecycle in Databend
- Data Recovery in Databend
- Data Protection in Databend
- Data Purge in Databend
- Review Clickbench
- TPC-H Benchmark: Databend Cloud vs. Snowflake
- Databend vs. Snowflake: Data Ingestion Benchmark
🤝 Contributing
Databend thrives on community contributions! Whether it's through ideas, code, or documentation, every effort helps in enhancing our project. As a token of our appreciation, once your code is merged, your name will be eternally preserved in the system.contributors table.
Here are some resources to help you get started:
👥 Community
For guidance on using Databend, we recommend starting with the official documentation. If you need further assistance, explore the following community channels:
- Slack (For live discussion with the Community)
- GitHub (Feature/Bug reports, Contributions)
- Twitter (Get the news fast)
- I'm feeling lucky (Pick up a good first issue now!)
🛣️ Roadmap
Stay updated with Databend's development journey. Here are our roadmap milestones:
📜 License
Databend is released under a combination of two licenses: the Apache License 2.0 and the Elastic License 2.0.
When contributing to Databend, you can find the relevant license header in each file.
For more information, see the LICENSE file and Licensing FAQs.
🙏 Acknowledgement
-
Inspiration: Databend's design draws inspiration from industry leaders ClickHouse and Snowflake.
-
Computing Model: Our computing foundation is built upon apache arrow.
-
Documentation Hosting: The Databend documentation website proudly runs on Vercel.