Skip to content

Commit 2545e3e

Browse files
committed
Improve readme
1 parent 0ff4ea2 commit 2545e3e

1 file changed

Lines changed: 49 additions & 17 deletions

File tree

readme.md

Lines changed: 49 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
11
# VQLForge
2+
**Translate SQL to Denodo VQL with ease, powered by AI insights.**
23

34
VQLForge translates various SQL dialects into Denodo VQL using a React frontend and a Python/FastAPI backend powered by the `sqlglot` library.
45

56
It helps accelerate migrations to Denodo by automating SQL-to-VQL conversion.
7+
8+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9+
[![Python Version](https://img.shields.io/badge/python-3.12%2B-blue.svg)](https://www.python.org/downloads/)
10+
611
![image info](vqlforge.png)
712

13+
## Why VQLForge?
14+
15+
Migrating SQL to Denodo's VQL can be a time-consuming and error-prone process. VQLForge aims to:
16+
17+
* **Accelerate Migrations:** Automate the bulk of SQL-to-VQL translation by using the UI or the REST API.
18+
* **Reduce Errors:** Leverage `sqlglot` for robust parsing and AI for error analysis and VQL validation.
19+
* **Improve Developer Productivity:** Provide a user-friendly interface for quick conversions.
20+
21+
822
## Features
923

1024
* Converts 24 SQL dialects (e.g., DuckDB, Trino, Spark, Snowflake, BigQuery) to Denodo VQL via `sqlglot`.
@@ -32,25 +46,33 @@ It helps accelerate migrations to Denodo by automating SQL-to-VQL conversion.
3246
git clone https://github.com/banickn/VQLForge.git
3347
cd VQLForge
3448
```
35-
3. **Configure Environment:** Create a `.env` file in the project root based on the `template.env` and add modify the following properties:
36-
- **Denodo settings**
37-
- DENODO_HOST=<DENODO_HOST> # Server url
38-
- DENODO_DB=<DENODO_DB_NAME> # Default VDB
39-
- DENODO_USER=<DENODO_USER> # This user should read/execute access to all VDBs
40-
- DENODO_PW=<DENODO_USER_PW>
49+
3. **Configure Environment:** Create a `.env` file in the project root by copying `template.env` (`cp template.env .env`). Then, modify the following properties:
50+
51+
| Variable | Description | Required for | Example |
52+
|---------------------|-----------------------------------------------------------------------------|------------------------|-----------------------------|
53+
| `DENODO_HOST` | Denodo VDP server URL | AI Validation | `denodo-server.example.com` |
54+
| `DENODO_DB` | Default Denodo Virtual DataBase (VDB) | AI Validation | `my_vdb` |
55+
| `DENODO_USER` | Denodo user with read/execute access to VDBs | AI Validation | `denodo_user` |
56+
| `DENODO_PW` | Password for the Denodo user | AI Validation | `password` |
57+
| `AI_API_KEY` | Google Gemini API Key (e.g., Gemini 1.5 Flash) | AI Assistant | `YOUR_GEMINI_API_KEY` |
58+
| `APP_NETWORK_NAME` | Docker network name for connecting to Denodo (if Denodo is also in Docker) | AI Validation | `denodo-lab-net` |
59+
| `HOST_PROJECT_PATH` | Absolute path to your local VQLForge repository directory. | Translation (VDBs) | `/path/to/your/VQLForge` |
4160

42-
- **AI API**
43-
- AI_API_KEY=<GEMINI_KEY> # This needs to be a valid Gemini 2.5 Flash key
44-
- **Others**
45-
- APP_NETWORK_NAME=denodo-lab-net # Rename or remove if you don't connect via docker network
46-
- HOST_PROJECT_PATH=<repository_path> # Path to your VQLForge directory. Required for VDB config
61+
These configurations are required to run the advanced query analysis features.
4762

48-
Go to ./backend/vdb_conf.yaml and configure the name of your available Denodo VDBs so they are selectable in VQLForge.
63+
4. **Configure Denodo VDBs:**
64+
Edit `./backend/vdb_conf.yaml` to list your available Denodo VDB names. This allows them to be selectable in VQLForge when using AI validation features.
65+
```yaml
66+
# ./backend/vdb_conf.yaml
67+
available_vdbs:
68+
- "your_vdb_name_1"
69+
- "your_vdb_name_2"
70+
- "finance_vdb"
71+
```
4972

50-
These configurations are required to run the advanced query analysis features.
73+
5. **Docker Network (Required for VDP Validation):** For the AI VQL validation feature, ensure a `denodo-docker-network` exists (`docker network create denodo-docker-network`) and your Denodo VDP container is connected to it.
5174

52-
4. **Docker Network (Required for VDP Validation):** For the AI VQL validation feature, ensure a `denodo-docker-network` exists (`docker network create denodo-docker-network`) and your Denodo VDP container is connected to it.
53-
5. **Run:**
75+
6. **Run:**
5476
If you want to build the images yourself for local development use:
5577
```bash
5678
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build -d
@@ -81,7 +103,10 @@ It helps accelerate migrations to Denodo by automating SQL-to-VQL conversion.
81103
* Connect to a Denodo VDP instance to validate the generated VQL query and report success or Denodo errors.
82104
* Requires `AI_API_KEY` in `.env` for all functions.
83105
* Requires Denodo VDP connection details (see below) for the validation function.
84-
* Future work involves deeper integration using a more agentic AI approach for complex error handling and suggestions.
106+
* Leverages agentic tooling, meaning the AI can perform actions like...
107+
* Schema Discovery: list available VDBs and identifies accessible view names
108+
* Metadata retrieval: Fetches details (e.g., columns, types) for views used in your queries.
109+
* Functions: Automatically identifies the correct Denodo function in your query.
85110
86111
## Denodo VDP Connection
87112
@@ -90,9 +115,16 @@ It helps accelerate migrations to Denodo by automating SQL-to-VQL conversion.
90115
* **Credentials:** Uses default Denodo credentials (`admin`/`admin`) for connection. This is **not suitable for production** and should be configured securely if deployed outside local development.
91116
* Basic `sqlglot` conversion (without AI validation) does **not** require a Denodo connection.
92117
118+
## Roadmap
119+
120+
* Improved sqlglot denodo dialect for better translations.
121+
* Advanced mode for SQL performance improvements
122+
* SQL inline comment generation from metadata
123+
* Support for various AI APIs and models
124+
93125
## Contributing
94126
95-
Contributions are welcome. Please open an issue or submit a pull request.
127+
Please open an issue to discuss potential changes or submit a pull request with your improvements. We appreciate contributions for bug fixes, new features, or documentation enhancements.
96128
97129
## License
98130
[MIT](https://choosealicense.com/licenses/mit/)

0 commit comments

Comments
 (0)