【数据蒋堂】第43期:报表开发的现状
报表开发,看起来只是数据呈现环节的事务,并不起眼,但仔细想想,它涉及的工作范围却非常广。如果把查询和交互分析也认为是报表事务的话(呈现形式本来也是报表),那么可以说,绝大多数ETL都是在为报表准备数据而存在的;而且,在数据库中的表,有相当多(经常超过半数)也不是用来存放原始数据,而是为了报表服务的。
不过,有许多程序员对报表开发过程还有些理解误区。对此,我们用三句话来概括报表开发的现状:
在开发应用系统时经常会发现,交易模块已上线很久,而报表模块却迟迟不能结束,总是有新的报表需求源源不断地冒出来。如果开发组在承接项目中仅仅把报表当成应用系统的一个模块而不明确限定其需求范围的话,那通常会死得很难看。
确实,报表天然就具有业务不稳定性。交易系统中常常涉及很复杂的业务规则,随意修改规则可能产生系统的逻辑漏洞,导致数据的不一致,因此,交易系统的规则不会轻易改变。而报表则不同,它只是读取数据,增加更多的报表并不会造成数据的混乱,业务人员在应用过程中想到的新统计需求就会很随意地被提出来,这就造成的报表任务的没完没了。
这是个常态,不要试图规避或消灭它,而要想办法去适应它,也就是建立低成本高效率的应对机制。
自助报表并不管用
既然报表任务天然没完没了,那能不能通过自助报表解决,让业务人员自己去做报表呢?这样报表模块也算是被做完了。
几乎所有的敏捷BI产品都会这么宣称,能够让业务人员简单拖拽就能做出自己想要的报表,也确实有许多用户被这些宣传口号吸引了。
但是,不幸的是,自助报表并不管用,大概只能解决10%-20%的报表开发需求。
这个原因在于:大多数自助报表功能只能针对单一数据集(就是所谓的CUBE了)工作,在某个数据集上进行的汇总统计、查询过滤、排序等动作都没有问题,而需求一旦超出这个数据集的范围后,就无能为力了,又需要技术人员协助去制造新的数据集。有个别功能较强的自助报表产品能够支持多数据集的关联操作,一方面业务人员难以理解(关系数据库的JOIN运算很难懂,我们在前面已有论述),实际上没法用;另一方面即使这样也仍然不够,大概也就能再提高10%的解决比例。实际业务中提出来的报表需求,大比例都要经过多步运算并涉及多数据集混合运算后才能实现,这种报表就只能程序人员通过编码来完成了。
零编码制作报表只是一句口号
那么,使用报表工具是否能够低成本快速的开发呢?报表工具厂商常常会喊零编码制作报表,这是真的吗?
报表工具经过十多年的发展,确实基本上已经能做到零编码制作了。开发人员可以用工具可视地画出报表式样,再填写一些计算公式把数据与单元格绑定,虽然有些公式也还较为复杂,但毕竟比写程序代码要轻松得多了。而且,由于模板化之后,不再有与应用程序耦合在一起的程序代码,报表也更易于维护修改。
不过,这个便利能力只在呈现环节有意义。而完整的报表开发并不只有呈现,还有复杂的数据准备工作,这就是报表工具无能为力的环节了。从这个意义上讲,报表开发的完整过程仍然无法做到零编码。而且,当前报表的呈现格式在向简单化图形化方向发展,报表工具只是在减轻本来已经在变少的工作量,而相对来讲,数据源准备工作量的占比反而变得更 44 33704 44 14988 0 0 2360 0 0:00:14 0:00:06 0:00:08 2945。
有许多报表工具现在也支持一些数据源的再处理,特别是能做多数据源的报表,这样,确实较多的报表可以直接使用报表工具完成。但剩下的那小部分复杂数据集的报表占用的工作量却要大很多,这是报表开发中心的二八原则,复杂报表在数据量只占二成,但占用工作量却占到八成。项目常常被少数复杂报表给拖累,开发周期非常长。
从上面的讨论,其实已经可以看出当前报表开发的重点已经转移;对此,我们还是三句话来总结:
成熟的报表工具已经能解决呈现环节的问题,如前已述,呈现环节基本上可以零编码实现;报表开发的困难主要是在数据源上,这是目前还没有被普遍工具化的环节,是开发工作的点;大多数性能问题也是数据源造成的或者需要由数据源来解决,性能是报表的老大难问题,看起来是报表环节表现出来的问题,但绝大多数是数据源环节的问题。
数据源环境才是当前报表开发的关键点,而且好的数据源处理机制还能优化报表业务的应用结构,这个问题我们在以往的文章中已经有过阐述。
正文结束
近期文章
《数据蒋堂》的作者蒋步星,从事信息系统建设和数据处理长达20多年的时间。他丰富的工程经验与深厚的理论功底相互融合、创新思想与传统观念的相互碰撞,虚拟与现实的相互交织,产生出了一篇篇的沥血之作。此连载的内容涉及从数据呈现、采集到加工计算再到存储以及挖掘等各个方面。大可观数据世界之远景、小可看技术疑难之细节。针对数据领域一些技术难点,站在研发人员的角度从浅入深,进行全方位、360度无死角深度剖析;对于一些业内观点,站在技术人员角度阐述自己的思考和理解。蒋步星还会对大数据的发展,站在业内专家角度给予预测和推断。静下心来认真研读你会发现,《数据蒋堂》的文章,有的会让用户避免重复前人走过的弯路,有的会让攻城狮面对扎心的难题茅塞顿开,有的会为初入行业的读者提供一把开启数据世界的钥匙,有的甚至会让业内专家大跌眼镜,产生思想交锋。
蒋步星,清华大学计算机硕士,著有《非线性报表模型原理》等
1989年中国国际奥林匹克数学竞赛团体冠军成员,个人金牌。
2000年创立润乾公司,首次在润乾报表中提出非线性报表模型,完美解决了中国式复杂报表制表难题,目前该模型已经成为报表行业的标准。
2008年开始研发不依赖关系型数据的计算引擎,历经多个版本后,于2014年集算器正式发布。有效地提高了复杂结构化大数据计算的开发速度和运算效率。
2016年荣获中国电子信息产业发展研究院评选的“2016年中国软件和信息服务业 • 十大领军人物”。
2017年创办数据领域技术讲堂《数据蒋堂》,专注数据、每周一期。
2017年获得中国大数据产业生态大会评选的“2017年度中国数据大工匠”
2017年荣获中国电子信息产业发展研究院评选的“2017年中国软件和信息服务业 • 十大领军人物”。