哪些报表该放入报表系统,哪些又该放到业务系统里?

简介: 哪些报表该放入报表系统,哪些又该放到业务系统里?

OLTP & OLAP

玩数据的都知道,咱把数据分为OLTP(联机事务处理)和OLAP(联机分析处理),他们的方向是截然不同个。OLTP主要负责数据的“增删改查”,简单理解就是对数据本身进行记录额沉淀,是信息部门干的活儿。OLAP主要负责对数据的“清洗、转换、分析、挖掘”,简单理解就是对OLTP沉淀的数据进行价值提取,是数据部门干的活儿。

 

因此事务处理技术发展趋势就是满足事物四大特性:ACID,即原子性、一致性、持久性、隔离性。而分析处理技术发展趋势就是满足数据价值挖掘的需求。但是到这里,依然没有解决本文的核心问题:报表应该放在那里?

OLTP侧的报表

OLTP侧也是有报表的。在数仓建设之前就有报表了,到现在依然如此。几乎所有系统都有基本的统计功能模块,有些业务系统的统计模块里的报表还非常丰富。OLTP侧的报表有得天独厚的优势:与业务和业务系统无缝对接。它们可以轻而易举地做到完全实时——本来么,OLTP侧的报表可以直接从业务表里取数,当然是实时的了。由于OLTP侧完全服务于当前业务流程,因此OLTP侧的报表研制目标的非常明确且稳定。君不见很多业务系统里的报表好几年都不变。但是TP侧的报表也有很多根深蒂固毛病,这些毛病源自于开发报表的人大多都是程序员,他们对数据的理解依然停留在“增删改查”的阶段。举两个例子:1、时间戳;2、状态变化;3、不轻易对数据做操作(避免影响业务系统性能)。很多TP侧的报表都只能根据系统中数据现在的状态进行查询,对历史状态变化没有进行记录和留痕。这就会导致同一个查询条件在昨天和今天查的结果是完全不一样的。原因是业务表中某个筛选条件的状态数据发生变化了。还有就是,TP侧的报表虽然贴近业务,但是也受限于本业务。跨系统进行数据集成就非常困难,往往会在N个系统之间打“老鼠洞”。不仅管理难度大,安全性也受到挑战。

OLA

P侧的报表是的,你猜到了。数据仓库就是为了解决上述问题而诞生的。所以你现在再去看看数据仓库的定义,就能理解为啥这么写了: 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合。

OLAP侧的报表是基于数仓、数据集市而建设的。失去了实时性(不过现在也有实时数仓,但是技术复杂度和成本都很高),但是获得了跨系统数据集成、历史状态、稳定等特性。在OLAP侧,由于数据已经搬过来了,就可以随便玩了,可以搞的花样也就很多了。与OLTP侧的范式建模不一样,在AP侧往往采用维度建模,这样的好处就是可以实现报表的自定义化。“拖拉拽”就是在这个技术背景下产生的。OLAP侧的报表好处就不说了,它能让人从Excel中来,往Excel中去(别笑,这个评价很高,懂的人自然就懂——老彭)。

到底放在那里?

OLAP的A就是Analysis-分析,所以OLAP侧的报表就是为了分析而生的。对于查账单这类和业务目的强、实时性高、和业务流程结合紧密的需求来说,OLAP报表明显是不符合要求的。 但是OLTP侧由于数据建模的方式,注定实现不了维度和度量的自由搭配,即便做了“拖拉拽”,也是徒有其型的银枪蜡头,样子货。很难跨N个系统进行数据汇聚后的分析,更是难以支撑海量数据的统计、分析、挖掘需求。但是终究得切分一下,对吧?老彭简单整理了几个问题,问完之后自然就知道应该放在那边了:1、数据来源是否来自单一业务系统?是:OLTP+1;否:OLAP+1。2、数据更新频率是否要求实时?是:OLTP+1;否:OLAP+1。3、报表更偏向业务流程还是业务分析?流程:OLTP+1;分析:OLAP+1。4、报表是否涉及历史状态数据?不涉及:OLTP+1;涉及:OLAP+1。5、数据部门是否独立部门?是:OLTP+1,否:OLAP+10(没写错,数据部门在IT部门下,你还要啥自行车?老老实实听老大安排就完了,扯那么多干啥?)以上问题仅供参考,各位彭友可以多列几个,遇到新报表,按照这个问题列表唠几句就都心里有数了。

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
4月前
|
数据管理
当前单一的数据目录已经很难满足数据管 理者和消费者对于资产管理和查找的需求。
当前单一的数据目录已经很难满足数据管 理者和消费者对于资产管理和查找的需求。
39 2
|
8月前
|
SQL Java 关系型数据库
从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的
最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以。但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出。 他知道是因为数据全部加载到jvm内存导致的堆溢出。所以只能对时间窗口做了限制。以避免因导出过数据过大而引起的堆溢出。最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月。
|
10月前
|
前端开发 JavaScript 数据管理
|
BI 数据处理 Scala
报表统计_执行框架_旧模块改造 | 学习笔记
快速学习报表统计_执行框架_旧模块改造
78 0
报表统计_执行框架_旧模块改造 | 学习笔记
|
供应链
SAP MM 用客户寄售库存管理方式来管理周转箱等可回收物料
SAP MM 用客户寄售库存管理方式来管理周转箱等可回收物料
SAP MM 用客户寄售库存管理方式来管理周转箱等可回收物料
如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
|
存储
SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的
SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的
96 0
|
Web App开发 开发者
如何找出 SAP电商云产品明细页面读取后台数据的代码具体位置
以如下这个产品明细页面为例: http://localhost:4200/electronics-spa/en/USD/product/553637/nv10
如何找出 SAP电商云产品明细页面读取后台数据的代码具体位置
SAP CRM订单抬头级别的组织架构数据是如何自动拷贝到行项目的
SAP CRM订单抬头级别的组织架构数据是如何自动拷贝到行项目的
122 0
SAP CRM订单抬头级别的组织架构数据是如何自动拷贝到行项目的