当前位置: 首页 > 专利查询>江和慧专利>正文

一种基于分布式数据库的sql语句处理方法技术

技术编号:14183038 阅读:91 留言:0更新日期:2016-12-14 12:30
本发明专利技术涉及一种基于分布式数据库的sql语句处理方法,属于线上数据处理和后期数据处理的存储和计算技术领域。该方法基于分布式数据库,表是存储在多个数据库节点中,输入sql语句,包含增、删、改和查的操作,输出是sql执行的结果。本方法应用于线上数据处理的插入,更新,删除和查询;特别是应用于大数据量的情况下跨节点连接,夸节点子查询等复杂逻辑。

A method for processing SQL statements based on Distributed Database

The invention relates to a method for processing a SQL statement based on a distributed database, which belongs to the technical field of storage and calculation of on line data processing and later data processing. The method is based on the distributed database, the table is stored in a number of database nodes, the input SQL statements, including add, delete, modify and check the operation, the output is the result of SQL implementation. This method can be used to insert, update, delete and query online data processing, especially in the case of large amount of data, such as cross node connection, complex query, and so on.

【技术实现步骤摘要】

本专利技术涉及一种基于分布式数据库的sql语句处理方法,属于线上数据处理和后期数据处理的存储和计算
,线上数据处理具有高并发和大量数据的特征,后期数据处理包括线上数据同步到数据仓库,数据分析挖掘,机器学习。
技术介绍
随着现实应用中数据的存储和计算量越来越大,需要将独立的数据库进行水平的扩展,按照某种策略将数据存储在多个数据库节点中,现有技术中的分表思想实现了数据的扩展。分表的架构下,同时带来了计算上的麻烦,即必须跨机器,跨不同数据库实例,某些特定的应用场景如连接,子查询很难实现;后期数据处理,将数据从线上数据处理的系统中通过ETL(数据抽取、转换和装载)过程同步到数据仓库中,而线上数据系统和数据仓库系统通常为不同的存储架构,数据结构发生了变化,导致无法快速的完成数据同步,例如更新记录和删除记录很难快速的同步到数据仓库中,同时也限制了后期数据处理的速度。
技术实现思路
本专利技术的目的在于解决现有技术存在的上述问题,避免线上数据同步到数据仓库(例如hadoop或者异构数据库)的麻烦;后期数据处理,包括数据分析,数据挖掘,机器学习;在线上数据处理和后期数据处理中都会遇到的跨节点连接,夸节点子查询等问题。本专利技术通过以下技术方案实现:一种基于分布式数据库的sql语句处理方法,其特征在于,包括客户端、主控机、元数据库节点和数据库节点:所述客户端,负责提交sql,从主控机获取元数据,进行sql分析,安排执行,并接受执行结果;所述主控机,负责管理和监控客户端、元数据库节点和数据库节点;所述元数据库节点,负责存储表的结构信息和数据分布信息,作为生成执行计划的依据;所述数据库节点,负责存储数据的节点,也负责执行本节点上的sql语句;该方法基于分布式数据库,表是存储在多个数据库节点中,输入sql语句,包含增、删、改和查的操作,输出是sql执行的结果。作为优选,所述的增、删和改的操作如下:当插入数据的时候,根据分表的策略将记录插入到对应的数据库节点中;当更新数据的时候,根据分表的策略判断数据的源数据库节点和目标数据库节点是否变化,如果没有变化,直接更新,如果有变化,在源数据库节点中删除老数据,在目标数据库节点中插入新数据;当删除数据的时候,根据分表的策略在相应的数据库节点中删除。作为优选,所述的分表的策略,是根据表的均衡字段和分表算法将数据规律的放到数据库节点上。作为优选,所述的均衡字段为表的一个或几个字段,用于将记录按照分的表策略插入到对应的节点中。作为优选,所述的分表算法包含list,hash,range中的一种或几种的结合。作为优选,所述的查的操作如下:将输入的sql语句经过语义分析,结合表的结构信息和数据分布信息,生成包含多个阶段的执行计划;阶段之间具有依赖关系,形成一棵多输入单输出的树形结构。作为优选,所述的执行计划的每个阶段包括三个操作:map、shuffle和reduce;map执行mapsql,需要执行map的数据库节点称为map节点;shuffle执行洗牌,将map的输出中洗牌字段相同的数据放到同一个reduce中;reduce执行reducesql,需要执行reduce的数据库节点称为reduce节点。作为优选,同一个阶段中,多个reduce节点是有关系的,具体而言:当查操作包含排序和聚合操作,reduce节点具有大小关系,排序和聚合字段小的reduce节点小,这样每个reduce节点执行完成之后,依据reduce节点的大小关系,就可以得到整体的结果;当查操作包含非等值join,reduce节点具有大小关系,排序字段小的reduce节点小,reduce节点之间需要进行join,不同reduce节点之间的大小关系决定了join结果是否是匹配的,相同的reduce节点之间需要执行同样的sql来返回匹配的结果;当查操作包含表达式计算的等值join,map节点的输出数据中可以依据join表达式添加辅助字段,把辅助字段作为洗牌字段进行shuffle操作,这样每个reduce节点执行完成之后,就完成了包含表达式计算的等值join;不包含排序和聚合的单表操作,不包含表达式计算的等值join,reduce节点之间可以没有关系。作为优选,所述的洗牌字段,是依据具体的查询语句得到,如果是聚合操作,那么洗牌字段就是聚合字段,如果是排序操作,那么洗牌字段就是排序字段,如果是连接操作,那么洗牌字段就是连接字段,如果查询包含了多种操作,那么就需要分成多个步骤,每个步骤有相应的洗牌字段。与现有技术相比,具有以下优点,本专利技术可应用于:1、应用于线上数据处理的插入,更新,删除和查询。2、应用于大数据量的情况下跨节点连接,夸节点子查询等复杂逻辑:由于数据进行了分表处理,这些复杂的逻辑就需要处理所涉及的所有节点上的数据,并且在计算的模型上比单节点要复杂,需要一个统一的计算模型来实现,具体参见权利要求说明书。3、应用于后期数据处理:由于后期数据处理本质上可以转换为一步或者多步sql语句,每个sql语句可以产生包含多个阶段的执行计划,所以对于后期的数据处理中数据分析挖掘,机器学习可以将需要转为一个或者多个sql来实现。对于流式计算,客户端需要长期运行,不断监控装置中数据的变化,执行相应的计算,或者每隔一段时间来执行相应的计算;在后期的数据处理上,保持了和线上数据库一致的结构和功能,例如表具有索引,数据库具有缓存机制,数据库本身具有排序,分组,连接等各种功能,这些结构和功能能很好的提高后期的数据处理的速度。4、应用于线上数据同步到数据仓库,通过数据库节点的同步机制达到线上数据同步到数据仓库的目的,即线上数据处理和后期数据处理使用两套数据库节点,用于后期数据处理的map节点与用于线上数据处理的map节点保持同步,这种同步功能在很多数据库系统中已经实现。5、无论应用于线上数据处理和后期数据处理:都是将需求转换成的sql来执行,统一了对外接口,同时也减轻了开发的成本。6、对于从大量数据中只查询少量数据的情况,优于目前的hadoop方案。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是基于本专利技术处理方法实施例的系统结构示意图。图2是本专利技术实施例中sq l执行步骤图。图3是本专利技术实施例中阶段树的示意图。图4是本专利技术实施例中阶段的执行示意图。具体实施方式以下结合具体实施例来说明本专利技术,下列实施例仅用于说明本专利技术的技术方案,并不限定本专利技术的保护范围。实施例:假设系统中有2张表,用户表tab_user_info和用户登录表tab_login_info。用户表tab_user_info如下:字段字段描述字段类型u_id用户idint类型u_name用户姓名varcharu_reg_dt用户注册时间timestampu_age用户年龄int用户登录表tab_login_info的结构如下:字段字段描述字段类型u_id用户idintlogin_ip登录ipintlogin_dt登录时间timestamplogin_product登录到哪个产本文档来自技高网...
一种基于分布式数据库的sql语句处理方法

【技术保护点】
一种基于分布式数据库的sql语句处理方法,其特征在于,包括客户端、主控机、元数据库节点和数据库节点:所述客户端,负责提交sql,从主控机获取元数据,进行sql分析,安排执行,并接受执行结果;所述主控机,负责管理和监控客户端、元数据库节点和数据库节点;所述元数据库节点,负责存储表的结构信息和数据分布信息,作为生成执行计划的依据;所述数据库节点,负责存储数据的节点,也负责执行本节点上的sql语句;该方法基于分布式数据库,表是存储在多个数据库节点中,输入sql语句,包含增、删、改和查的操作,输出是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语句经过语义分析,结合表的结构信息和数据分布信息,生成包含多个阶段的执行计划;阶段之间具有依赖关系,形成一棵多输入单输出的...

【专利技术属性】
技术研发人员:江和慧
申请(专利权)人:江和慧
类型:发明
国别省市:安徽;34

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1