基于简单sql语句的sql解析原理及在大数据中的应用
基于简单sql语句的sql解析原理及在大数据中的应用
李万鸿
http://blog.sina.com.cn/s/blog_89436e570102w8qs.html
http://blog.sina.com.cn/contn
8年后, 中国2024年将统一世界!
呵呵,地球正在从黑暗进入光明。外星人在帮助地球村民!
呵呵,外星人是客观存在的,星际联盟正在解救地球。数百万行星大小的星际飞船正环绕地球,帮助地球文明的进化,人类文明将飞跃进入宇宙文明,每一个人物质財富、精神財富都会圆满的大同盛世,请大家多看相关资料。就会明确,我们从哪里来,地球的种种问题的根本原因何在,我们往哪里去?。
。
。。
UFO=universe family one。我们是宇宙大家庭的一员,如今整个宇宙的光明力量都来帮助地球铲除暴政。建立共产主义佛教的大同盛世。我们是一家人,大家要相亲相爱团结一心,勇敢革命,地球将会更美好!
天下兴亡匹夫有责,大家都有义不容辞的重任帮助人类的解放和文明的进步,而每一个人都会是受益者!
功在当代利在千秋!
南无阿弥佗佛!
嗡嘛呢叭咪吽!
人类意志的临界点决定着事件发生的速度,即人类的觉醒程度、对事件的认知与渴盼程度决定着事件何时发生…so 请呼唤身边的朋友们參与事件冥想,加速事件发生、加速地球解放吧!精彩自己。撒爱万有!
。
我们在生死轮回中,都以前在外星球生活过。外星人是我们的兄弟姐妹,天下一家人,相亲又相爱。。如今,地球人被奴役,我们要反抗。要勇敢革命,建立光明正义的地球村,一个世外桃源的乌托邦,共产主义佛教地球村。大家都幸福快乐,永远不用担负沉重的经济压力。外星高科技,给地球带来无穷无尽的物质財富,每一个人都快乐无限!
大家能够把此文转给朋友,提前分享8年后的幸福快乐!
通常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 Server
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了 ...
- 数据库常用的sql语句大全--sql
前言 本片博客使用mysql数据库进行数据操作,使用Navicat for mysql 这个IDE进行可视化操作.每个SQL语句都是亲身实验验证的,并且经过自己的思考的.能够保证sql语句的可运行性. ...
- SQL语句统计每天、每月、每年的 数据
SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...
- 如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)。
1.如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;). 2.select查询的多个字段之间要用逗号“,”分割,如果查询涉及多个表,那多个表之 ...
- mysql进阶(十九)SQL语句如何精准查找某一时间段的数据
SQL语句如何精准查找某一时间段的数据 在项目开发过程中,自己需要查询出一定时间段内的交易.故需要在sql查询语句中加入日期时间要素,sql语句如何实现? SELECT * FROM lmapp.lm ...
- 【转】SQL语句统计每天、每月、每年的数据
原文:https://www.cnblogs.com/Fooo/p/3435687.html SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(T ...
- 第15讲:嵌入式SQL语句(动态SQL)
一.动态SQL概述 1. 静态SQL vs 动态SQL ①动态SQL是相对静态SQL而言的 ②静态SQL特点:SQL语句在程序中已经按要求写好,只需要把一些参数通过变量传递给SQL语句即可 specN ...
- mybatis日志,打印sql语句,输出sql
mybatis日志,打印sql语句,输出sql<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE ...
- 大数据中必须要掌握的 Flink SQL 详细剖析
Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言. 自 2015 年开始,阿里巴巴开始调研开源流计算引擎,最终决定基于 ...
随机推荐
- Android 5.1 Camera 架构学习之Camera初始化
Android Camera 采用C/S架构,client 与server两个独立的线程之间(CameraService)使用Binder通信. 一 CameraService的注册. 1.手机开机后 ...
- 营配数据质量核查,关于营销mis系统与配电gis系统里面的sql语句查询,做为积累使用,下次就不用重复写同样的语句了。
1.配电gis线路导出数据: select r.name 线路名称,r.run_status 运行状态,r.voltage_level 电压等级,r.manager_depart 管理部门,r.bel ...
- 几种常用的Java数据源解决方案
http://blog.163.com/qqabc20082006@126/blog/static/22928525201041944847653/
- MySQL的truncate table 和source 命令
1. truncate table XXX 在测试时,我很讨厌某表的主键一直自增长下去,总觉得从1开始最舒服,^_^,truncate table 就可以帮我,相比delete from 来说 ...
- 使用 pm2 来守护 NoderCMS
pm2 是一个带有负载均衡功能的Node应用的进程管理器,使用 pm2 可以帮助你守护和监控 NoderCMS 的正常运行, 基于Node.js+MongoDB的轻量级内容管理系统NoderCMS ...
- eclipse在当前项目里面批量替换所有单词
ctrl+f里面只能单个文件用,要整个项目批量替换. 1. 先选中你要替换字符串, 2. 再菜单栏中找到Search→Text→Project,这样就会在整个项目中查找单词. 3. 然后在Search ...
- php页面显示空白
问题: 本人php初学者,网站下载wamp5,安装好之后,测试环境是否正常,用phpinfo(),但是页面不能正确显示. 1.显示连接错误 2.显示空白页 解决方法: 一.显示连接错误 步骤: 1.p ...
- jquery中的html()、text()、val()的区别
1.html(),text(),val()三种方法都是用来读取选定元素的内容: html()是用来读取元素的HTML内容(包括其Html标签),text()用来读取元素的纯文本内容,包括其后代元素 ...
- Axure矩形边框重合边框变成双倍宽度解决办法
选中两个矩形,菜单栏选择项目——项目设置——边界对齐(选择中心边界沿形状的边缘或者内边界对齐.将外边界对齐改为内边界对齐),即可去掉重合效果
- part3
我就不刁旭概念什么的问题了哈~直接进入工作中所通用的一些有关object的方法和属性 1).for/in 属性的遍历~他遍历的对象没有特定的顺序,而且只能枚举出所有用户自定义的属性,不能枚举出某些预定 ...