CN109947828A - 一种处理报表数据的方法和装置 - Google Patents
一种处理报表数据的方法和装置 Download PDFInfo
- Publication number
- CN109947828A CN109947828A CN201910198660.8A CN201910198660A CN109947828A CN 109947828 A CN109947828 A CN 109947828A CN 201910198660 A CN201910198660 A CN 201910198660A CN 109947828 A CN109947828 A CN 109947828A
- Authority
- CN
- China
- Prior art keywords
- sql statement
- database
- error
- reports
- report
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 61
- 230000003044 adaptive effect Effects 0.000 claims abstract description 10
- 238000012986 modification Methods 0.000 claims abstract description 10
- 230000004048 modification Effects 0.000 claims abstract description 10
- 238000001514 detection method Methods 0.000 claims description 12
- 230000001172 regenerating effect Effects 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 241000208340 Araliaceae Species 0.000 claims 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 2
- 235000008434 ginseng Nutrition 0.000 claims 2
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000007689 inspection Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003442 weekly effect Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种处理报表数据的方法和装置,属于数据处理技术领域。所述方法包括:预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。采用本发明,可以提高报表生成效率。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种处理报表数据的方法和装置。
背景技术
随着计算机技术的飞速发展,企业在经营过程中产生了海量的数据,如订单、库存、客户信息等业务信息。为了对这些数据进行整合分析,便于决策,企业通常采用BI(Business Intelligence,商务智能)系统对这些数据进行处理。
BI系统可以对企业的各项数据进行整合,然后以报表的方式呈现给企业的管理人员。以二手车企业的业务日报表为例,首先,运行有BI系统的服务端可以从各个存储有业务数据的数据库中调取与待生成报表相关的数据,然后汇总到MySQL数据库。之后,上述服务端可以通过MySQL数据库的SQL语句,在MySQL数据库中对上述业务日报表的各指标(如当日各部门业绩或各员工业绩)进行数据查询与计算,得到各指标的指标计算结果。最后,上述服务端可以基于各个指标计算结果生成上述业务日报表。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于在MySQL数据库中执行SQL语句用时较长,短则几分钟,长则十几乃至几十分钟,因此,当数据量很大时,BI系统需要很长的时间才能够生成一张报表,无法满足报表生成需求。另外,对于因报错而导致BI系统自动停止生成报表的情况,只有接收到人工输入的重启指令,BI系统才可以继续生成报表,并且BI系统将对报表的所有指标的数据进行重新处理,故而生成报表的效率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种处理报表数据的方法和装置。所述技术方案如下:
第一方面,提供了一种处理报表数据的方法,所述方法包括:
预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;
当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;
如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。
进一步的,所述预先确定目标报表的各SQL语句的数据库标识,包括:
获取所述目标报表的各SQL语句在MySQL数据库的执行时间;
将所述执行时间超过预设时间的SQL语句的数据库标识,确定为HIVE数据库标识。
进一步的,所述预先确定目标报表的各SQL语句的数据库标识之后,还包括:
将所述目标报表的各SQL语句所需的业务数据,同步至各SQL语句的数据库标识所对应的数据库。
进一步的,所述方法还包括:
周期性检测数据库报错或SQL语句报错;
所述如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理,包括:
当检测到数据库报错时,记录当前指标的报错参数,并在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果;
根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理;
或者,当检测到SQL语句报错时,记录当前指标的报错参数,并返回空数据,以继续执行其它SQL语句;
在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果,并根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理。
进一步的,所述方法还包括:
如果重新生成所述目标报表,则在所述目标报表中确定重新计算的指标;
基于重新计算的指标的指标计算结果和缓存的目标报表中其余指标的指标计算结果,重新生成所述目标报表。
进一步的,所述方法还包括:
周期性检测HIVE数据库的资源占用率;
如果所述HIVE数据库的资源占用率超过预设占用率,则暂停执行SQL语句,直至检测到所述HIVE数据库的资源占用率低于所述预设占用率时,继续执行SQL语句。
第二方面,提供了一种处理报表数据的装置,所述装置包括:
修改模块,用于预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;
缓存模块,用于当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;
检测模块,用于如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。
进一步的,所述修改模块,还用于:
获取所述目标报表的各SQL语句在MySQL数据库的执行时间;
将所述执行时间超过预设时间的SQL语句的数据库标识,确定为HIVE数据库标识。
进一步的,所述装置还包括同步模块,用于:
将所述目标报表的各SQL语句所需的业务数据,同步至各SQL语句的数据库标识所对应的数据库。
进一步的,所述检测模块,还用于:
周期性检测数据库报错或SQL语句报错;
当检测到数据库报错时,记录当前指标的报错参数,并在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果;
根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理;
或者,当检测到SQL语句报错时,记录当前指标的报错参数,并返回空数据,以继续执行其它SQL语句;
在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果,并根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理。
进一步的,所述装置还包括重生模块,用于:
如果重新生成所述目标报表,则在所述目标报表中确定重新计算的指标;
基于重新计算的指标的指标计算结果和缓存的目标报表中其余指标的指标计算结果,重新生成所述目标报表。
进一步的,所述检测模块还用于:
周期性检测HIVE数据库的资源占用率;
如果所述HIVE数据库的资源占用率超过预设占用率,则暂停执行SQL语句,直至检测到所述HIVE数据库的资源占用率低于所述预设占用率时,继续执行SQL语句。
第三方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的处理报表数据的方法。
本发明实施例提供的技术方案带来的有益效果是:
在本实施例中,预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。采用本发明,可以提高报表生成效率。这样,通过将一部分SQL语句分流到HIVE数据库执行,可以极大地降低SQL语句的执行时间,使日报表可以在4个小时内计算完成,周报表在5个小时内计算完成,提高了报表生成效率。同时,可以对报表生成过程中出现的报错进行检测,并能够自动解决报错,以继续生成报表,不仅减少了人工参与,也降低了等待时间,进一步提高了报表生成效率。另外,通过对各指标计算结果进行缓存,当继续生成报表时,可以无需对报表的所有指标的数据进行二次处理,而可以基于缓存的指标计算结果对报表进行生成处理,不仅可以节省报表生成时间,也可以减少服务端的运行时间,降低服务端的负载。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种处理报表数据的方法流程图;
图2是本发明实施例提供的一种处理报表数据的装置结构示意图;
图3是本发明实施例提供的一种处理报表数据的装置结构示意图;
图4是本发明实施例提供的一种处理报表数据的装置结构示意图;
图5是本发明实施例提供的一种服务端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种处理报表数据的方法,该方法的执行主体可以是运行有BI系统的任意服务端,该服务端可以是任意一台服务器,也可以是由多台服务器组成的服务集群。上述服务端可以获取到企业的业务数据,并可以运行BI系统,该BI系统可以基于业务数据生成相应的报表。上述服务端可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中对于报表数据的处理,存储器可以用于存储处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送处理过程中的相关数据。
下面将结合具体实施方式,对图1所示的一种处理报表数据的方法的处理流程进行详细的说明,内容可以如下:
步骤101,预先确定目标报表的各SQL语句的数据库标识,并基于数据库标识对各SQL语句进行适应式修改。
在实施中,技术人员可以对生成各个报表的在MySQL数据库执行的SQL语句进行分析,确定出可以在HIVE数据库执行的SQL语句,并为其添加相应的数据库标识。具体的,数据库标识可以至少包括MySQL数据库标识和HIVE数据库标识,例如,可以用01作为MySQL数据库标识,用02作为HIVE数据库标识。以某报表(可称为目标报表)为例,在确定出目标报表的各SQL语句的数据库标识后,技术人员可以按照不同数据库的SQL语句编写规则,对各SQL语句进行修改,确保其能够在相应的数据库执行,即适应式修改。需要说明的是,由于HIVE数据库可以在集群运行,因此,相对于只能够运行在单台服务器的MySQL数据库,HIVE数据库可以调用更多的处理资源用于生成报表,从而可以显著缩短报表生成时间,提高报表生成效率。
可选的,上述步骤101的部分处理可以如下:获取目标报表的各SQL语句在MySQL数据库的执行时间;将执行时间超过预设时间的SQL语句的数据库标识,确定为HIVE数据库标识。
在实施中,可以将无需在MySQL数据库执行的SQL语句转移到HIVE数据库执行,以节省SQL语句的执行时间。为了便于处理,可以将无需在MySQL数据库执行的SQL语句的数据库标识,确定为HIVE数据库标识,将必须在MySQL数据库执行的SQL语句的数据库标识,确定为MySQL数据库标识。技术人员可以从SQL语句在MySQL数据库的执行时间的维度,确定哪些SQL语句为无需在MySQL数据库执行的SQL语句。具体的,技术人员可以基于目标报表以往的报表生成数据,如各指标计算结果的生成时间、各指标对应的SQL语句等,得到目标报表的各SQL语句在MySQL数据库的执行时间。之后,技术人员可以将执行时间超过预设时间的SQL语句,如超过七分钟或十分钟的SQL语句,确定为无需在MySQL数据库执行的SQL语句。之后,技术人员可以将执行时间超过预设时间的SQL语句的数据库标识,确定为HIVE数据库标识。相应的,技术人员可以将执行时间未超过预设时间的SQL语句的数据库标识,确定为MySQL数据库标识。
需要说明的是,还可以从其它维度来确定哪些SQL语句为无需在MySQL数据库执行的SQL语句,例如,可以将不依赖特定MySQL数据库的SQL语句或者处理非实时数据的SQL语句,确定为无需在MySQL数据库执行的SQL语句,这里不对其进行限定。
可选的,在预先确定目标报表的各SQL语句的数据库标识之后,还可以进行如下处理:将目标报表的各SQL语句所需的业务数据,同步至各SQL语句的数据库标识所对应的数据库。
在实施中,技术人员在确定目标报表的各SQL语句的数据库标识后,可以将这些标识信息输入到上述服务端。之后,上述服务端可以基于数据库标识为HIVE标识的SQL语句,将其所需的业务数据,由同步至MySQL数据库变更为同步至HIVE数据库,作为后续生成目标报表的数据基础。相应的,对于数据库标识为MySQL标识的SQL语句,服务端仍然将这些SQL语句所需的业务数据,同步至MySQL数据库。
步骤102,当取出目标SQL语句时,在目标SQL语句的数据库标识对应的数据库上执行目标SQL语句,得到目标SQL语句的指标计算结果并缓存在本地。
在实施中,上述服务端在取出任意一条SQL语句(可称为目标SQL语句)时,可以基于目标SQL语句的数据库标识,在相应的数据库上执行目标SQL语句。当目标SQL语句执行完毕后,可以生成目标SQL语句所对应指标的指标计算结果。之后,上述服务端可以将目标SQL语句的指标计算结果缓存在服务端本地。
步骤103,如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对目标报表进行生成处理。
在实施中,上述服务端可以对报表生成过程中出现的报错进行实时检测或周期性检测。如果检测到报错,则服务端可以基于报错类型对应的处理策略,对产生的报错进行处理,同时,服务端无需重新对目标报表的所有指标的数据重新进行处理,而可以基于缓存的指标计算结果,自动对目标报表进行生成处理。这样,当产生报错时,无需人工重启即可以继续生成报表,不仅减少了人工参与,也节省了等待时间,提高了报表生成效率。
可选的,上述步骤103的具体处理可以如下:当检测到数据库报错时,记录当前指标的报错参数,并在预设时长后,基于报错参数重新计算当前指标的指标计算结果;根据重新计算的当前指标的指标计算结果和已缓存的指标计算结果,对目标报表进行生成处理。或者,当检测到SQL语句报错时,记录当前指标的报错参数,并返回空数据,以继续执行其它SQL语句;在预设时长后,基于报错参数重新计算当前指标的指标计算结果,并根据重新计算的当前指标的指标计算结果和已缓存的指标计算结果,对目标报表进行生成处理。
在实施中,报错主要可以分为数据库报错和SQL语句报错,对于这两种报错,上述服务端可以按照对应的处理策略进行处理。具体的,对于数据库报错,当检测到数据库报错时,服务端可以对正在执行的SQL语句所对应的当前指标的报错参数进行记录,如报错时间、报错的数据库、报错发生时正执行的SQL语句等参数,然后可以将当前指标的报错参数存储到队列中,如redis队列。经过预设时长后,如五分钟或十分钟,上述服务端可以基于存储的报错参数重新计算当前指标的指标计算结果。之后,上述服务端可以根据重新计算的当前指标的指标计算结果和已缓存的指标计算结果,继续对目标报表进行生成处理,即:如果目标报表还存在未计算的指标,则继续对未计算的指标进行计算以得到相应的指标计算结果,并对其进行缓存,然后可以基于重新计算的上述当前指标的指标计算结果、在报错之前已缓存的指标计算结果以及新缓存的后续生成的指标计算结果,生成目标报表;如果目标报表不存在未计算的指标,则可以基于重新计算的上述当前指标的指标计算结果和已缓存的指标计算结果,生成目标报表。对于SQL语句报错,当检测到SQL语句报错时,同前述数据库报错的相应处理类似,上述服务端可以对正在执行的SQL语句所对应的当前指标的报错参数进行记录。同时,服务端可以返回空数据,以解决BI系统未接收到SQL语句的返回数据而导致的报表无法生成的问题。之后,上述服务端可以继续执行其它的SQL语句,并可以在预设时长后,基于报错参数重新计算当前指标的指标计算结果。从而可以根据重新计算的当前指标的指标计算结果和已缓存的指标计算结果,对目标报表继续进行生成处理。
可选的,在对目标报表进行重新生成的情况下,可以进行如下处理:如果重新生成目标报表,则在目标报表中确定重新计算的指标;基于重新计算的指标的指标计算结果和缓存的目标报表中其余指标的指标计算结果,重新生成目标报表。
在实施中,在某些情况下,如业务数据修正或者新增指标,需要重新生成目标报表。对于已生成完毕的目标报表,由于在生成目标报表的过程中,服务端已对目标报表中各个指标计算结果进行了缓存,因此可以只对涉及到的指标重新计算,而无需对目标报表的所有指标的数据重新进行计算处理。具体的,当接收到重新生成目标报表的指令时,服务端可以基于指令中的相应信息,如哪些指标的业务数据发生了变化或新增了哪些指标,确定出重新计算的指标,进而可以只对这些指标进行重新计算,得到指标计算结果。之后,服务端可以基于重新计算的指标的指标计算结果和缓存的其余指标的指标计算结果,重新生成目标报表。对于未生成的目标报表,服务端除对重新计算的指标进行重新计算外,还需要对目标报表中未计算的那些指标进行计算,以得到相应的指标计算结果,并对其进行缓存。之后,服务端可以基于重新计算的上述当前指标的指标计算结果、在重新计算之前已缓存的指标计算结果以及新缓存的后续生成的指标计算结果,重新对目标报表进行生成处理。这样,可以无需对所有指标进行二次计算,极大的节省了报表的生成时间,提高了报表生成效率。
可选的,对于HIVE数据库的资源限制问题,可以进行如下处理:周期性检测HIVE数据库的资源占用率;如果HIVE数据库的资源占用率超过预设占用率,则暂停执行SQL语句,直至检测到HIVE数据库的资源占用率低于预设占用率时,继续执行SQL语句。
在实施中,企业中的HIVE数据库通常会同时承担多个任务,当HIVE数据库的资源占用率较高时,如果执行SQL语句,则报错几率将会增加。为了减少报错几率,上述服务端可以周期性检测HIVE数据库的资源占用率。当HIVE数据库的资源占用率超过预设占用率时,上述服务端可以发出在HIVE数据库暂停执行SQL语句的命令,同时继续对HIVE数据库的资源占用率进行检测。当检测到HIVE数据库的资源占用率低于预设占用率时,上述服务端可以发出继续在HIVE数据库执行SQL语句的命令,从而可以基于HIVE数据库的资源占用率情况,动态地调整SQL语句的执行情况,有效减少报错几率。
值得一提的是,对于由硬件报错带来的报表未报错而中止生成的情况,服务端可以基于当日应当生成的报表集合,定时检测是否存在未生成的报表,如果存在,则服务端可以自动对未生成的报表进行生成处理,从而可以保证报表数据的完整性和正确性,进一步提高报表生成效率。
在本实施例中,预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。采用本发明,可以提高报表生成效率。这样,通过将一部分SQL语句分流到HIVE数据库执行,可以极大地降低SQL语句的执行时间,使日报表可以在4个小时内计算完成,周报表在5个小时内计算完成,提高了报表生成效率。同时,可以对报表生成过程中出现的报错进行检测,并能够自动解决报错,以继续生成报表,不仅减少了人工参与,也降低了等待时间,进一步提高了报表生成效率。另外,通过对各指标计算结果进行缓存,当继续生成报表时,可以无需对报表的所有指标的数据进行二次处理,而可以基于缓存的指标计算结果对报表进行生成处理,不仅可以节省报表生成时间,也可以减少服务端的运行时间,降低服务端的负载。
基于相同的技术构思,本发明实施例还提供了一种处理报表数据的装置,如图2所示,所述装置包括:
修改模块201,用于预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;
缓存模块202,用于当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;
检测模块203,用于如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。
可选的,所述修改模块201,还用于:
获取所述目标报表的各SQL语句在MySQL数据库的执行时间;
将所述执行时间超过预设时间的SQL语句的数据库标识,确定为HIVE数据库标识。
可选的,如图3所示,所述装置还包括同步模块204,用于:
将所述目标报表的各SQL语句所需的业务数据,同步至各SQL语句的数据库标识所对应的数据库。
可选的,所述检测模块203,还用于:
周期性检测数据库报错或SQL语句报错;
当检测到数据库报错时,记录当前指标的报错参数,并在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果;
根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理;
或者,当检测到SQL语句报错时,记录当前指标的报错参数,并返回空数据,以继续执行其它SQL语句;
在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果,并根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理。
可选的,如图4所示,所述装置还包括重生模块205,用于:
如果重新生成所述目标报表,则在所述目标报表中确定重新计算的指标;
基于重新计算的指标的指标计算结果和缓存的目标报表中其余指标的指标计算结果,重新生成所述目标报表。
可选的,所述检测模块203还用于:
周期性检测HIVE数据库的资源占用率;
如果所述HIVE数据库的资源占用率超过预设占用率,则暂停执行SQL语句,直至检测到所述HIVE数据库的资源占用率低于所述预设占用率时,继续执行SQL语句。
需要说明的是:上述实施例提供的处理报表数据的装置在进行报表数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的处理报表数据的装置与处理报表数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的服务端的结构示意图。该服务端500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务端中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务端500上执行存储介质530中的一系列指令操作。
服务端500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,一个或一个以上键盘556,和/或,一个或一个以上操作系统541,例如Windows Server TM,Mac OS XTM,Unix TM,Linux TM,FreeBSD TM等等。
服务端500可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述处理报表数据的处理指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种处理报表数据的方法,其特征在于,所述方法包括:
预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;
当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;
如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。
2.根据权利要求1所述的方法,其特征在于,所述预先确定目标报表的各SQL语句的数据库标识,包括:
获取所述目标报表的各SQL语句在MySQL数据库的执行时间;
将所述执行时间超过预设时间的SQL语句的数据库标识,确定为HIVE数据库标识。
3.根据权利要求1所述的方法,其特征在于,所述预先确定目标报表的各SQL语句的数据库标识之后,还包括:
将所述目标报表的各SQL语句所需的业务数据,同步至各SQL语句的数据库标识所对应的数据库。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
周期性检测数据库报错或SQL语句报错;
所述如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理,包括:
当检测到数据库报错时,记录当前指标的报错参数,并在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果;
根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理;
或者,当检测到SQL语句报错时,记录当前指标的报错参数,并返回空数据,以继续执行其它SQL语句;
在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果,并根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
如果重新生成所述目标报表,则在所述目标报表中确定重新计算的指标;
基于所述重新计算的指标的指标计算结果和缓存的目标报表中其余指标的指标计算结果,重新生成所述目标报表。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
周期性检测HIVE数据库的资源占用率;
如果所述HIVE数据库的资源占用率超过预设占用率,则暂停执行SQL语句,直至检测到所述HIVE数据库的资源占用率低于所述预设占用率时,继续执行SQL语句。
7.一种处理报表数据的装置,其特征在于,所述装置包括:
修改模块,用于预先确定目标报表的各SQL语句的数据库标识,并基于所述数据库标识对各SQL语句进行适应式修改,其中,所述数据库标识至少包括MySQL数据库标识和HIVE数据库标识;
缓存模块,用于当取出目标SQL语句时,在所述目标SQL语句的数据库标识对应的数据库上执行所述目标SQL语句,得到所述目标SQL语句的指标计算结果并缓存在本地;
检测模块,用于如果检测到报错,则基于报错类型对应的处理策略以及缓存的指标计算结果,自动对所述目标报表进行生成处理。
8.根据权利要求7所述的装置,其特征在于,所述修改模块,还用于:
获取所述目标报表的各SQL语句在MySQL数据库的执行时间;
将所述执行时间超过预设时间的SQL语句的数据库标识,确定为HIVE数据库标识。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括同步模块,用于:
将所述目标报表的各SQL语句所需的业务数据,同步至各SQL语句的数据库标识所对应的数据库。
10.根据权利要求7所述的装置,其特征在于,所述检测模块,还用于:
周期性检测数据库报错或SQL语句报错;
当检测到数据库报错时,记录当前指标的报错参数,并在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果;
根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理;
或者,当检测到SQL语句报错时,记录当前指标的报错参数,并返回空数据,以继续执行其它SQL语句;
在预设时长后,基于所述报错参数重新计算所述当前指标的指标计算结果,并根据重新计算的所述当前指标的指标计算结果和已缓存的指标计算结果,对所述目标报表进行生成处理。
11.根据权利要求7-10任一项所述的装置,其特征在于,所述装置还包括重生模块,用于:
如果重新生成所述目标报表,则在所述目标报表中确定重新计算的指标;
基于所述重新计算的指标的指标计算结果和缓存的目标报表中其余指标的指标计算结果,重新生成所述目标报表。
12.根据权利要求7-10任一项所述的装置,其特征在于,所述检测模块还用于:
周期性检测HIVE数据库的资源占用率;
如果所述HIVE数据库的资源占用率超过预设占用率,则暂停执行SQL语句,直至检测到所述HIVE数据库的资源占用率低于所述预设占用率时,继续执行SQL语句。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至6任一所述的处理报表数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198660.8A CN109947828B (zh) | 2019-03-15 | 2019-03-15 | 一种处理报表数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198660.8A CN109947828B (zh) | 2019-03-15 | 2019-03-15 | 一种处理报表数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947828A true CN109947828A (zh) | 2019-06-28 |
CN109947828B CN109947828B (zh) | 2021-05-25 |
Family
ID=67010033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910198660.8A Active CN109947828B (zh) | 2019-03-15 | 2019-03-15 | 一种处理报表数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947828B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113111088A (zh) * | 2021-04-13 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 数据抽取方法、装置、计算机设备和存储介质 |
CN113282585A (zh) * | 2021-05-28 | 2021-08-20 | 山东浪潮通软信息科技有限公司 | 一种报表计算方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408134A (zh) * | 2013-11-28 | 2015-03-11 | 中国科学院计算技术研究所 | 一种sql到云环境的映射方法及系统 |
US20160078088A1 (en) * | 2014-09-15 | 2016-03-17 | Rajat Venkatesh | Systems and Methods for Providing Metadata Aware Background Caching in Data Analysis |
CN105975489A (zh) * | 2016-04-26 | 2016-09-28 | 中国电子科技网络信息安全有限公司 | 一种基于元数据的在线sql代码补全方法 |
CN107239548A (zh) * | 2017-06-05 | 2017-10-10 | 携程旅游网络技术(上海)有限公司 | 基于SQL Server和HIVE的报表处理方法 |
CN107609028A (zh) * | 2017-08-09 | 2018-01-19 | 山东中创软件商用中间件股份有限公司 | 一种低效率sql语句的确定方法及装置 |
CN104536893B (zh) * | 2015-01-05 | 2018-01-30 | 中国农业银行股份有限公司 | 一种批量处理程序容报错处理方法及装置 |
CN108509530A (zh) * | 2018-03-14 | 2018-09-07 | 武汉斗鱼网络科技有限公司 | 一种MySQL慢查询语句自动优化方法、计算机设备和存储介质 |
CN108536761A (zh) * | 2018-03-21 | 2018-09-14 | 平安科技(深圳)有限公司 | 报表数据查询方法及服务器 |
-
2019
- 2019-03-15 CN CN201910198660.8A patent/CN109947828B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408134A (zh) * | 2013-11-28 | 2015-03-11 | 中国科学院计算技术研究所 | 一种sql到云环境的映射方法及系统 |
US20160078088A1 (en) * | 2014-09-15 | 2016-03-17 | Rajat Venkatesh | Systems and Methods for Providing Metadata Aware Background Caching in Data Analysis |
CN104536893B (zh) * | 2015-01-05 | 2018-01-30 | 中国农业银行股份有限公司 | 一种批量处理程序容报错处理方法及装置 |
CN105975489A (zh) * | 2016-04-26 | 2016-09-28 | 中国电子科技网络信息安全有限公司 | 一种基于元数据的在线sql代码补全方法 |
CN107239548A (zh) * | 2017-06-05 | 2017-10-10 | 携程旅游网络技术(上海)有限公司 | 基于SQL Server和HIVE的报表处理方法 |
CN107609028A (zh) * | 2017-08-09 | 2018-01-19 | 山东中创软件商用中间件股份有限公司 | 一种低效率sql语句的确定方法及装置 |
CN108509530A (zh) * | 2018-03-14 | 2018-09-07 | 武汉斗鱼网络科技有限公司 | 一种MySQL慢查询语句自动优化方法、计算机设备和存储介质 |
CN108536761A (zh) * | 2018-03-21 | 2018-09-14 | 平安科技(深圳)有限公司 | 报表数据查询方法及服务器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113111088A (zh) * | 2021-04-13 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 数据抽取方法、装置、计算机设备和存储介质 |
CN113282585A (zh) * | 2021-05-28 | 2021-08-20 | 山东浪潮通软信息科技有限公司 | 一种报表计算方法、装置、设备及介质 |
CN113282585B (zh) * | 2021-05-28 | 2023-12-29 | 浪潮通用软件有限公司 | 一种报表计算方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109947828B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10554738B1 (en) | Methods and apparatus for load balance optimization based on machine learning | |
WO2020233212A1 (zh) | 一种日志记录的处理方法、服务器及存储介质 | |
US11709834B2 (en) | Method and database system for sequentially executing a query and methods for use therein | |
CN112181955A (zh) | 一种用于重载铁路综合大数据平台信息共享的数据规范治理方法 | |
CN108959399A (zh) | 分布式数据删除流控方法、装置、电子设备及存储介质 | |
US11182386B2 (en) | Offloading statistics collection | |
CN109947828A (zh) | 一种处理报表数据的方法和装置 | |
CN110262951A (zh) | 一种业务秒级监控方法及系统、存储介质及客户端 | |
CN110377519B (zh) | 大数据系统的性能容量测试方法、装置、设备及存储介质 | |
CN110033242B (zh) | 工作时间确定方法、装置、设备和介质 | |
CN116842090A (zh) | 一种对账系统、方法、设备及存储介质 | |
CN113746883A (zh) | 链路跟踪方法及系统 | |
CN114661571A (zh) | 模型评测方法、装置、电子设备和存储介质 | |
CN116069618A (zh) | 一种面向应用场景的国产化系统评估方法 | |
US11645283B2 (en) | Predictive query processing | |
CN113722141A (zh) | 数据任务的延迟原因确定方法、装置、电子设备及介质 | |
CN113434278A (zh) | 数据聚合系统、方法、电子设备及存储介质 | |
CN113934894A (zh) | 基于指标树的数据显示方法、终端设备 | |
Hu et al. | Reloca: Optimize resource allocation for data-parallel jobs using deep learning | |
CN113297245A (zh) | 获取执行信息的方法及装置 | |
CN112561368B (zh) | 一种oa审批系统的可视化业绩计算方法及装置 | |
CN117573680B (zh) | 一种基于大数据的定位数据传输管理系统及方法 | |
CN115033457B (zh) | 一种可监控预警的多源数据实时采集方法及系统 | |
US11983179B2 (en) | Method and database system for generating a query operator execution flow | |
US20230409570A1 (en) | Machine-learning-based, adaptive updating of quantitative data in database system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231130 Address after: Floor A1, Southeast Comprehensive Building, Intersection of Yangmiao Road and Chezuo Road, Wushan Town, Changfeng County, Hefei City, Anhui Province, 230012 Patentee after: Hefei Youquan Information Technology Co.,Ltd. Address before: 100102 room 323701, building 5, yard 1, Futong East Street, Chaoyang District, Beijing Patentee before: YOUXINPAI (BEIJING) INFORMATION TECHNOLOGY Co.,Ltd. |