Skip to content

Documentation

Seongjin Yoon edited this page Sep 10, 2023 · 2 revisions

QueryBooster

Introduction

QueryBooster is a middleware-based query rewriting framework.

QueryBooster intercepts SQL queries by customizing JDBC drivers used by applications (e.g., Tableau) and uses rules to rewrite the queries to semantically equivalent yet more efficient queries. The rewriting rules are designed by data experts who analyze slow queries and apply their domain knowledge and optimization expertise. QueryBooster can accelerate queries formulated by Tableau up to 100 times faster.

Installation

Follow these steps to install and set up QueryBooster:

Clone the Repository

Clone the QueryBooster repository from GitHub using the following command:

git clone https://github.com/ISG-ICS/QueryBooster.git

Python Version

QueryBooster requires Python 3.8 or newer.

Create a Virtual Environment

Navigate to the cloned QueryBooster directory and create a Python virtual environment:

cd QueryBooster
python3 -m venv venv

Install Dependencies

Activate the virtual environment and install the required Python packages from the requirements.txt file:

source venv/bin/activate
pip install -r requirements.txt

Compile and Deploy QueryBooster client

cd client/
npm run build

Run QueryBooster server

Navigate to the root directory and run the QueryBooster server using Gunicorn:

cd ..
gunicorn -w 4 -b 127.0.0.1:8000 'server.server:app'

Access QueryBooster web interface

Open your web browser and go to the following link to access the QueryBooster web interface: http://localhost:8000

Test

To ensure everything is set up correctly, run the tests:

python3 -m pytest

JDBC Drivers

Install Tableau Desktop

The QueryBooster customized JDBC drivers repository are listed below:

You can locate the appropriate JDBC driver files in the following directories:

  • for Mac: /Library/Tableau/Drivers
  • for Windows: C:\Program Files\Tableau\Drivers