云平台中自动发放云组件实现大规模融合查询方法及系统与流程

文档序号:16999651发布日期:2019-03-02 01:40阅读:438来源:国知局
云平台中自动发放云组件实现大规模融合查询方法及系统与流程

本发明涉及大数据技术领域,尤其涉及一种云平台中自动发放云组件实现大规模融合查询方法及系统。



背景技术:

随着物联网和大数据的发展,数据规模快速增长,数据结构多种多样,数据正在提供越来越重要的价值,而这些数据的融合与分析也受到越来越多的重视,相关的方法和技术在不断的快速发展。

海量数据是指巨大、浩瀚的数据。目前,大多数的应用都要与数据库相连接,通过查询等操作得到数据预期结果。当达到一定的数据量、符合查询条件较多或多人同时在线查询时,从数据库中查询统计通常需要花费较长时间,这意味这造成高额的时间成本;另外,数据库系统的性能以及数据组织管理能力也会因此大为减弱,甚至会造成内存溢出或系统崩溃。目前的关系数据库技术,单表的数据量最大承载量大概在千万级,再大的数据量时数据库的查询性能急剧下降,甚至无法查询。

比如某业务系统归集了17个地市的业务数据,每个地市的业务数据量都超过了1000万,而这些业务数据表结构相同,则需要进行多个审计sql的融合查询,由于数据量大,现有业务系统无法承载大数据量的查询需求。



技术实现要素:

有鉴于此,本发明提出一种云平台中自动发放云组件实现大规模融合查询方法及系统。

一种云平台中自动发放云组件实现大规模融合查询方法,其包括如下步骤:

s1、进行基于sql查询的代价分析;

s2、计算hive存储代价和prestodb查询代价;

s3、自动发放相关云组件并配置组件参数;

s4、执行组件将最终查询结果返回到指定的数据库表中;

s5、在执行完毕后,回收云组件。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s1包括:

获取业务系统中sql查询中的表的数量t_num;

根据每个表的数据量获得单表查询所消耗的时间t_query_time,并作为参数预先配置。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s2包括:

根据表的数据量获得存入hive中所消耗的时间;

根据表的数据量获得在prestodb中查询所消耗的时间p_query_time;

计算h_insert_time和p_query_time之和p_total_time;

判断p_total_time与t_query_time的大小关系,在p_total_time小于t_query_time时,跳转到步骤s3;否则在关系数据库中查询并返回结果数据并结束。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s3包括:

自动发放dmetl组件和dmudb组件,并自动配置dmetl组件和dmudb组件的参数。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s4包括:

执行dmetl组件,实现将数据抽取并插入到hive中;

执行dmudb组件,实现数据查询操作,并将结果数据缓存到指定的数据表中;

通知业务系统执行完毕,到指定的数据库表中取结果数据。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s5包括

业务系统提取结果数据,并通知云平台执行完毕;

云平台收到执行完毕的通知后,自动回收已发放的dmetl组件和dmudb组件。

本发明还一种云平台中自动发放云组件实现大规模融合查询系统,其包括如下单元:

代价分析单元,用于进行基于sql查询的代价分析;

代价计算单元,用于计算hive存储代价和prestodb查询代价;

组件发放单元,用于自动发放相关云组件并配置组件参数;

数据查询单元,用于执行组件将最终查询结果返回到指定的数据库表中;

组件回收单元,用于在执行完毕后,回收云组件。

在本发明所述的云平台中自动发放云组件实现大规模融合查询系统中,

所述代价分析单元包括:

获取业务系统中sql查询中的表的数量t_num;

根据每个表的数据量获得单表查询所消耗的时间t_query_time,并作为参数预先配置。

在本发明所述的云平台中自动发放云组件实现大规模融合查询系统中,

所述代价计算单元包括:

根据表的数据量获得存入hive中所消耗的时间;

根据表的数据量获得在prestodb中查询所消耗的时间p_query_time;

计算h_insert_time和p_query_time之和p_total_time;

判断p_total_time与t_query_time的大小关系,在p_total_time小于t_query_time时,执行组件发放单元的功能;否则在关系数据库中查询并返回结果数据并结束。

在本发明所述的云平台中自动发放云组件实现大规模融合查询系统中,

所述组件发放单元包括:

自动发放dmetl组件和dmudb组件,并自动配置dmetl组件和dmudb组件的参数;

所述数据查询单元包括:

执行dmetl组件,实现将数据抽取并插入到hive中;

执行dmudb组件,实现数据查询操作,并将结果数据缓存到指定的数据表中;

通知业务系统执行完毕,到指定的数据库表中取结果数据;

所述组件回收单元包括:

业务系统提取结果数据,并通知云平台执行完毕;

云平台收到执行完毕的通知后,自动回收已发放的dmetl组件和dmudb组件。

实施本发明提供的云平台中自动发放云组件实现大规模融合查询方法及系统与现有技术相比具有以下有益效果:

能够实现根据预设规则,自动部署云主机、软件服务等各种服务的过程,并能够使得业务系统能够承载大数据量的查询。

附图说明

图1是云平台中自动发放云组件实现大规模融合查询方法流程图。

具体实施方式

如图1所示,一种云平台中自动发放云组件实现大规模融合查询方法,其包括如下步骤:

s1、进行基于sql查询的代价分析;

可选地,代价分析可以基于dm7的代价计算器。

s2、计算hive存储代价和prestodb查询代价;

可选地,可以

s3、自动发放相关云组件并配置组件参数;

自动发放是指在云平台中,根据用户申请或某种程序规则,自动部署云主机、软件服务等各种服务的过程。这里的自动是相对于传统而言,在传统的系统平台中,需要人工手动创建并部署主机、手动部署应用服务等。

s4、执行组件将最终查询结果返回到指定的数据库表中;

s5、在执行完毕后,回收云组件。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s1包括:

获取业务系统中sql查询中的表的数量t_num;

根据每个表的数据量获得单表查询所消耗的时间t_query_time,并作为参数预先配置。t_query_time数据为历史经验值。

可以预先配置作为基础数据。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s2包括:

根据表的数据量获得存入hive中所消耗的时间;

根据表的数据量获得在prestodb中查询所消耗的时间p_query_time;

计算h_insert_time和p_query_time之和p_total_time;

判断p_total_time与t_query_time的大小关系,在p_total_time小于t_query_time时,跳转到步骤s3;否则在关系数据库中查询并返回结果数据并结束。实施本步骤能够实现智能判断,按需启动云平台融合查询。

本发明的步骤只会存在2条执行路径:

执行路径一:s1—>s2—>结束。

执行路径二:s1—>s2—>s3—>s4—>s5—>结束。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s3包括:

自动发放dmetl组件和dmudb组件,并自动配置dmetl组件和dmudb组件的参数。

dmetl和dmudb都是达梦的产品,产品的功能和特点以白皮书的方式对外公开。

参数包括:

1、dmetl组件包含的参数:

源数据库连接信息:用来连接源头数据库,一般是关系数据库。

表结构信息:用于抽取数据。

目的数据库连接信息:用于连接目的数据库hive。

存储结构信息:用于在hive中存储数据。

2、dmudb组件包含的参数:

源数据库连接信息:用来连接源数据库hive。

表结构信息:hive中存储数据的结构信息。

查询语句:用于查询数据的sql语句。

存储结果数据的数据库信息:最终查询结果存储的目的数据库的连接信息,一般是关系数据库。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s4包括:

执行dmetl组件,实现将数据抽取并插入到hive中;

执行dmudb组件,实现数据查询操作,并将结果数据缓存到指定的数据表中;

通知业务系统执行完毕,到指定的数据库表中取结果数据。

在本发明所述的云平台中自动发放云组件实现大规模融合查询方法中,

所述步骤s5包括

业务系统提取结果数据,并通知云平台执行完毕;

云平台收到执行完毕的通知后,自动回收已发放的dmetl组件和dmudb组件。

例:某业务系统按多个(比如17个)地市分开独立部署(共部署了17个系统),归集了17个地市的业务数据,表结构相同,需要对所有审计日志进行查询。

目前大致有两种实现方式:

传统的方法,将所有数据汇集到一个数据库表中,然后对这个汇总表进行查询。此方法可能会消耗很长时间(例如24小时)或无法执行(例如数据库崩溃)。

第二种:将所有数据汇集到hive中存储,利用分布式大数据sql查询引擎prestodb进行查询,支持pb级(250pb)大数据的交互式查询,极大缩短查询时间。

本发明还一种云平台中自动发放云组件实现大规模融合查询系统,其包括如下单元:

代价分析单元,用于进行基于sql查询的代价分析;

代价计算单元,用于计算hive存储代价和prestodb查询代价;

组件发放单元,用于自动发放相关云组件并配置组件参数;

数据查询单元,用于执行组件将最终查询结果返回到指定的数据库表中;

组件回收单元,用于在执行完毕后,回收云组件。

在本发明所述的云平台中自动发放云组件实现大规模融合查询系统中,

所述代价分析单元包括:

获取业务系统中sql查询中的表的数量t_num;

根据每个表的数据量获得单表查询所消耗的时间t_query_time,并作为参数预先配置。

在本发明所述的云平台中自动发放云组件实现大规模融合查询系统中,

所述代价计算单元包括:

根据表的数据量获得存入hive中所消耗的时间;

根据表的数据量获得在prestodb中查询所消耗的时间p_query_time;

计算h_insert_time和p_query_time之和p_total_time;

判断p_total_time与t_query_time的大小关系,在p_total_time小于t_query_time时,执行组件发放单元的功能;否则在关系数据库中查询并返回结果数据并结束。

在本发明所述的云平台中自动发放云组件实现大规模融合查询系统中,

所述组件发放单元包括:

自动发放dmetl组件和dmudb组件,并自动配置dmetl组件和dmudb组件的参数;

所述数据查询单元包括:

执行dmetl组件,实现将数据抽取并插入到hive中;

执行dmudb组件,实现数据查询操作,并将结果数据缓存到指定的数据表中;

通知业务系统执行完毕,到指定的数据库表中取结果数据;

所述组件回收单元包括:

业务系统提取结果数据,并通知云平台执行完毕;

云平台收到执行完毕的通知后,自动回收已发放的dmetl组件和dmudb组件。

实施本发明提供的云平台中自动发放云组件实现大规模融合查询方法及系统与现有技术相比具有以下有益效果:

能够实现根据预设规则,自动部署云主机、软件服务等各种服务的过程,并能够使得业务系统能够承载大数据量的查询。

可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。

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