作者:蒋步星

来源:数据蒋堂

本文共1692字,建议阅读5分钟。
通过本文为大家解读报表开发难点重点和现状问题。

报表开发,看起来只是数据呈现环节的事务,并不起眼,但仔细想想,它涉及的工作范围却非常广。如果把查询和交互分析也认为是报表事务的话(呈现形式本来也是报表),那么可以说,绝大多数ETL都是在为报表准备数据而存在的;而且,在数据库中的表,有相当多(经常超过半数)也不是用来存放原始数据,而是为了报表服务的。

不过,有许多程序员对报表开发过程还有些理解误区。对此,我们用三句话来概括报表开发的现状:

报表任务没完没了

在开发应用系统时经常会发现,交易模块已上线很久,而报表模块却迟迟不能结束,总是有新的报表需求源源不断地冒出来。如果开发组在承接项目中仅仅把报表当成应用系统的一个模块而不明确限定其需求范围的话,那通常会死得很难看。

确实,报表天然就具有业务不稳定性。交易系统中常常涉及很复杂的业务规则,随意修改规则可能产生系统的逻辑漏洞,导致数据的不一致,因此,交易系统的规则不会轻易改变。而报表则不同,它只是读取数据,增加更多的报表并不会造成数据的混乱,业务人员在应用过程中想到的新统计需求就会很随意地被提出来,这就造成了报表任务的没完没了。

这是个常态,不要试图规避或消灭它,而要想办法去适应它,也就是建立低成本高效率的应对机制。

自助报表并不管用

既然报表任务天然没完没了,那能不能通过自助报表解决,让业务人员自己去做报表呢?这样报表模块也算是被做完了。

几乎所有的敏捷BI产品都会这么宣称,能够让业务人员简单拖拽就能做出自己想要的报表,也确实有许多用户被这些宣传口号吸引了。

但是,不幸的是,自助报表并不管用,大概只能解决10%-20%的报表开发需求。

这个原因在于:大多数自助报表功能只能针对单一数据集(就是所谓的CUBE了)工作,在某个数据集上进行的汇总统计、查询过滤、排序等动作都没有问题,而需求一旦超出这个数据集的范围后,就无能为力了,又需要技术人员协助去制造新的数据集。有个别功能较强的自助报表产品能够支持多数据集的关联操作,一方面业务人员难以理解(关系数据库的JOIN运算很难懂,我们在前面已有论述),实际上没法用;另一方面即使这样也仍然不够,大概也就能再提高10%的解决比例。实际业务中提出来的报表需求,大比例都要经过多步运算并涉及多数据集混合运算后才能实现,这种报表就只能程序人员通过编码来完成了。

零编码制作报表只是一句口号

那么,使用报表工具是否能够低成本快速地开发呢?报表工具厂商常常会喊零编码制作报表,这是真的吗?

报表工具经过十多年的发展,确实基本上已经能做到零编码制作了。开发人员可以用工具可视地画出报表式样,再填写一些计算公式把数据与单元格绑定,虽然有些公式也还较为复杂,但毕竟比写程序代码要轻松得多了。而且,由于模板化之后,不再有与应用程序耦合在一起的程序代码,报表也更易于维护修改。

不过,这个便利能力只在呈现环节有意义。而完整的报表开发并不只有呈现,还有复杂的数据准备工作,这就是报表工具无能为力的环节了。从这个意义上讲,报表开发的完整过程仍然无法做到零编码。而且,当前报表的呈现格式在向简单化图形化方向发展,报表工具只是在减轻本来已经在变少的工作量,而相对来讲,数据源准备工作量的占比反而变得更大。

有许多报表工具现在也支持一些数据源的再处理,特别是能做多数据源的报表,这样,确实较多的报表可以直接使用报表工具完成。但剩下的那小部分复杂数据集的报表占用的工作量却要大很多,这是报表开发中心的二八原则,复杂报表在数据量只占二成,但占用工作量却占到八成。项目常常被少数复杂报表给拖累,开发周期非常长。

从上面的讨论,其实已经可以看出当前报表开发的重点已经转移;对此,我们还是三句话来总结:

成熟的报表工具已经能解决呈现环节的问题,如前已述,呈现环节基本上可以零编码实现;报表开发的困难主要是在数据源上,这是目前还没有被普遍工具化的环节,是开发工作的点;大多数性能问题也是数据源造成的或者需要由数据源来解决,性能是报表的老大难问题,看起来是报表环节表现出来的问题,但绝大多数是数据源环节的问题。

数据源环境才是当前报表开发的关键点,而且好的数据源处理机制还能优化报表业务的应用结构,这个问题我们在以往的文章中已经有过阐述。

专栏作者简介

润乾软件创始人、首席科学家

清华大学计算机硕士,著有《非线性报表模型原理》等,1989年,中国首个国际奥林匹克数学竞赛团体冠军成员,个人金牌;2000年,创立润乾公司;2004年,首次在润乾报表中提出非线性报表模型,完美解决了中国式复杂报表制表难题,目前该模型已经成为报表行业的标准;2014年,经过7年开发,润乾软件发布不依赖关系代数模型的计算引擎——集算器,有效地提高了复杂结构化大数据计算的开发和运算效率;2015年,润乾软件被福布斯中文网站评为“2015福布斯中国非上市潜力企业100强”;2016年,荣获中国电子信息产业发展研究院评选的“2016年中国软件和信息服务业十大领军人物”;2017年, 自主创新研发新一代的数据仓库、云数据库等产品即将面世。

数据蒋堂

《数据蒋堂》的作者蒋步星,从事信息系统建设和数据处理长达20多年的时间。他丰富的工程经验与深厚的理论功底相互融合、创新思想与传统观念的相互碰撞,虚拟与现实的相互交织,产生出了一篇篇的沥血之作。此连载的内容涉及从数据呈现、采集到加工计算再到存储以及挖掘等各个方面。大可观数据世界之远景、小可看技术疑难之细节。针对数据领域一些技术难点,站在研发人员的角度从浅入深,进行全方位、360度无死角深度剖析;对于一些业内观点,站在技术人员角度阐述自己的思考和理解。蒋步星还会对大数据的发展,站在业内专家角度给予预测和推断。静下心来认真研读你会发现,《数据蒋堂》的文章,有的会让用户避免重复前人走过的弯路,有的会让攻城狮面对扎心的难题茅塞顿开,有的会为初入行业的读者提供一把开启数据世界的钥匙,有的甚至会让业内专家大跌眼镜,产生思想交锋。

往期回顾:

数据蒋堂 | JOIN延伸 - 维度概念

数据蒋堂 | JOIN提速 - 有序归并

数据蒋堂 | JOIN提速 - 外键指针的衍生

数据蒋堂 | JOIN提速 - 外键指针化

数据蒋堂 | JOIN简化 - 意义总结

数据蒋堂 | JOIN简化-消除关联

数据蒋堂 | JOIN简化 - 维度对齐

数据蒋堂 | JOIN运算剖析

数据蒋堂 | 迭代聚合语法

数据蒋堂 | 非常规聚合

数据蒋堂 | 再谈有序分组

数据蒋堂 | 有序分组

数据蒋堂 | 非等值分组

数据蒋堂 | 还原分组运算的本意

数据蒋堂 | 有序遍历语法

数据蒋堂 | 常规遍历语法

数据蒋堂 | 从SQL语法看离散性

数据蒋堂 | 从SQL语法看集合化

数据蒋堂 | SQL用作大数据计算语法好吗?

数据蒋堂 | SQL的困难源于关系代数

数据蒋堂 | SQL像英语是个善意的错误

数据蒋堂 | 开放的计算能力为数据库瘦身

数据蒋堂 | 计算封闭性导致臃肿的数据库

数据蒋堂 | 怎样看待存储过程的移植困难

数据蒋堂 | 存储过程的利之弊

数据蒋堂 | 不要对自助BI期望过高

数据蒋堂 | 报表的数据计算层

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

数据蒋堂 | 列式存储的另一面

数据蒋堂 | 硬盘的性能特征

数据蒋堂 | 我们需要怎样的OLAP?

数据蒋堂 | 1T数据到底有多大?

数据蒋堂 | 索引的本质是排序

数据蒋堂 | 功夫都在报表外--漫谈报表性能优化

数据蒋堂 | 非结构化数据分析是忽悠?

数据蒋堂 | 多维分析的后台性能优化手段

数据蒋堂 | JOIN延伸 - 维度查询语法

数据蒋堂 | 文件的性能分析

数据蒋堂 | RDB与NoSQL的访问性能

校对:谭佳瑶

为保证发文质量、树立口碑,数据派现设立“错别字基金”,鼓励读者积极纠错

若您在阅读文章过程中发现任何错误,请在文末留言,或到后台反馈,经小编确认后,数据派将向检举读者发8.8元红包

同一位读者指出同一篇文章多处错误,奖金不变。不同读者指出同一处错误,奖励第一位读者。

感谢一直以来您的关注和支持,希望您能够监督数据派产出更加高质的内容。

数据蒋堂 | 报表开发的现状相关推荐

  1. 数据准备 ——报表开发中的深层次问题

    前言 现在企业的报表开发大部分都使用报表工具完成,成熟的报表工具提供了丰富的显示设置.图表类型.导出打印等功能可以简化报表开发,非常方便.但在实际报表开发中还是经常碰到一些非常棘手的深层次问题,即使是 ...

  2. 数据蒋堂 | 报表工具的SQL植入风险

    作者:蒋步星 来源:数据蒋堂 本文共2600字,建议阅读10分钟. 报表开发人员如何规避安全漏洞问题? 所有的报表工具都会提供参数功能,主要都是用于根据用户输入的查询条件来选取合适的数据.比如希望查询 ...

  3. 数据蒋堂 | 中国报表漫谈

    作者:蒋步星 来源:数据蒋堂 本文共7100字,建议阅读10+分钟. 中国的报表到底复杂在哪里?号称能对付中国报表的工具到底灵不灵?我们就来胡乱聊聊中国报表的这些闲事. [ 导读 ]在敏捷BI横行的年 ...

  4. 数据蒋堂 | 数据库的封闭性

    作者:蒋步星 来源:数据蒋堂 本文共1200字,建议阅读6分钟. 本文与你探讨数据库的封闭性对数据处理效率的影响. 我们知道,数据库的数据处理能力是封闭的.所谓封闭性,这里是指要被数据库计算和处理的数 ...

  5. 数据蒋堂 | 多维分析预汇总的存储容量

    作者:蒋步星 来源:数据蒋堂 本文共1700字,建议阅读7分钟. 本文带你感性认识多维分析方案中的预汇总额外占用的存储空间. 多维分析一般是交互式操作的,也就要求有极高的响应速度,而多维分析涉及的数据 ...

  6. 数据蒋堂 | 多维分析预汇总的功能盲区

    作者:蒋步星 来源:数据蒋堂 本文共1900字,建议阅读9分钟. 本文归纳了预汇总方案的功能不足. 在进一步讨论如何在有限空间内实现多维分析的预汇总之前,我们有必要再了解一下预汇总方案还有什么功能上的 ...

  7. 数据蒋堂 | 人工智能中的“人工”

    作者:蒋步星 来源:数据蒋堂 本文共1085字,建议阅读4分钟. 本文为你介绍人工智能的背后的"人工",主要包括数据准备和数据科学家. 自从AlphaGo赢了之后,人工智能就变得非 ...

  8. 数据蒋堂 | 存储和计算技术的选择

    作者:蒋步星 来源:数据蒋堂 本文共1093字,建议阅读4分钟. 本文为你介绍NoSQL.RDB.集算器三种数据库的储存与计算. 前一阵子公司有个售前来沟通某个用户的情况:数据量比较大,又涉及很多复杂 ...

  9. 数据蒋堂 | Hadoop中理论与工程的错位

    作者:蒋步星 来源:数据蒋堂 校对:林亦霖 本文共1400字,建议阅读6分钟. 本文分析了在Hadoop的设计和实现中的理论问题和工程问题. Hadoop是当前重要的大数据计算平台,它试图摒弃传统数据 ...

最新文章

  1. 【项目管理】项目问题应对思路
  2. Vuejs 写法实例
  3. error: cannot read: aaa.java_Java期末考试习题库[选择题填空题改错题学生].doc
  4. 为什么实对称矩阵要求其正交矩阵,而不是可逆矩阵使其对角化?
  5. 「LOJ#10068」「一本通 3.1 练习 3」秘密的牛奶运输(次小生成树
  6. 程序员都需要会的JVM调优总结 -Xms -Xmx -Xmn -Xss,附idea配置实战(程序员必学)
  7. 【数据结构 课程设计】识别结点(node) 故障和边缘(edge)故障中的网络断层扫描
  8. 长江大学计算机科学学院德贵奖学金,关于做好2019年各类奖学金评选的通知
  9. Springboot整合Redis实现腾讯云发送短信验证码并实现注册功能
  10. 作为学生,我是怎么半年赚到人生第一个三十万的
  11. 谷歌:新人工智能(AI)算法预测人类死亡时间,意念可指挥机器人
  12. 如何解读测试结果出现负数
  13. 电阻介绍及工作原理应用
  14. pythontext函数用法汇总_Python - Text Summarization
  15. 最新图文识别技术综述
  16. 戴尔 DELL 游戏笔记本电脑 - Windows 10 关闭触摸板
  17. Echarts图表数据变动后重新渲染
  18. TWS耳机背后的推手
  19. 北极熊扫描器4.0发布,无需过多介绍的国产安全工具
  20. 安装w3af时已经安装retire却提示没有安装的问题

热门文章

  1. (七)Servlet过滤器
  2. Android SearchView介绍及搜索提示实现
  3. Directive全面分析
  4. mysql_5.6.21_安装使用说明
  5. yum安装nginx+PHP+Mysql
  6. 关​于​h​i​b​e​r​n​a​t​e​中​双​向​外​键​关​联​o​n​e​-​t​o​-​o​n​e​的​p​r​o​p​e​r​t​y​-​r​e​f​=​的​问​题(转)...
  7. 基类与接口混合继承的声明问题 [C#, Design] -Allen Lee's Magic
  8. ode matlab传递变量,一个时变ode求解例子——以及如何向myode传递附加参数
  9. TSNE 正规英文api
  10. 明明是 64 位系统,为什么python sys.platform 显示 win 32 ?