报表自动化就是连接数据库?错,它打开了数据仓库的大门

文 | 商业智能研究 2022-05-06
阅读次数:698

阅读提示:

文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式。
FineReport最新版免费试用:https://www.finereport.com/product/active
FineReport最新版使用教程:https://help.fanruan.com/finereport/

一家企业如何逐步做到商业智能?我认为需要通过报表自动化、数据图表化、数据可视化、数据挖掘四步走的方式,有内到外地让企业数据产生价值。那么这四步具体怎么走呢?请看下文~

我们知道报表自动化是怎么一回事,但在这之前我们需要有大量数据的支持,这些数据就是指我们各种产品在使用、运行过程中存到数据库的数据,当然也包括日志中的数据。

如果是数据库中的数据,那么还可能出现数据分别存储在各种库、表、文件中,他们以最初的业务需要进行分类、并有序或乱序地排列着。

那么,我们报表自动化的实践就是先要让一个服务器连接上所有的产品数据库,然后构建出所有表的实体。

上述这一系列操作用我们熟悉的JAVA、PHP 等语言完成么?不是的,在这之前,我们首先要先建立数据仓库

数据仓库的设计

数据仓库的设计方式有很多种,这里主要讲一种设计方式 DB-ODS-DW-DM 分层设计,这里引入了四个单词,由他们构成的数据流如下图所示:

数据仓库设计,数据仓库模型设计,数据仓库有哪五层架构,数据仓库架构图

图中箭头表示数据的流向,可以看到我们的数据大致是这样流动的:

  • 五湖四海:无论是数据库里的、日志里的、第三方服务、数据提供方的等等,最初的数据便不再五湖四海
  • 海纳百川:来自五湖四海的数据汇聚于一点,OBS 承担着至关重要的一步 — 收集
  • 类聚群分:杂乱无章的堆积终究不便于使用,无论怎样开门看到了混乱的现场要先收拾一下,分门别类的 — 整理
  • 术业专攻:庞大的仓库涵盖了太多的信息,就算我们整理好了也没有能力自我消化,需要找到专人专才去处理对应的信息,进行加工 —分析
  • 天道酬勤:经过复杂的收集、整理、分析后,我们终于让东西产生了价值,可以开始对外输出了

1)DB(Data Base)

这里实际上是指我们的产品 / 业务系统的数据层,这里要用层的概念了,他们可能由多个库构成,这个数据层提供了业务正常运行的支持,如果要做数据仓库,DB 数据层还需要提供,在一定时间里被 ETL 工具批量拉取数据到 ODS 的支持。

2)OBS(Operational Data Store)

ODS(Operational Data Store),操作性数据,是作为数据库 DB 到数据仓库 DW 的一个过渡层 / 中间层。

这一层是个大系统层,它的主要作用是将多个源库内容全部同步到本库中,ETL 工具会四处拉取数据到这里,考虑到单一职责原则,这一层数据结构一般就不会改变了,往往和源库的各个表的结构保持一致。

3)DW(Data Warehouse)

这里讲的是数据仓库的数据仓库层。数据仓库,说到了仓库我们可以想象一下现实中的各种仓库的样子,其实数据仓库也是类似的。

前面 ODS 无条件的接受了所有的信息,也许他唯一能做的就是通过合理的 table 命名来识别出来每个表是从哪个产品库来的数据了,简直是一个超级大的混乱空间,而仓库主要做的就是“规整”。

数据仓库的建模(“整理”)方法有多种,范式建模法(Third Normal Form,3NF)、维度建模法(Dimensional Modeling)、实体建模法(Entity Modeling)……

数据仓库设计,数据仓库模型设计,数据仓库有哪五层架构,数据仓库架构图

注意:数据仓库只是仓库,存储了各种东西,它很整洁,但是它并没有完全的挖掘出存在其内数据的价值,挖掘的步骤就需要下一层了。

4)DM(Data Mart)

数据集市(Data Mart) ,也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。

首先解释一下前面的图里为什么有那么多的 DM 数据库:DM 实际上可以根据业务、部门进行分割了,不同部门 / 业务 / 产品,可以有自己独有的数据库。

其次说说这里面装的是什么。DM 库里往往会装一些能直接对外输出的内容,比如最终可以快速的为报表提供查询服务的数据,还比如各种各样的指标

那什么是指标?同比增长率、月度销售总额、转换率、平均利润率、日点击总数……具体的后面进行更详细介绍

数据仓库设计,数据仓库模型设计,数据仓库有哪五层架构,数据仓库架构图

实际上数据仓库不只是简单的几层,比如上图我“大概”、描述(“假想”)了一个数据仓库的更复杂一些的模型。

分层的目的,无外乎还是希望各司其职,收集、整理、分析,我们的输入就是各个数据源拉过来的信息,经过 OBS 囫囵吞枣、DW 建模归纳,最终我们的 DM 层直接对外提供更有价值数据。

总结

本文简单的介绍了一种数据仓库的分层设计,主要提及了 OBS 层、DW 层、DM 层,这里过多的说了概念,后面开始抛出细节。比如后面让我们来聊聊 DW 层建模方法之维度建模

目前主流的软件——FineReport,它小到填报、查询、部署、集成,大到可视化大屏、dashboard驾驶舱,应有尽有,功能很强大。最重要的是,因为这个工具,整个公司的数据架构都可以变得规范,下一步就是构建企业的大数据平台了。而且它是java编写的,支持二次开发,类Excel的设计器,无论是IT还是业务,上手都很简单:编辑sql优化、数据集复用简直都是小case,大大降低了报表开发的门槛。在企业中被关注最多的数据安全方面,FineReport支持多人同时开发同一套报表,并通过模板加锁功能防止编辑冲突;通过数据分析权限控制,保障数据安全。

数据仓库设计,数据仓库模型设计,数据仓库有哪五层架构,数据仓库架构图

报表产品更多介绍:www.finereport.com

免费试用FineReport


本月阅读量最高的10篇文章

售前咨询

服务热线

400-811-8890转1

售后咨询

在线QQ

800049425

服务热线

400-811-8890转2

投诉建议

总裁办24H投诉

173-127-81526