This project is an attempt to build a GPU-accelerated columnar database from scratch, inspired by systems like Snowflake, using Rust. It leverages object storage (AWS S3-compatible) for data persistence, and GPU processing for fast analytical queries.
-
Clone the repository:
git clone https://github.com/hamzzy/giga-db cd giga-db
-
Build the project:
cargo build
-
Start the database:
cargo run
-
Send Queries:
Use a tool like
curl
or Postman to sendPOST
requests tohttp://127.0.0.1:8080/query
with the following json: ```json { "query": "SELECT * FROM test WHERE id > 1.0"}Example Queries: * `SELECT id, value FROM test WHERE id > 1.0` (to test projection) * `SELECT SUM(id) FROM test` (to test aggregation) * `SELECT * FROM test WHERE id > 1.0` (to test projection with wild card)
This application uses .env
to configure environment variables such as credentials, and bucket name. These are parsed during start up.
We welcome contributions to this project. To contribute, please:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Implement your changes, write tests, and make sure all the existing tests pass.
- Submit a pull request with a detailed description of your changes.