首页 / 专利库 / 企业组织 / 商业智能 / 一种基于抽取的商业智能分析平台自动分区方法及装置

一种基于抽取商业智能分析平台自动分区方法及装置

阅读:306发布:2020-05-13

专利汇可以提供一种基于抽取商业智能分析平台自动分区方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 抽取 的 商业智能 分析平台自动分区方法及装置,本方案基于商业智能分析平台的数据抽取功能,用户在数据集配置抽取功能将源数据抽取到商业智能分析平台 数据库 中,为避免spark引擎在每个执行分支数据倾斜导致处理缓慢甚至出现内存移除失败的情况,平台开发出对客户数据源抽取时自动设置分区,保障每个执行分支数据均衡,降低内存消耗与时效的手段。解决了现有的商业智能分析平台在利用spark引擎抽取数据时,spark引擎中不同的执行分支需要处理的数据量差距较大,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者 服务器 资源状态异常的问题。,下面是一种基于抽取商业智能分析平台自动分区方法及装置专利的具体信息内容。

1.一种基于抽取商业智能分析平台自动分区方法,包括带有spark引擎的商业智能分析平台、源数据库和目标数据库,其特征在于:包括以下步骤:
S1、商业智能分析平台根据外部输入的抽取参数从源数据库读取对应的源表列的数据;
S2、商业智能分析平台将步骤S1中读取源表列的数据处理为一列有序列数据;
S3、商业智能分析平台对步骤S2中的有序列数据进行均分,得到至少1个分区数据;
S4、商业智能分析平台将分区数据发送到spark引擎中;
S5、spark引擎根据分区数据从源数据库抽取数据到目标数据库中。
2.根据权利要求1所述的一种基于抽取的商业智能分析平台自动分区方法,其特征在于:所述步骤S1中外部输入的抽取参数包括:用户通过商业智能分析平台在数据集中通过数据集处理节点对数据源操作、数据抽取功能的配置及需要抽取的源表列的选择。
3.根据权利要求1所述的一种基于抽取的商业智能分析平台自动分区方法,其特征在于:所述步骤S2中商业智能分析平台将步骤S1中读取源表列的数据处理为一列有序列数据的方法为:商业智能分析平台根据用户选择的源表列产生一条用于输出一列有序列数据的查询SQL,商业智能分析平台通过查询SQL从源数据库中获取一列有序列数据。
4.根据权利要求1所述的一种基于抽取的商业智能分析平台自动分区方法,其特征在于:所述spark引擎包括至少2个执行分支。
5.根据权利要求4所述的一种基于抽取的商业智能分析平台自动分区方法,其特征在于:所述每个执行分支对应的分区数据的数量相同。
6.根据权利要求5所述的一种基于抽取的商业智能分析平台自动分区方法,其特征在于:所述分区数据的数量与执行分支的数量相同。
7.根据权利要求4所述的一种基于抽取的商业智能分析平台自动分区方法,其特征在于:所述执行分支的处理能不同时,与执行分支对应的分区数据大小与执行分支的处理能力正相关。
8.根据权利要求1所述的一种基于抽取的商业智能分析平台自动分区方法,其特征在于:所述步骤S4中商业智能分析平台通过Sae Launcher将分区数据作为spark任务动态提交到spark引擎。
9.一种基于抽取的商业智能分析平台自动分区装置,其特征在于:包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求1所述的一种基于抽取的商业智能分析平台自动分区方法。

说明书全文

一种基于抽取商业智能分析平台自动分区方法及装置

技术领域

[0001] 本发明涉及数据抽取领域,特别涉及一种基于抽取的商业智能分析平台自动分区方法及装置。

背景技术

[0002] 商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。
[0003] 商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具。这里所谈的数据包括来自企业业务系统的订单、库存、交易账目、客户和供应商等来自企业所处行业和竞争对手的数据以及来自企业所处的其他外部环境中的各种数据。而商业智能能够辅助的业务经营决策,既可以是操作层的,也可以是战术层和战略层的决策。为了将数据转化为知识,需要利用数据仓库、联机分析处理(OLAP)工具和数据挖掘等技术。因此,从技术层面上讲,商业智能不是什么新技术,它只是数据仓库、OLAP和数据挖掘等技术的综合运用。
[0004] 可以认为,商业智能是对商业信息的搜集、管理和分析过程,目的是使企业的各级决策者获得知识或洞察(insight),促使他们做出对企业更有利的决策。商业智能一般由数据仓库、联机分析处理、数据挖掘、数据备份和恢复等部分组成。商业智能的实现涉及到软件硬件、咨询服务及应用,其基本体系结构包括数据仓库、联机分析处理和数据挖掘三个部分。
[0005] 因此,把商业智能看成是一种解决方案应该比较恰当。商业智能的关键是从许多来自不同的企业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),即ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具(大数据魔镜)、OLAP工具等对其进行分析和处理(这时信息变为辅助决策的知识),最后将知识呈现给管理者,为管理者的决策过程提供支持。
[0006] 现有的商业智能分析平台在利用spark引擎抽取数据时,spark引擎中不同的执行分支需要处理的数据量差距较大,经常出现一个执行分支已经处理完成了,另一个执行分支处理还不到一半的问题,那么完成任务后的执行分支就存在资源空闲,而另一个执行分支所在的服务器就会因为任务持续存在,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者服务器资源状态异常。

发明内容

[0007] 本发明的目的在于:提供了一种基于抽取的商业智能分析平台自动分区方法及装置,解决了现有的商业智能分析平台在利用spark引擎抽取数据时,spark引擎中不同的执行分支需要处理的数据量差距较大,经常出现一个执行分支已经处理完成了,另一个执行分支处理还不到一半的问题,那么完成任务后的执行分支就存在资源空闲,而另一个执行分支所在的服务器就会因为任务持续存在,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者服务器资源状态异常的问题。
[0008] 本发明采用的技术方案如下:
[0009] 一种基于抽取的商业智能分析平台自动分区方法,包括带有spark引擎的商业智能分析平台、源数据库和目标数据库,包括以下步骤:
[0010] S1、商业智能分析平台根据外部输入的抽取参数从源数据库读取对应的源表列的数据;
[0011] S2、商业智能分析平台将步骤S1中读取源表列的数据处理为一列有序列数据;
[0012] S3、商业智能分析平台对步骤S2中的有序列数据进行均分,得到至少1个分区数据;
[0013] S4、商业智能分析平台将分区数据发送到spark引擎中;
[0014] S5、spark引擎根据分区数据从源数据库抽取数据到目标数据库中。
[0015] 本方案基于商业智能分析平台的数据抽取功能,用户在数据集配置抽取功能将源数据抽取到商业智能分析平台数据库中,为避免spark引擎在每个执行分支数据倾斜导致处理缓慢甚至出现内存移除失败的情况,平台开发出对客户数据源抽取时自动设置分区,保障每个执行分支数据均衡,降低内存消耗与时效的手段。解决了现有的商业智能分析平台在利用spark引擎抽取数据时,spark引擎中不同的执行分支需要处理的数据量差距较大,经常出现一个执行分支已经处理完成了,另一个执行分支处理还不到一半的问题,那么完成任务后的执行分支就存在资源空闲,而另一个执行分支所在的服务器就会因为任务持续存在,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者服务器资源状态异常的问题。
[0016] 进一步的,所述步骤S1中外部输入的抽取参数包括:用户通过商业智能分析平台在数据集中通过数据集处理节点对数据源操作、数据抽取功能的配置及需要抽取的源表列的选择。
[0017] 进一步的,所述步骤S2中商业智能分析平台将步骤S1中读取源表列的数据处理为一列有序列数据的方法为:商业智能分析平台根据用户选择的源表列产生一条用于输出一列有序列数据的查询SQL,商业智能分析平台通过查询SQL从源数据库中获取一列有序列数据。
[0018] 进一步的,所述spark引擎包括至少2个执行分支。
[0019] 进一步的,所述每个执行分支对应的分区数据的数量相同。
[0020] 进一步的,所述分区数据的数量与执行分支的数量相同。
[0021] 进一步的,所述执行分支的处理能力不同时,与执行分支对应的分区数据大小与执行分支的处理能力正相关。采用上述方案,进一步保证了spark引擎中不同的执行分支需要处理的数据量基本相同,使整个方法工作效率最高。
[0022] 进一步的,所述步骤S4中商业智能分析平台通过Sae Launcher将分区数据作为spark任务动态提交到spark引擎。
[0023] 一种基于抽取的商业智能分析平台自动分区装置,包括:
[0024] 存储器,用于存储可执行指令;
[0025] 处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求1所述的一种基于抽取的商业智能分析平台自动分区方法。
[0026] 综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0027] 1.本发明一种基于抽取的商业智能分析平台自动分区方法及装置,解决了现有的商业智能分析平台在利用spark引擎抽取数据时,spark引擎中不同的执行分支需要处理的数据量差距较大,经常出现一个执行分支已经处理完成了,另一个执行分支处理还不到一半的问题,那么完成任务后的执行分支就存在资源空闲,而另一个执行分支所在的服务器就会因为任务持续存在,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者服务器资源状态异常的问题;
[0028] 2.本发明一种基于抽取的商业智能分析平台自动分区方法及装置,本方案可以平衡了spark资源执行,降低了因为内存移除导致的失败任务,减少了整体抽取时间,减少某一spark执行分支在某台服务器读资源产生的IO,保证系统平稳运行,提升用户感知附图说明
[0029] 本发明将通过例子并参照附图的方式说明,其中:
[0030] 图1是本发明的自动分区表数据转换流程示意图;
[0031] 图2是本发明的计算流程示意图;
[0032] 图3是现有方案的计算流程示意图。

具体实施方式

[0033] 本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0034] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合图1至图3对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0035] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
[0036] 对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
[0037] SPARK:(Apache Spark)是专为大规模数据处理而设计的快速通用的计算引擎,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
[0038] 数据源:对文件,数据库这类数据来源的统称。
[0039] 数据处理节点:是商业智能分析平台对数据处理功能的细分节点,其中包括表关联、字段过来、数据过滤、计算字段、分组统计、数据类型等功能,主要是对数据源进行数据的清洗、过滤、拆分等等一系列处理功能。
[0040] 数据集(dataset):对数据源采用数据处理节点配置后的统称,一个数据集可以包含一个或者多个数据源,一个或者多个数据处理节点,生成的数据集可以认为是一个虚拟的数据源(虚拟表)。
[0041] Presto:是一个开源的分布式SQL查询引擎,用于针对各种大小(从千兆字节到千兆字节)的数据源运行交互式分析查询。
[0042] Sae Launcher:商业智能分析平台所开发的一个提交spark任务的容器组件,由该组件对spark任务进行动态提交。
[0043] 实施例1
[0044] 一种基于抽取的商业智能分析平台自动分区方法,包括带有spark引擎的商业智能分析平台、源数据库和目标数据库,包括以下步骤:
[0045] S1、商业智能分析平台根据外部输入的抽取参数从源数据库读取对应的源表列的数据;
[0046] S2、商业智能分析平台将步骤S1中读取源表列的数据处理为一列有序列数据;
[0047] S3、商业智能分析平台对步骤S2中的有序列数据进行均分,得到至少1个分区数据;
[0048] S4、商业智能分析平台将分区数据发送到spark引擎中;
[0049] S5、spark引擎根据分区数据从源数据库抽取数据到目标数据库中。
[0050] 本方案基于商业智能分析平台的数据抽取功能,用户在数据集配置抽取功能将源数据抽取到商业智能分析平台数据库中,为避免spark引擎在每个执行分支数据倾斜导致处理缓慢甚至出现内存移除失败的情况,平台开发出对客户数据源抽取时自动设置分区,保障每个执行分支数据均衡,降低内存消耗与时效的手段。解决了现有的商业智能分析平台在利用spark引擎抽取数据时,spark引擎中不同的执行分支需要处理的数据量差距较大,经常出现一个执行分支已经处理完成了,另一个执行分支处理还不到一半的问题,那么完成任务后的执行分支就存在资源空闲,而另一个执行分支所在的服务器就会因为任务持续存在,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者服务器资源状态异常的问题。
[0051] 实施例2
[0052] 本实施例在实施例1的基础上进一步的,所述步骤S1中外部输入的抽取参数包括:用户通过商业智能分析平台在数据集中通过数据集处理节点对数据源操作、数据抽取功能的配置及需要抽取的源表列的选择。
[0053] 进一步的,所述步骤S2中商业智能分析平台将步骤S1中读取源表列的数据处理为一列有序列数据的方法为:商业智能分析平台根据用户选择的源表列产生一条用于输出一列有序列数据的查询SQL,商业智能分析平台通过查询SQL从源数据库中获取一列有序列数据。
[0054] 实施例3
[0055] 本实施例在实施例2的基础上进一步的,所述spark引擎包括至少2个执行分支。
[0056] 进一步的,所述每个执行分支对应的分区数据的数量相同。
[0057] 进一步的,所述分区数据的数量与执行分支的数量相同。例如按ID范围进行分区,其中:ID为1-10000为第一分区,ID为10000-20000为第二分区…。
[0058] 实施例4
[0059] 本实施例与实施例3的区别在于,所述执行分支的处理能力不同时,与执行分支对应的分区数据大小与执行分支的处理能力正相关。采用上述方案,进一步保证了spark引擎中不同的执行分支需要处理的数据量基本相同,使整个方法工作效率最高。
[0060] 进一步的,所述步骤S4中商业智能分析平台通过Sae Launcher将分区数据作为spark任务动态提交到spark引擎。
[0061] 实施例5
[0062] 一种基于抽取的商业智能分析平台自动分区装置,包括:
[0063] 存储器,用于存储可执行指令;
[0064] 处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求1所述的一种基于抽取的商业智能分析平台自动分区方法。
[0065] 实施例6
[0066] 本实施例为现有方案的计算流程,如图3所示,现有方案对源数据库中的数据抽取到目标库中,图中数据A、B、C、D由箭头粗细分别代表不同的数据量,D数据量为A数据量的10倍,这样会导致将D这么大数据量的数据传输到目标库中的时间为A数据量耗时的10倍,若A完成时间仅仅为1分钟,而D完成则需要10分钟。那么A完成任务后,就存在资源空闲,而D所在的服务器就会因为任务持续存在,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者服务器资源状态异常。
[0067] 实施例7
[0068] 本实施与实施例6的区别在于,本实施例采用本方案对数据A、B、C、D进行处理,首先商业智能分析平台根据数据A、B、C、D产生一条查询SQL,该SQL中会输出一列有序列数据abcd,商业智能分析平台将有序列数据abcd进行分区,得到a1、b1、c1、d1四个分区,每个分区的数据量均为X,spark引擎中的执行分支处理数据量X需要的时间为5分钟,因此,采用本方案进行数据抽取,能在5分钟完成所有数据的抽取。解决了现有的商业智能分析平台在利用spark引擎抽取数据时,spark引擎中不同的执行分支需要处理的数据量差距较大,经常出现一个执行分支已经处理完成了,另一个执行分支处理还不到一半的问题,那么完成任务后的执行分支就存在资源空闲,而另一个执行分支所在的服务器就会因为任务持续存在,且数据量较大导致整个内存被严重占用,磁盘及IO也一直被负荷使用,可能导致内存溢出或者服务器资源状态异常的问题。
[0069] 实施例8
[0070] 本实施例为实现本方案的部分代码。
[0071] 如商业智能分析平台根据用户选择的源表列产生一条用于输出一列有序列数据的查询SQL:SELECT rownum,column1,column2,column3 FROM table1。
[0072] spark分区查询:dataset=spark.read().jdbc(url,sql,partitionPredicates,pro);
[0073] spark均分分区条件:rownum%5=0,rownum%5=1,rownum%5=2,rownum%5=3,rownum%5=4。
[0074] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0075] 另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0076] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0077] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0078] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈