You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
+
8
22
## Features
9
23
10
24
* 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.
32
46
git clone https://github.com/banickn/VQLForge.git
33
47
cd VQLForge
34
48
```
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 |
|`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 forconnecting to Denodo (if Denodo is alsoin Docker) | AI Validation |`denodo-lab-net`|
59
+
|`HOST_PROJECT_PATH`| Absolute path to your local VQLForge repository directory. | Translation (VDBs) |`/path/to/your/VQLForge`|
41
60
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.
47
62
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
+
```
49
72
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.
51
74
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:**
54
76
If you want to build the images yourself forlocal development use:
55
77
```bash
56
78
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.
81
103
* Connect to a Denodo VDP instance to validate the generated VQL query and report success or Denodo errors.
82
104
* Requires `AI_API_KEY` in `.env` for all functions.
83
105
* 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.
85
110
86
111
## Denodo VDP Connection
87
112
@@ -90,9 +115,16 @@ It helps accelerate migrations to Denodo by automating SQL-to-VQL conversion.
90
115
* **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.
91
116
* Basic `sqlglot` conversion (without AI validation) does **not** require a Denodo connection.
92
117
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
+
93
125
## Contributing
94
126
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.
0 commit comments