基于简单sql语句的sql解析原理及在大数据中的应用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于简单sql语句的sql解析原理及在大数据中的应用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1995字,纯文字阅读大概需要3分钟。
内容图文
基于简单sql语句的sql解析原理及在大数据中的应用 李万鸿 通常sql语法解析都是以lex、yacc进行分析为基础的,是逐个字符进行分析,性能不高,如果基于没有子查询的sql语句进行解析,则速度会提高许多,在此对其原理加以说明。 一般sql语句十分复杂,包含多层
基于简单sql语句的sql解析原理及在大数据中的应用
李万鸿
通常sql语法解析都是以lex、yacc进行分析为基础的,是逐个字符进行分析,性能不高,如果基于没有子查询的sql语句进行解析,则速度会提高许多,在此对其原理加以说明。
一般sql语句十分复杂,包含多层嵌套,但其中有规律可循,其特点是所有的语句基本模式是一样的,即:都是SELECT FROM WHERE类型的简单语句,因此,可以把嵌套的语句逐条解析为这种简单语句。由于sql语句的语法是一样的,所以可以用递归的方法对语句加以解析,从而把sql语句解析为多条简单的子SQL语句。然后通过一个方法分别解析这些子sql语句。这样处理,算法简单有效,极大地提高性能,对于SQL语法解析来说是一个革命性的新思路。
大数据通常使用HBASE等NOSQL,对于sql开发来说极为不便,为此,采用分布式的关系数据库来保存大数据极具实用价值,比如用ORACLE、MYSQL把一张表分库保存到多个数据库,这样既可以处理海量数据又适用于传统的编程,支持MYBATIS、SPRING、HIBERNATE,开发极为方便。相应的难点是各个分库的表的ID的唯一性和SQL语句的处理。
对于ID的唯一性解决不难,关键在于分布式SQL的处理。随着SPARK等大数据软件应运而生,对于分布式数据的处理来说正当其时。可以用SPARK来处理分布的数据,那么如何得到这些数据呢?为此,可以通过本文提出的SQL解析原理对SQL语句进行解析,把一条复杂的SQL语句解析为多简单的SQL语句,如 SELECT A.*FORM USER A WHERE A.ID>222,然后通过数据字典找到USER表对应的分库,在各个分库上执行查询,然后把各个查询结果用SPARK处理,对于其他的子SQL语句如法炮制,然后根据主SQL语句的条件如JOIN、GROUP BY、ORDER BY等对所有的查询数据进行运算汇总处理,最后返回结果。
总之,通过获取各个简单的子SQL语句进行语法解析或语句分解,是一个行之有效的好办法,简单巧妙地解决了一个公共的难题,尤其对于采用高效数据库处理大数据有特殊的意义,为其奠定了基石。这是一个极为有效的解决办法,值得应用。
2014-10-17
内容总结
以上是互联网集市为您收集整理的基于简单sql语句的sql解析原理及在大数据中的应用全部内容,希望文章能够帮你解决基于简单sql语句的sql解析原理及在大数据中的应用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。