Note that the software requirement for DeepMapping-R is different from VerdictDB and DBEst++. For VerdictDB and DBEst++, please refer to their original repositories for installation instructions. For VerdictDB, we used python API and pymyql. According to their document, python 3.7 is required in conda environment.
For DeepMapping-R, install
python -m pip install -r requirements.txt
To set up default password for root user, follow here:
sudo mysql -u root # I had to use "sudo" since it was a new installation
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
sudo service mysql restart
Datasets are publicly available from the web. You can download them via the following links.
We generated the Store Sales table with the TPC-DS tools with SF=1.0.
dsqgen --SCALE 1 --OUTPUT_DIR tpcds_data_SF1
The dataset is first scale up using IDEBench.
bash bash_scipts/run_datagen.sh
After data is prepared, generated the range queries:
bash bash_scripts/deepmapping/run_query_gen.sh
Run DeepMapping-R:
bash bash_scripts/deepmapping/pm25.sh
bash bash_scripts/deepmapping/ccpp.sh
bash bash_scripts/deepmapping/flights.sh
bash bash_scripts/deepmapping/store_sales.sh
There are five baselines: VerdictDB, DBEst++, Synopsis, two DeepMapping Variants
First, insert data into MySQL database
bash bash_scripts/verdictdb/add_data.sh
Then you can run the queries with different sample ratios
bash bash_scripts/verdictdb/diff_sample_ratio.sh
You can run the insertion and then query.
bash bash_scripts/verdictdb/insert.sh
You can run DBEst++ by downloading their repository, and copy all files in "DBEst++" in our repository to "experiments" folder. You can run the queries:
bash run_train.sh
To run the insertion experiment:
bash run_insert.sh
If you want to know the model size, you can get a model size chart by running
python get_model_sizes.py
"Synopsis" is directly using the training data of DeepMapping-R to answer range queries.
bash bash_scripts/deepmapping/run_synopsis.py
Run two DeepMapping-R variants NHP and NHR:
bash bash_scripts/deepmapping/run_deepmapping_variants.py