本发明涉及信息技术领域,具体涉及一种基于大数据的自定义报表的方法。
背景技术
大数据(bigdata),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
相关技术中,大数据中心的各个数据采集来源使用不同的技术来实现,使用的开发技术存在差异,同时业务支撑数据库也是互不相同。因此很难形成一个通用的自定义报表的方法,能够基于大数据进行处理。
技术实现要素:
针对上述问题,本发明提供智能报表实现方法。
本发明的目的采用以下技术方案来实现:提供了一种基于大数据的智能报表实现方法,其特征是,包括:
1)客户端收到用户要求生成报表的请求,该请求中包含为这张报表设定的查询数据的条件;
2)客户端根据这些条件生成访问业务大数据处理中心的请求并发往报表服务器;
3)报表服务器根据收到的请求从系统大数据处理中心中读取业务大数据处理中心的信息,根据这些信息访问业务大数据处理中心;
4)业务大数据处理中心对存储在业务大数据处理中心的数据库中的数据进行近似连接,找出近似度值大于设定阈值的满足设定条件的数据作为近似数据返回客户端;
5)客户端根据该近似数据及报表套件中的格式自动生成报表并显示给用户。
优选的,所述设定条件包括数据源属性、表与存储过程,其中数据源属性包括大数据处理中心名称、端口、大数据处理中心用户名和大数据处理中心用户名密码。
优选的,报表服务器从系统大数据处理中心中读取业务大数据处理中心的信息的同时,还从系统数据库中读取大数据处理中心代理的信息,根据这些信息将请求分发到对应的大数据处理中心代理上,由该大数据处理中心代理访问业务大数据处理中心。
优选的,业务大数据处理中心对存储在业务大数据处理中心的数据库中的数据进行近似连接,具体包括:
(1)随机提取所述数据库中的一段数据,并按照该数据的采集时间顺序来构建时间队列;
(2)从时间队列中选择多个基准点,针对时间队列中的数据基于基准点建立基于距离树的数据索引结构,利用数据索引结构生成mapreduce的数据分区方案;
(3)将基准点集合、数据索引结构以及mapreduce的数据分区方案信息作为全局变量,利用mapreduce任务对存在近似性的数据进行精确计算,得到时间队列中所有满足近似度值大于设定阈值的近似数据。
优选的,从时间队列中选择多个基准点,具体包括:
(1)从时间队列中随机选择一个数据,并在时间队列中找到距离该数据最远的数据,设为第一个基准点r1;
(2)设置第二个基准点r2为找出离r1距离最远的数据;
(3)针对每个未被选为基准点的数据xi,选择最小距离差权值的数据作为下一个基准点:
其中,
(4)重复(3)直至选出设定数量的基准点,归入基准点集合。
优选的,针对时间队列中的数据基于基准点建立基于距离树的数据索引结构,具体包括:
(1)将ω中的r1作为距离树的根节点对应的基准点,并设置根节点的所属层级为0,位置p=0,个数n=0;
(2)通过逐个插入数据的方式构建距离树,包括:利用r1对根节点进行划分,生成属于其子节点的叶节点,把每个数据分发到对应的叶节点,其中,分发到叶节点α内部的数据满足与其父节点对应的基准点的距离在区间[(pα-1)×g,pα×g)内,其中pα为叶节点α的位置,且叶节点α内部存放的数据量小于设定的最大值,其中每个叶节点包含所属层级、其内部的数据量以及位置三个属性,其中位置是指该叶节点距离其父节点对应的基准点的距离和设定的距离阈值g的倍数关系;
(3)如果叶节点存放的数据量到达设定的最大值,则从ω中选取新的基准点对该叶节点进行划分,生成相应的子节点,将该叶节点中的多余数据分发到其子节点中,重复该过程,直至所有的叶节点或者子节点包含的数据量都小于设定的最大值。
本发明基于大数据处理技术将众多数据采集来源的数据进行汇总并统一分析处理,可进行数据分析利用,形成一个通用的自定义报表的方法。
附图说明
利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
图1是本发明一个示例性实施例的基于大数据的智能报表实现方法的流程图。
具体实施方式
结合以下实施例对本发明作进一步描述。
图1是本发明一个示例性实施例的基于大数据的智能报表实现方法的流程图,
包括:
1)客户端收到用户要求生成报表的请求,该请求中包含为这张报表设定的查询数据的条件;
2)客户端根据这些条件生成访问业务大数据处理中心的请求并发往报表服务器;
3)报表服务器根据收到的请求从系统大数据处理中心中读取业务大数据处理中心的信息,根据这些信息访问业务大数据处理中心;
4)业务大数据处理中心对存储在业务大数据处理中心的数据库中的数据进行近似连接,找出近似度值大于设定阈值的满足设定条件的数据作为近似数据返回客户端;
5)客户端根据该近似数据及报表套件中的格式自动生成报表并显示给用户。
相关技术中,大数据中心的各个数据采集来源使用不同的技术来实现,使用的开发技术存在差异,同时业务支撑数据库也是互不相同。因此很难形成一个通用的自定义报表的方法,能够基于大数据进行处理。
而本发明实施例对存储在业务大数据处理中心的数据库中的数据进行近似连接,基于大数据处理技术将众多数据采集来源的数据进行汇总并统一分析处理,可进行数据分析利用,形成一个通用的自定义报表的方法。
优选的,所述设定条件包括数据源属性、表与存储过程,其中数据源属性包括大数据处理中心名称、端口、大数据处理中心用户名和大数据处理中心用户名密码。
优选的,报表服务器从系统大数据处理中心中读取业务大数据处理中心的信息的同时,还从系统数据库中读取大数据处理中心代理的信息,根据这些信息将请求分发到对应的大数据处理中心代理上,由该大数据处理中心代理访问业务大数据处理中心。
优选的,业务大数据处理中心对存储在业务大数据处理中心的数据库中的数据进行近似连接,具体包括:
(1)随机提取所述数据库中的一段数据,并按照该数据的采集时间顺序来构建时间队列;
(2)从时间队列中选择多个基准点,针对时间队列中的数据基于基准点建立基于距离树的数据索引结构,利用数据索引结构生成mapreduce的数据分区方案;
(3)将基准点集合、数据索引结构以及mapreduce的数据分区方案信息作为全局变量,利用mapreduce任务对存在近似性的数据进行精确计算,得到时间队列中所有满足近似度值大于设定阈值的近似数据。
mapreduce是google提出的一个软件架构,用于大规模数据集(大于1tb)的并行运算。概念"map(映射)"和"reduce(规约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。mapreduce极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的reduce(规约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。
优选的,从时间队列中选择多个基准点,具体包括:
(1)从时间队列中随机选择一个数据,并在时间队列中找到距离该数据最远的数据,设为第一个基准点r1;
(2)设置第二个基准点r2为找出离r1距离最远的数据;
(3)针对每个未被选为基准点的数据xi,选择最小距离差权值的数据作为下一个基准点:
其中,
(4)重复(3)直至选出设定数量的基准点,归入基准点集合。
本实施例设定了基准点的选择方法,基准点的选择影响到对数据进行数据近似性分析的性能,设置合理的基准点集合可以将时间队列进行优化分割。本实施例的选择方法,能够使得时间队列的离群值具有更大的概率成为基准点,且使得选取的基准点之间的距离较远。因此,本实施例使得选取到的基准点集合能够较好地对时间队列进行分割,有利于优化对数据进行数据近似性分析的性能。
优选的,针对时间队列中的数据基于基准点建立基于距离树的数据索引结构,具体包括:
(1)将ω中的r1作为距离树的根节点对应的基准点,并设置根节点的所属层级为0,位置p=0,个数n=0;
(2)通过逐个插入数据的方式构建距离树,包括:利用r1对根节点进行划分,生成属于其子节点的叶节点,把每个数据分发到对应的叶节点,其中,分发到叶节点α内部的数据满足与其父节点对应的基准点的距离在区间[(pα-1)×g,pα×g)内,其中pα为叶节点α的位置,且叶节点α内部存放的数据量小于设定的最大值,其中每个叶节点包含所属层级、其内部的数据量以及位置三个属性,其中位置是指该叶节点距离其父节点对应的基准点的距离和设定的距离阈值g的倍数关系;
(3)如果叶节点存放的数据量到达设定的最大值,则从ω中选取新的基准点对该叶节点进行划分,生成相应的子节点,将该叶节点中的多余数据分发到其子节点中,重复该过程,直至所有的叶节点或者子节点包含的数据量都小于设定的最大值。
优选的,设要分发的数据集为{x1,x2,..,xn},则设置的区间数量为:
式中,d(xa,r)为数据xa与父节点对应的基准点r的距离。
在相关技术中,近似计算的计算量非常庞大,成本很高,而本实施例对数据进行近似连接采用了基于距离树的数据索引结构,通过剪枝不必要的数据对比较,从而来降低数据近似计算的冗余花费,节省了系统的数据计算成本。
其中,根据与基准点的最大距离设定了区间数量的计算公式,这有利于构建合理的距离树,从而为后续的数据分区奠定良好的基础。
优选的,利用数据索引结构生成mapreduce的数据分区方案,具体包括:
(1)根据基于距离树的数据索引结构创建一个图m(u,v),顶点u的集合是距离树的所有叶节点,边v的集合是不能被剪枝原则剪枝的节点对,每个顶点有一个与其自身相连的边,设置顶点u的权重w(u)是对应叶节点的数据量,边v的权重w(v)等于其上两个顶点的权重w(u)的和;
(2)将m(u,v)分成两个子图m(u,v)1、m(u,v)2,满足下列均衡度条件
式中,
(3)将子图m(u,v)1、m(u,v)2添加到一个优先队列中,优先队列中的子图按照代价进行降序排列;
其中子图m(u,v)i的代价的计算公式为:
(3)继续迭代,从优先队列中选出排在最前面的子图,将其随机地分成子图,这两个子图的顶点个数相同,然后将分成的子图添加值优先队列,判断优先队列中排在最前面的子图的代价是否小于设定的代价阈值,如果不小于,则重复该过程直至优先队列中排在最前面的子图的代价满足小于设定的代价阈值,输出当前的分区方案,将其作为成mapreduce的数据分区方案。
本实施例以图分区的方法将存在近似性的数据尽可能地分布在同一个分区,这样做能够尽可能地减少分区间的数据交换和副本量。另外,在进行分区时设定了要满足均衡度条件以及代价条件,这有利于在reduce任务中,能够在确保负载均衡的情况下最小化数据传输成本和冗余。
优选的,剪枝原则为:给定在l1层和l2层的两个叶节点α1和α2,假设l1≥l2;从根节点到α1和α2经过的叶节点的位置序列分别为{η1,η2,...,ηl1}和{ζ1,ζ2,...,ζl2}。如果对于任意的t≤l2,都有ηt+2<ζt或者ηt>ζt+2,则α1中的任何数据和α2中的任何数据之间的距离大于ε。
本实施例的计算量很小,剪枝效果良好。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。