分析引擎
SQL解析、优化、审核
参考资料
https://tech.meituan.com/2018/05/20/sql-parser-used-in-mtdp.html
https://developer.aliyun.com/article/71979
https://www.gnu.org/software/flex/
http://sqlparser.com/ 这家公司专门提供SQL 解析API
https://github.com/mariadb-corporation/MaxScale C语言编写的SQL解析
https://github.com/flike/kingshard go语言编写的SQL解析
https://github.com/Meituan-Dianping/SQLAdvisor
https://yq.aliyun.com/articles/218442
https://en.wikipedia.org/wiki/LR_parser
sql解析的应用
1.生成SQL特征。将SQL语句中的值替换成问号,方便SQL归类。虽然可以使用正则表达式实现相同的功能,但是其Bug较多,可以参考pt-query-digest。比如pt-query-digest中,会把遇到的数字都替换成“?”,导致无法区别不同数字后缀的表。
2.基于表粒度的慢查询报表。比如,一个Schema中包含了属于不同业务线的数据表,那么从业务线的角度来说,其希望提供表粒度的慢查询报表。
3.SQL合法性判断。为了安全、审计、控制等方面的原因
4.直接暴露SQL解析接口,使用尽量简单。比如,输入SQL,则输出表名、特征和优化建议。