报表生成装置、方法以及设备
技术领域
本发明涉及计算机辅助管理技术领域,尤其涉及一种报表生成装置、方法以及设备。
背景技术
运营专业高效、业务覆盖全面,是企业从市场获得发展机会的两个必备条件。企业运营的专业高效化和业务覆盖的全面化,就会大量增加企业的业务单据使用量。对大量业务单据进行及时、有效地管理,就需要使用一套具有较强业务单据数据处理能力的财务管理系统,以便为企业经营管理者提供能反映企业经营状况及资产负债情况的财务报表,例如资产负债表、现金流量表、财务状况变动表、损益表等等。企业经营管理者,以获得的财务报表为依据改善企业的经营管理。
财务报表是反映企业或预算单位一定时期资金、利润状况的会计报表。财务报表是随着商业社会对会计信息披露程度要求越来越高而不断发展的。传统的财务报表由财务部门的业务人员自顶而下对相关数据进行人工整理登记。例如,通常将财务相关数据登记在Excel中,利用Excel的相关函数、视图进行报表计算以及计算机展示。这样的财务报表,其时效性一般在天级别上。但是,对于各大银行、微信支付、京东金融、支付宝等,其业务众多,且不同的业务每秒、甚至每毫秒都会产生海量的数据。采用传统的数据整理方式无法满足要求。
发明内容
鉴于现有技术的以上问题,本说明书的一个或多个实施例提供一种自动的报表生成装置、方法以及设备,其能够提高报表数据生成的时效性。
本申请的发明人首先注意到:传统的财务报表生成方式实际上是将例如一天的财务数据进行批处理,这是一种增量计算,其相对于全量计算虽然提高了时效性,但是仍然不能满足每秒都会产生海量数据的经营企业日常需求。为此,本申请的发明人首先提出使用流(stream)式计算来实时处理海量流式(财务)业务数据。另外,本申请的发明人还注意到:诸如微信支付或支付宝的业务数据不仅来自电脑端的网页,而且还来自于手机端的APP(应用程序)。为此,本申请的发明人提出中间件(middleware)来同步来自各个平台的业务数据。
按照本说明书的第一实施例提供了一种报表生成装置,包括:数据同步中间件,其被配置为将来自一个或多个数据源的流式业务数据实时同步至流计算平台;所述流计算平台,其被配置为根据来自报表系统的报表模板中的一个或多个报表项目对所述流式业务数据进行实时处理;以及存储模块,其被配置为存储经处理的流式业务数据。
这里,本说明书使用的术语“流式业务数据”是由业务产生的有向无界的数据流。所述“一个或多个数据源”包括来自电脑端的网页、来自于手机端的APP(应用程序)等。所述“数据同步中间件”可以实现为连接软件组件和应用的计算机软件,它包括一组服务。在一个示例中,所述报表生成装置可以独立于报表系统。然而,本领域技术人员也能预见到,所述报表生成装置可以与报表系统集成到一起。
借助于本说明书的这种报表生成装置,可以实时收集并处理流式(财务)业务数据,而无需财务人员手动将财务业务数据录入Excel中,由此提高了(财务)报表生成的时效性。
按照本说明书的另一实施例,所述流计算平台优选地还被配置为针对所述报表系统的所述报表项目实时清洗所述流式业务数据。例如,优选地所述清洗包括保留流式业务数据中报表项目所依赖的数据,而滤除与报表项目无关的其他数据。这样避免了人工录入报表所依赖的数据。
按照本说明书的另一实施例,所述报表生成装置优选地还包括报表计算模块,所述报表计算模块被配置为解析并填充所述报表模板。
本申请的发明人首先注意到:(流式)财务业务数据实际上是由业务产生的有向无界的数据流。因而,按照本说明书的又一实施例,所述报表计算模块优选地还被配置为获取针对所述报表模板的变量有向无环图(DAG);至少从所述经处理的流式业务数据获取所述变量有向无环图中所有单变量的变量值;根据所述变量有向无环图,依次获取每个剩余变量的变量值;并且将所述单变量和剩余变量的变量值填充至所述报表模板。这里,所述单变量表示只有单一变数的变量,而所述剩余变量是指所述变量有向无环图中除所述单变量以外的其他变量。
按照本说明书的另一实施例,获取每个剩余变量的变量值包括判断每个剩余变量的获取方式。所述获取方式包括a)将所述变量有向无环图的上下文中存储的变量进行函数计算、b)调用计量系统指标数据查询服务、以及c)手动录入。这是因为本申请的发明人注意到:除了可以从例如经处理的流式业务数据获取变量值的单变量以外,DAG中的剩余变量基本上可以通过上述方式确定变量值。
在一个方面,所述函数取决于每个剩余变量及其在所述变量有向无环图的上下文中的相关变量之间的关系。
在另一方面,所述存储模块位于计量系统中,并且调用计量系统指标数据查询服务包括从所述经处理的流式业务数据获取指标数据,并根据所获取的指标数据生成所述变量值。
按照本说明书的另一实施例,所述报表生成装置优选地还包括可视化引擎,所述可视化引擎被配置为接收经填充的报表模板并将其渲染至浏览器。所述可视化引擎可以采用蚂蚁金服的可视化引擎G2或G6。这样扩展了业务报表只能通过Excel视图进行计算机展示的现状。
按照本说明书的第二实施例提供了一种报表生成方法,包括:将来自一个或多个数据源的流式业务数据实时同步至流计算平台;根据来自报表系统的报表模板中的一个或多个报表项目对所述流式业务数据进行实时处理;并且存储经处理的流式业务数据。
按照本说明书的第三实施例提供了一种报表生成设备,包括:处理器;以及存储器,其上存储有可执行指令,其中,所述可执行指令当被执行时使得所述处理器执行前述段落所述的报表生成方法。
按照本说明书的第四实施例提供了一种机器可读存储介质,其上存储有可执行指令,其中,所述可执行指令当被执行时使得机器执行前述段落所述的报表生成方法。
通过本说明书的各个实施例提供的报表生成装置、方法以及设备,可以实时提供报表所需的数据,从而将报表数据收集的时效性提升至小时级以内。此外,通过DAG变量依赖解析自动获取并计算变量,由此自动填充至报表模板,替代了报表手动维护的方式。
附图说明
本发明的特征、特点、优点和益处通过以下结合附图的详细描述将变得显而易见。
图1示出了按照本说明书的实施例的报表生成装置的整体框图。
图2示出了按照本说明书的实施例的报表数据获取的总体流程图。
图3示出了按照本说明书的一个示例的变量DAG图。
图4示出了按照本说明书的实施例的报表生成方法的总体流程图。
图5示出了按照本说明书的实施例的报表生成设备的示意图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
本说明书的各个实施例提供了一种自动的报表生成装置、方法以及设备,其能够提高报表数据生成的时效性,同时解决了报表需要手动维护的问题。
下面,结合附图详细描述本说明书的各个实施例。
图1示出了按照本说明书的实施例的报表生成装置的整体框图。报表生成装置100至少包括数据同步中间件102和流计算平台104。报表生成装置100例如可以由服务器或者一个或多个处理器来实现。经由数据同步中间件102,来自一个或多个数据源10的流式业务数据被实时同步至流计算平台104。一个或多个数据源10包括来自电脑端的网页、来自于手机端的APP(应用程序)等。在生成财务报表的场景中,一个数据源可以是例如支付宝的网上经营数据,而另一个数据源可以是支付宝的APP销售数据。数据同步中间件102可以是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。数据同步中间件102可以位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯,其是连接两个独立应用程序或独立系统的软件。
流计算平台104可以实现为一个或多个计算机或处理器,其能够对流式数据进行实时处理。在一个示例中,流计算平台104可以被配置为根据来自报表系统20的报表模板中的一个或多个报表项目对所述流式业务数据进行实时处理。在一个示例中,报表生成装置100可以独立于报表系统20,如图1所示。然而,本领域技术人员也能预见到,报表生成装置100可以与报表系统20集成到一起(未示出)。报表系统20可以实现为用于统计报表制作及报表及数据填报的企业级报表分析软件。因而,报表系统20可以存储有一个或多个预先定义的报表模板。例如,如果报表系统20为财务报表系统,那么其可以存储一个或多个预先定义的财务报表模板。
在一个示例中,流计算平台104优选地还被配置为针对报表系统20的报表项目实时清洗流式业务数据。例如,优选地所述清洗包括保留流式业务数据中报表项目所依赖的数据,而滤除与报表项目无关的其他数据。这样避免了人工录入报表所依赖的数据。
在一个示例中,报表生成装置100还可以包括存储模块106,以用于存储经处理的流式业务数据。在另一示例中,存储模块106可以位于计量系统30中。存储模块106可实现为例如计算机的存储介质。存储在存储模块106上的经处理的流式业务数据可以用于填充来自报表系统20的报表模板。
在一个示例中,报表生成装置100还可以包括报表计算模块108(如图1所示),用于解析并填充所述报表模板。在另一示例中,报表计算模块108也可以位于报表系统20中。具体地,继续参照图1并参照图2的报表数据获取过程200,过程200开始之后,报表计算模块108优选地还被配置为获取针对报表模板的变量有向无环图(DAG)210;至少从经处理的流式业务数据获取变量有向无环图中所有单变量的变量值220;根据变量有向无环图,依次获取每个剩余变量的变量值230-260;并且将单变量和剩余变量的变量值填充至所述报表模板280。这里,所述“单变量”表示只有单一变数的变量,而所述“剩余变量”是指DAG中除单变量以外的其他变量。如图3的示例性DAG 300所示,变量a1可以是单变量;而变量a2、b1和b2可以被认为是本文所指的“剩余变量”。例如,变量a2依赖于变量a1;变量b1依赖于变量a1和a2;而变量b2依赖于变量a2。
在一个示例中,如图2所示,获取每个剩余变量的变量值包括判断每个剩余变量的获取方式230。所述获取方式包括a)将所述变量有向无环图的上下文中存储的变量进行函数计算240、b)调用计量系统指标数据查询服务250、以及c)手动录入260。继续参照图2并参照图3,变量a1的变量值例如可以从存储在存储模块106上的经处理的流式业务数据获取。由于变量a2依赖于变量a1,因此在变量a1的变量值已经确定的情况下,变量a2的变量值可以就是变量a1的变量值或者将变量a1的变量值乘以一个权值。由于变量b1依赖于变量a1和a2,因此在确定了变量a1和a2的变量值之后,可以根据函数b1=(a1+a2)/365来计算变量b1的变量值。所述函数取决于每个剩余变量及其在DAG的上下文中的相关变量之间的关系。由于变量b2依赖于变量a2,因此在变量a2的变量值已经确定的情况下,变量b2的变量值可以就是变量a2的变量值或者将变量a2的变量值乘以一个权值。
在另一示例中,如果判断需要调用计量系统指标数据查询服务来获取某个剩余变量的变量值,那么可以通过计量系统30从存储在存储模块106上的经处理的流式业务数据指标数据,并根据所获取的指标数据生成该剩余变量的变量值。
在又一示例中,也可以通过手动录入260的方式获取剩余变量的变量值。例如,在需要的情况下,人工修改已经自动获取的剩余变量的变量值。
不论采用何种方式获取变量值,可以将所获取的变量值存储至DAG上下文中270。然后,可以将所获取的变量值填充至报表模块280。至此,报表数据获取过程200结束了。
在一个示例中,报表生成装置100还可以包括可视化引擎110。在其他示例中,可视化引擎110也可以是单独的部件。可视化引擎110被配置为接收经填充的报表模板并将其渲染至浏览器。可视化引擎110可以采用蚂蚁金服的可视化引擎G2或G6。这样扩展了业务报表只能通过Excel视图进行计算机展示的现状。
图4示出了按照本说明书的实施例的报表生成方法400的总体流程图。方法400可以由服务器或者一个或多个处理器来执行。
继续参照图1并参照图4,在步骤410,通过例如数据同步中间件102,将来自一个或多个数据源10的流式业务数据实时同步至流计算平台104。
在步骤415,通过例如流计算平台104,根据来自报表系统20的报表模板中的一个或多个报表项目对所述流式业务数据进行实时处理。对所述流式业务数据进行实时处理包括针对报表系统20的所述报表项目实时清洗所述流式业务数据。
在步骤420,存储经处理的流式业务数据,例如将其存储在存储模块106中。
然后,方法400可以进一步解析并填充所述报表模板。具体地,在步骤425,通过例如服务器或处理器,获取针对所述报表模板的变量有向无环图(DAG)。在步骤430,通过例如服务器或处理器,至少从所述经处理的流式业务数据获取所述变量有向无环图中所有单变量的变量值。
然后,方法400可以进一步根据所述变量有向无环图,依次获取每个剩余变量的变量值。具体地,在步骤435,通过例如服务器或处理器,判断每个剩余变量的获取方式。所述获取方式包括a)将所述变量有向无环图的上下文中存储的变量进行函数计算440、b)调用计量系统指标数据查询服务445、以及c)手动录入450。
在步骤455,通过例如服务器或处理器,将所获取的变量值存储至DAG上下文中。在步骤460,通过例如服务器或处理器,将所述单变量和剩余变量的变量值填充至所述报表模板。
其它变型
图5示出了按照本说明书的实施例的报表生成设备500的示意图。如图5所示,报表生成设备500可以包括处理器510和存储器520。存储器520上存储有可执行指令,其中,所述可执行指令当被执行时使得处理器510执行图4所示的报表生成方法400。
按照本说明书的实施例还提供一种机器可读存储介质,其上存储有可执行指令,其中,所述可执行指令当被执行时使得机器执行图4所示的报表生成方法400。
尽管说明书的上述实施例参照财务报表场景描述的本发明,但是本发明的发明构思也适合于其他报表生成场景。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。