专栏名称: 数据派THU
本订阅号是“THU数据派”的姊妹账号,致力于传播大数据价值、培养数据思维。
目录
相关文章推荐
InfoTech  ·  洗个澡把offer洗没了。。 ·  昨天  
CDA数据分析师  ·  被统计公式劝退?这门极简课程让你14天学会用 ... ·  2 天前  
CDA数据分析师  ·  《CDA二级教材》电子版上线CDA网校,助你 ... ·  4 天前  
51好读  ›  专栏  ›  数据派THU

【数据蒋堂】报表应用的三层结构

数据派THU  · 公众号  · 大数据  · 2017-06-03 20:59

正文

请到「今天看啥」查看全文


还有个典型例子是舍位平衡,明细值四舍五入后再合计,可能会与合计值的四舍五入值不相等,会造成报表上明细与合计数值不一致,需要根据合计的舍入值倒推明细的舍入值,这种计算的逻辑并不复杂,但即便用了隐藏格也难以由报表工具完成。


多样性数据源


与多年前的单一数据源不同,现在有许多报表的数据源并不只来源于关系数据库,还可能是NoSQL数据库、本地文件、从WEB上传来的数据等。这些非关系数据库的数据源缺乏标准的数据获取接口和语法,有些甚至没有最基本的过滤能力。而计算报表时总还要进行一些过滤甚至关联运算,虽然报表工具一般都能提供这些计算能力,但由于都是内存计算,只适合于数据量较小的情况,数据量较大时就会导致容量负担过重。而且,大多数报表工具也不能很好地处理像json或XML这种多层数据,也没有灵活编码能力以登录远程WEB服务获取数据。


动态数据源也是常见的需求,报表工具使用的数据源一般是事先配置好的,不能根据参数动态选择,直接使用报表工具无法实现。报表被用于通用查询时,取数用的SQL不能简单地用参数控制条件,而经常可能要替换某个子句,有些报表工具支持宏替换,能够一定程度地解决这个问题,但根据参数计算宏值也是个有条件和过程的运算,直接在报表工具中很难完成。


性能优化问题


我们在往期的文章中曾谈到过,大多数情况的报表性能问题都需要在数据准备阶段来解决,其中有许多场景都不能在数据源内部处理。比如并行取数本来就是解决数据源IO性能问题,只能在数据源外部实现;可控缓存需要在外存写入缓存信息,也不能在数据源内部处理;清单列表中的异步数据缓存和按页取数的功能,都不是数据源本身提供的能力;即使可以在数据源环节处理的多数据集关联问题,在多数据库或非数据的场景、以及希望减轻数据库负担时,仍然需要在数据源外部解决。这些无法在数据源内部处理的场景,显然也无法在报表环节处理。


数据计算层


如果把传统报表应用结构的两层改成三层,增加一个中间的数据计算层,这些问题就容易解决了。









请到「今天看啥」查看全文