一种统计数据的即席查询方法及系统与流程

文档序号:14940864发布日期:2018-07-13 20:43阅读:1710来源:国知局

本发明涉及计算机网络技术领域,尤其涉及一种统计数据的即席查询方法及系统。



背景技术:

在大数据日益盛行的时代,做任何一个商业决策之前都希望建立在大数据的统计分析之上,如何获取这些统计数据,并且能尽可能快速的获取统计数据是非常关键的。目前获取数据的普遍方式是bi工程师通过编写数据运算程序,利用大数据平台进行数据提取,并将数据提供给数据需求人员。该现有技术的具体流程为:业务数据需求人员向bi工程师提出提取数据的需求;bi工程师分析数据需求;编写数据运算的程序(结构化查询语言sql);在大数据平台上执行数据运算程序;将数据结果生成数据报表(比如:excel文件格式报表);bi工程师将数据报表以邮件的方式发送给数据需求人员。

上述现有技术获取统计数据要经过发起提取数据需求,bi工程师分析需求、编写程序,执行程序且生成报表,以及邮件发送报表的过程,不仅流程复杂,速度慢、耗时较长,效率很低,而且整个获取统计数据的过程需要bi工程师参与,且需要编写数据运算的程序,强依赖于bi工程师。



技术实现要素:

有鉴于此,本发明提供一种统计数据的即席查询方法及系统,能够让数据需求人员自助选择需要的统计数据的数据维度,根据数据维度相关的信息生成查询的sql,提交给大数据平台进行数据运算,并将数据结果实时展现,同时提供数据报表导出功能,进而解决需要编写数据运算的程序,强依赖于bi工程师,速度慢、耗时较长,效率很低的问题。

为实现上述目的,根据本发明的一个方面,提供了一种统计数据的即席查询方法。本发明的方法包括:根据数据需求选择统计数据的数据维度并配置筛选条件;根据所述数据维度和筛选条件从数据库中加载数据维度相关的信息;根据所述数据维度相关的信息构造结构化查询语句;执行所述结构化查询语句,返回数据结果。

可选地,本发明的方法还包括:对基础数据群中海量数据进行预处理,获得有规则的业务数据并存储;并且对业务数据进行数据维度维护,以及将数据维度相关的信息存储在数据库中。

可选地,本发明的方法还包括:通过java数据库连接与数据查询引擎连接;返回数据结果后展示和下载所述数据结果。

可选地,所述数据查询引擎为presto。

可选地,本发明的方法还包括:调用数据查询引擎的查询接口以查询数据,并且返回数据结果。

根据本发明的另一方面,提供了一种统计数据的即席查询系统。本发明的系统包括:即席查询模块、数据库、大数据平台;所述即席查询模块包括数据选择器和sql构造器,所述数据选择器用于根据数据需求选择统计数据的数据维度并配置筛选条件;以及根据所述数据维度和筛选条件从数据库中加载数据维度相关的信息;所述sql构造器用于根据所述数据维度相关的信息构造结构化查询语句;所述大数据平台用于执行所述结构化查询语言,返回数据结果。

可选地,所述大数据平台还用于对基础数据群中海量数据进行预处理,获得有规则的业务数据并存储。所述即席查询模块的数据源构建单元,对业务数据进行数据维度维护,以及将数据维度相关的信息存储在所述数据库中。

可选地,所述即席查询模块还包括:连接单元,用于通过java数据库连接与数据查询引擎连接;展示单元,用于数据结果返回后展示和下载所述数据结果。

可选地,所述数据查询引擎为presto。

可选地,所述大数据平台还用于调用数据查询引擎的查询接口以查询数据,以及返回数据结果。

根据本发明的技术方案,通过选择所需要的数据维度和配置筛选条件,并且根据这些数据维度相关的信息,生成结构化查询语句sql,执行sql查询语句后,返回查询的数据结果。本发明的技术方案可查询各维度统计数据,且能实时返回统计结果,方便快捷,效率高,并且不依赖于bi工程师。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的一种统计数据的即席查询方法主要步骤的示意图;

图2是根据本发明实施例的一种统计数据的即席查询方法的流程图;

图3是根据本发明实施例的一种统计数据的即席查询系统的主要模块的示意图;

图4是根据本发明实施例的一种统计数据的即席查询系统的示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施例的一种统计数据的即席查询方法主要步骤的示意图。如图1所示,本发明实施例的一种统计数据的即席查询方法的主要步骤包括:

s11:根据数据需求选择统计数据的数据维度并配置筛选条件。数据需求人员可通过数据选择器根据数据需求选择统计数据的数据维度并配置筛选条件。在此之前,bi(商务智能)工程师对基础数据群中海量数据进行预处理,获得有规则的业务数据并存储;并且对业务数据进行数据维度维护,以及将数据维度相关的信息存储在数据库中。

s12:根据数据维度和筛选条件从数据库中加载数据维度相关的信息。数据需求人员根据数据需求,从配置的各个数据维度中,选择需要查看的数据维度,根据选择的数据维度从数据库中获取数据维度相关的信息(数据维度相关的信息包括:数据表名称、字段名称,字段描述等信息),并将数据维度相关的信息传递给sql构造器。

s13:根据数据维度相关的信息构造结构化查询语句。sql构造器根据数据维度相关的信息构造结构化查询语句(sql)。

s14:执行结构化查询语句,返回数据结果。其中,通过java数据库连接(jdbc)与数据查询引擎连接;调用数据查询引擎的查询接口以查询数据,并返回数据结果;还可展示和下载数据结果,该执行过程使得执行效率大大提高。数据查询引擎为presto,presto是一个开源的分布式sql查询引擎,提供有数据查询等api接口。通过jdbc与presto进行连接,提交由sql构造器生成的sql给presto,presto执行sql。数据查询引擎还可以为hive、impala、shark或stinger等。

图2是根据本发明实施例的一种统计数据的即席查询方法的流程图。如图2所示,本发明实施例的一种统计数据的即席查询方法包括:

s201:对基础数据群中海量数据进行预处理,获得有规则的业务数据并存储。大数据平台负责海量数据存储和运算,包括基础数据集市、业务数据集市和presto三大部分。基础数据集市用于海量大数据的收集和存储基础数据,其中基础数据包括用户访问网站的日志信息,商品信息,评论信息等。基础数据集市将数据按照一定的业务规则,推送给业务数据集市,推送的数据内容是根据业务数据集市订阅的数据内容决定的,即数据订阅。bi工程师根据业务情况编写处理程序,把基础数据集市的海量数据进行预处理,并将处理后的数据进行存储,以便即席查询时更快。比如,在基础数据集市上,把订单数据处理分成海外订单和国内订单,存储于业务数据集市。或者按照维度对基础数据进行分类处理(已完成订单、用户浏览、存入购物车),并将处理后的规则的业务数据存储在业务数据集市。

s202:对业务数据进行数据维度维护,以及将数据维度相关的信息存储在数据库中。bi工程师维护大数据平台能够提供的各种数据维度,例如订单维度、商品维度、店铺维度等,订单维度又包括订单编号、下单时间、订单状态等基础项。并将数据维度相关的信息存储在数据库中,供查询过程中数据选择器使用。数据维度相关的信息还会包括数据表名称、字段名称,字段描述等信息。通过对统计数据的数据维度进行维护之后,数据需求在查询数据时即可通过对数据维度选择等操作即可查询并统计出需要的统计数据,进而不需再依赖bi工程师即可完成查询。

s203:根据数据需求选择统计数据的数据维度并配置筛选条件。数据需求人员根据数据需求,从统计数据的各个数据维度中选择需要查看的数据维度,并配置筛选条件。

s204:根据数据维度和筛选条件从数据库中加载数据维度相关的信息。加载出数据维度相关的信息后,将数据维度相关的信息传递给sql构造器。

s205:根据数据维度相关的信息构造结构化查询语句。sql构造器根据数据维度相关的信息,结合sql语法,动态生成数据查询的sql语句(机构化查询语句),并将构造好的sql语句传递给java数据库连接(jdbc)。

s206:通过java数据库连接与数据查询引擎连接。java数据库连接jdbc(javadatabaseconnectivity)负责连接到数据查询引擎presto。

s207:判断连接是否成功。如果java数据库连接与数据查询引擎成功,则进行步骤s208,否则进行步骤s211。

s208:调用数据查询引擎的查询接口以查询数据。调用数据查询引擎presto提供的数据查询接口,并将sql构造器生成的sql语句以参数的方式传递presto集群,获取presto查询的数据结果集。数据结果集由查询到的数据结果和统计结果组成。

s209:返回数据结果。

s210:展示和下载数据结果。展示各维度的统计数据的信息,并提供数据报表(比如:excel报表)导出功能。

s211:提示连接失败。

图3是根据本发明实施例的一种统计数据的即席查询系统的主要模块的示意图。如图3所示,本发明实施例的一种统计数据的即席查询系统3主要包括:数据库31、即席查询模块32和大数据平台33,其中即席查询模块32包括数据选择器和sql构造器,数据选择器用于根据数据需求选择统计数据的数据维度并配置筛选条件;以及根据数据维度和筛选条件从数据库中加载数据维度相关的信息。sql构造器用于根据数据维度相关的信息构造结构化查询语句。大数据平台33用于执行结构化查询语言,返回数据结果。即席查询模块还包括:连接单元,用于通过java数据库连接与数据查询引擎连接;展示单元,用于数据结果返回后展示和下载数据结果。其中,数据查询引擎为presto,可提升查询效率。另外,大数据平台还用于调用数据查询引擎的查询接口以查询数据,并且返回数据结果。

数据需求人员通过数据选择器根据数据需求选择统计数据的数据维度并配置筛选条件,之后sql构造器根据加载的数据维度相关的信息以及sql语法生成结构化查询语句,然后通过jdbc链接到大数据平台,执行sql语句以查询统计数据,并将数据结果集返回给数据展示单元进行展示和下载。大数据平台还用于将基础数据群中海量数据进行预处理,获得有规则的业务数据并存储。即席查询模块的数据源构建单元,将业务数据进行数据维度维护,以及将数据维度相关的信息存储在数据库中。

图4是根据本发明实施例的一种统计数据的即席查询系统的示意图。如图4所示,本发明实施例的一种统计数据的即席查询系统包括即席查询模块41、数据库42和大数据平台43。

其中,即席查询模块41包括数据源构建单元411、数据选择器412、sql构造器413和连接单元414、展示单元415。bi工程师可以通过数据源构建单元411维护大数据平台提供的各种数据维度,并将这些数据维度相关的信息存储在数据库42中,以供数据选择器412在查询过程中使用。业务数据通过数据源构建单元411的处理之后,可获得需求人员能容易理解和处理的源数据。当需求人员想要获得所需的统计数据时,则不用依赖bi工程师,自行通过数据选择器选择数据维度(比如:订单编号、订单状态、商品编号、下单时间等),然后sql构造器根据选择的维度信息,构造查询数据的sql语句;然后通过jdbc链接到大数据平台,执行sql查询统计数据,并将数据结果集返回给数据展示模块进行展示和下载,完成查询。

数据选择器412,用于数据需求人员根据数据需求,从数据源配置单元配置的各个数据维度中,选择需要查看的数据维度,即从数据库42中读取所需数据。根据选择的数据维度从数据库中获取维度数据相关的信息(维度相关的信息包括:数据表名称、字段名称,字段描述等信息),并将维度相关的信息传递给sql构造器。

通过数据选择器412根据数据需求选择统计数据的数据维度并配置筛选条件,结合sql语法,sql构造器413动态生成数据查询的sql语句,并将构造好的sql传递给连接单元414。其中,连接单元414为java数据库连接jdbc(javadatabaseconnectivity)。

连接单元414负责链接到presto集群,调用presto提供的数据查询接口,并将sql构造器生成的sql语句以参数的方式传递presto集群,获取presto查询的数据结果集。

展示单元415展示各数据维度的统计数据的信息,并提供数据报表导(比如:excel报表)出功能,便于查看获得的统计数据的数据结果。

大数据平台43包括基础数据集市418、业务数据集市417和presto416。基础数据集市418用于海量大数据的收集和存储基础数据(比如:用户访问网站的日志信息,商品信息,评论信息等),并将数据按照一定的业务规则,推送给业务数据集市,推送的数据内容是根据业务数据集市订阅的数据内容决定的,即数据订阅。

业务数据集市417,用于bi工程师根据业务情况编写处理程序,把基础数据集市418的海量数据进行再次处理,并将处理后的数据进行存储,以便即席查询时更快。比如在基础数据集市上,把订单数据处理分成海外订单和国内订单,存储于业务数据集市。根据业务将基础数据集群中的海量数据,进行预处理成有规则的业务数据,形成业务数据集群,可提升查询速度。

presto416是一个开源的分布式sql查询引擎,提供有数据查询的api接口。通过jdbc与presto进行连接,提交由sql构造器生成的sql给presto,presto执行sql,查询出数据并返回给数据展示模块。利用presto实现数据实时查询,提升查询的速度。

数据库42为关系型数据库,用于数据持久化存储,存储的数据包括用户信息,大数据平台提供的各数据维度相关的信息等。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

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