一种基于分布式数据库的sql语句处理方法与流程

文档序号:13760454阅读:来源:国知局
一种基于分布式数据库的sql语句处理方法与流程

技术特征:

1.一种基于分布式数据库的sql语句处理方法,其特征在于,包括客户端、主控机、元数据库节点和数据库节点:

所述客户端,负责提交sql,从主控机获取元数据,进行sql分析,安排执行,并接受执行结果;

所述主控机,负责管理和监控客户端、元数据库节点和数据库节点;

所述元数据库节点,负责存储表的结构信息和数据分布信息,作为生成执行计划的依据;

所述数据库节点,负责存储数据的节点,也负责执行本节点上的sql语句;

该方法基于分布式数据库,表是存储在多个数据库节点中,输入sql语句,包含增、删、改和查的操作,输出是sql执行的结果。

2.根据权利要求1所述的基于分布式数据库的sql语句处理方法,其特征是,所述的增、删和改的操作如下:

当插入数据的时候,根据分表的策略将记录插入到对应的数据库节点中;

当更新数据的时候,根据分表的策略判断数据的源数据库节点和目标数据库节点是否变化,如果没有变化,直接更新,如果有变化,在源数据库节点中删除老数据,在目标数据库节点中插入新数据;

当删除数据的时候,根据分表的策略在相应的数据库节点中删除。

3.根据权利要求2所述的基于分布式数据库的sql语句处理方法,其特征是,所述的分表的策略,是根据表的均衡字段和分表算法将数据规律的放到数据库节点上。

4.根据权利要求3所述的基于分布式数据库的sql语句处理方法,其特征是,所述的均衡字段为表的一个或几个字段,用于将记录按照分的表策略插入到对应的节点中。

5.根据权利要求3所述的基于分布式数据库的sql语句处理方法,其特征是,所述的分表算法包含list,hash,range中的一种或几种的结合。

6.根据权利要求1-5任意一项所述的基于分布式数据库的sql语句处理方法,其特征是,所述的查的操作如下:

将输入的sql语句经过语义分析,结合表的结构信息和数据分布信息,生成包含多个阶段的执行计划;

阶段之间具有依赖关系,形成一棵多输入单输出的树形结构。

7.根据权利要求6所述的基于分布式数据库的sql语句处理方法,其特征是:

所述的执行计划的每个阶段包括三个操作:map、shuffle和reduce;

map执行mapsql,需要执行map的数据库节点称为map节点;shuffle执行洗牌,将map的输出中洗牌字段相同的数据放到同一个reduce中;

reduce执行reducesql,需要执行reduce的数据库节点称为reduce节点。

8.根据权利要求7所述的基于分布式数据库的sql语句处理方法,其特征是,同一个阶段中,多个reduce节点是有关系的,具体而言:当查操作包含排序和聚合操作,reduce节点具有大小关系,排序和聚合字段小的reduce节点小,这样每个reduce节点执行完成之后,依据reduce节点的大小关系,就可以得到整体的结果;

当查操作包含非等值join,reduce节点具有大小关系,排序字段小的reduce节点小,reduce节点之间需要进行join,不同reduce节点之间的大小关系决定了join结果是否是匹配的,相同的reduce节点之间需要执行同样的sql来返回匹配的结果;

当查操作包含表达式计算的等值join,map节点的输出数据中可以依据join表达式添加辅助字段,把辅助字段作为洗牌字段进行shuffle操作,这样每个reduce节点执行完成之后,就完成了包含表达式计算的等值join;

不包含排序和聚合的单表操作,不包含表达式计算的等值join,reduce节点之间可以没有关系。

9.根据权利要求8所述的基于分布式数据库的sql语句处理方法,其特征是,所述的洗牌字段,是依据具体的查询语句得到,如果是聚合操作,那么洗牌字段就是聚合字段,如果是排序操作,那么洗牌字段就是排序字段,如果是连接操作,那么洗牌字段就是连接字段,如果查询包含了多种操作,那么就需要分成多个步骤,每个步骤有相应的洗牌字段。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1