Skip to content

evolveDB/LearnedRewrite

Repository files navigation

A Demo of SQL Rewrite.


OverviewInstallationDatasetsIssuesCitation

version

What's New?

  • May 2022: First Commit

Overview

evolveRewrite is a learned SQL transformation tool, which takes as input a SQL query and corresponding statistics (e.g., schema, #-table rows), finds the optimal rewrite sequence and outputs an optimized rewritten query. Currently evolveRewrite is developled based on Calcite.

Installation

Note: 仅需要安装JAVA环境就可运行项目,早期的JDK版本在Calcite上有编码问题,所以建议使用JDK11以上版本。 点击查看安装文档

What Can You Do via evolveRewrite?

Code Usage

  • 可在Interllij IDEA等IDE中直接运行test。
  • 当前测试数据基于TPCH,如需修改为其它测试数据可修改src/main/schema.json中json格式的schema
  • 修改src/test文件中的testSql进行语句测试

demo

Use Api

项目中带了HttpServer,可直接运行nohup /root/jdk-15/bin/java -jar {{输入项目路径}}/rewriter_java.jar --server.port=6336 &,端口为6336

  • api: /rewriter POST {sql: "select....", schema: {....}}

demo

Datasets

For the online version, we support datasets with different legal schema. By default we adopt TPC-H schema in evolveRewrite.

Issues

Major improvement/enhancement in future.

  • add custom rules
  • update the RA2SQL script (e.g., avoiding useless changes from the origin SQL)
  • support cost models of mainstream databases
  • verify rewriting equivalence
  • add more rewriting information in the front-end pages
  • test under more real scenarios (welcome to contact us:))

Citation

Please cite our paper if you use SQL-Rewriter in your work

@article{DBLP:journals/pvldb/ZhouLCF21,
  author    = {Xuanhe Zhou and
               Guoliang Li and
               Chengliang Chai and
               Jianhua Feng},
  title     = {A Learned Query Rewrite System using Monte Carlo Tree Search},
  journal   = {Proc. {VLDB} Endow.},
  volume    = {15},
  number    = {1},
  pages     = {46--58},
  year      = {2021},
}

Contributors

We thank all the contributors to this project, more contributors are welcome!

About

No description, website, or topics provided.

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages