为什么要建数据仓库,而不是直连数据源?

news2024/11/15 20:10:47

各位数据的朋友,大家好,我是老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事。

今天和大家聊一个话题:为什么BI软件要用构建数据仓库,而不是直连数据源的方式开发报表?)

在与企业IT的交流过程中,经常会讨论到一个话题,就是做BI数据可视化分析报表时,是建数据仓库好,还是直连数据源好。这个话题,在很多年前非常普遍,近几年少了许多,但仍然会有一些客户会问:“奥威BI软件支持在同一个报表中访问不同的数据源吗?”

可以肯定地回答,奥威BI软件在技术上是支持的。但是,我们强烈反对使用这种方式来开发报表,我们建议大家先将不同数据源的数据,转换到同一个数据仓库中,进行必要的清洗与规范,再进行开发。很多IT会反对说,这样不是很麻烦吗?

是的,这样相对来说,是麻烦了一点。但,很多事情在复杂的演化过程中,麻烦变成了主流。

我们来对比一下,农村建房子和城市建房子有什么不同?农村建房子,一般建个两三层,所以,垒几块砖做地基,就开始往上建,是很快,但是,大家都知道,这样的房子建不高,如果想再加高,就得推倒重建。而城市里建房子,则是一块地,一围就是半年一年甚至更长,这是在干什么呢?这是在挖地基,楼建的越高,地基挖的就越深。

前一段时间,我经常开车经过的一段路,开通了红绿灯。本来车流量不大,没有红绿灯的情况下,通行效率会更高,所以,对此颇为不解。后来看到通行的行人,才明白,这个红绿灯虽然降低了车的通行效率,却提高了行人的安全保障。

曾经有一个段子,说一个软件公司请了一个开发高手,老板问他,你一个人开发完这个项目需要多长时间?高手说2个月,老板心里想,这个项目很着急,需要1个月完成,于是说,如果给你增加2个人,你需要多少时间?高手回答:4个月?老板疯了,为什么啊?人不是越多干活越快吗?高手说,给我增加2个人,我还得和他们沟通,要检查他们的代码,还不如我一个人开发来得快。

其实,奥威也是一样,研发刚开始就几个人,1个人就要承担一个大的产品模块的开发,包括需求梳理、代码开发、功能测试等。但是,当产品的功能、客户的需求以及使用量越来越多的时候,很多问题就开始暴露出来,特别是产品的性能与稳定性,而这些问题非常影响客户的正常使用。于是,慢慢的就开始进行分工,将架构设计、需求规划、代码开发、产品测试都独立开来,再后来,代码开发还区分后台开发与前端开发,再后来,从面向对象开发跨向微服务开发……就像刚才段子里说的那样,人一多,沟通的成本就增加,代码的复杂度也在增加,整个开发的进度明显变慢。但是,奥威BI软件经过几次的技术迭代之后,产品的性能不会因为功能的增加而变慢,也不会因为功能的增加而变得不稳定,也大幅减少了修复了一个bug,又带出三个新bug的情况。很难想像,如果我们还按以前作坊式的开发方式,奥威BI软件是否还能生存下来。

再看我们现在的交通网络,城际主干网为飞机或高铁,市内主要是地铁或公交,最后一公里则是共享单车或步行。我经常出差,200公里内,一般采取自驾的方式,200-1500公里,则通常用高铁,1500公里以上,则采取飞行的方式。我最喜欢的是自驾的方式在珠三角出差,因为这样方便且高效。但是,一旦超过200公里,我就只能选择其他方式了,因为其他方式虽然麻烦一些,但却变得更高效。通常我在有地铁的城市见客户,也基本不打车,虽然坐地铁麻烦,但比打车在时间上更可靠。

讲了这么多,就是想说,BI的建设我们不能图一时之快,能省事就省事,而要图长远,这个平台可以支撑起未来公司3-5年甚至更长时间的持续优化,深入应用,那么,这个时候,就必须要用略显麻烦的方式去满足未来复杂场景下的高效,稳定运行。所谓的复杂场景,就是指越来越多的人使用,越来越多的需求场景,越来越多的数据量。其实,现在更大型的企业已经在数据仓库的基础上,衍生的更复杂,包括数据中台、数据湖等等。这些高大上的概念,大家有兴趣的话,可以自行去百度,简单的说来,数据仓库主要是为决策提供数据支持,数据中台则不仅包含为决策提供数据支持,还多了为不同业务系统提供数据支持;而数据湖呢,它更强调保持数据的原汁原味,包含很多非结构数据,也不强调数据治理,更多是希望借助AI技术进行深度数据价值挖掘。那对于我们这些非互联网企业来说,构建好数据仓库就已经足够应对未来5-10年的复杂需求场景了。

说了半天,好像都没有搞明白,为什么直连数据源就像是农村一样建房,而构建数据仓库则是建高楼大厦的地基呢?

举例说明:

假如我们需要从ERP、MES、HR、CRM中取数制作一张老板要的大屏,分别展示财务、生产、人力与客户的情况,可以按不同时间筛选。

1、直连数据源

小强用直连数据源并分别将老板关心的数据用写SQL的方式获得,并在BI软件上制作出大屏。这肯定是最快的。但是,当大屏做好之后,老板突然觉得这还不够,希望能按组织筛选不同事业部或分公司的数据。这个时候,小强就傻眼了。为什么呢?因为ERP、MES、HR、CRM中组织这个基础资料都不一样,同一个事业部或分公司,在不同的系统里编码不一样,名称叫法可能都不一样,甚至组织划分的方式都不同。最后,没办法,只好通过一系列复杂的操作,想办法在前端实现筛选时,可以得到一致的结果,加了几个通宵班,才勉强交差。

又过了一段时间,老板又有了新的想法,希望能往下钻取,分别要看到不同事业部或分公司的更多维度的数据。这下可惨了,小强又得折腾一段时间,并且瑟瑟发抖,祈祷老板不要有新的想法。

2、数据仓库:

用数据仓库的方法就不会出现上述这种情况。只要打好了数据仓库这个地基,后面老板有任何的想法,都可以基于数据仓库与分析模型,前端拖拽即可实现,立等可取!

到底怎么构建数据仓库呢?

奥威BI软件根据近20年的经验,开发出一套适用于绝大多数企业的通用数据底座,不管企业用的是用友金蝶ERP,还是其他的MES或HR,都可以按这个数据底座进行对接,将构建数据仓库的时间大幅压缩。

在这里插入图片描述

奥威BI数据可视化软件

构建数据仓库,打好坚实的地基,BI大厦才能越建越高!

老周道数据,和你一起,用常人思维+数据分析,通过数据讲故事,我们下一讲再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488651.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker的底层原理,带你上天

1、docker的层级怎么看 先查看当前机器上有哪些镜像 docker images 这里选看mysql的层级 docker image inspect mysql:5.7.29 命令。其中RootFS部分则是表示了分层信息。 2、查看docker的系统信息 因为这台机器的docker不是我安装的,所以不知道具体的根目录在哪里…

redis之benchmark工具:benchmark是redis自带的性能测试工具

从本篇文章开始,博主将开始对redis的探索,今天的咱们先来聊聊benchmark性能测试工具,通过此工具来检查以下redis的读写能能力以及环境问题。通过此工具可以让我们更清楚的认识到redis具有怎样的能力,是否要进行其他的配置例如&…

【css】CSS层叠样式表二

目录 一、Emmet语法 1、快速生成HTML结构语法 2、快速生成CSS样式语法 3、vscode自动格式化代码 二、CSS的复合选择器 1、什么是复合选择器 1.1后代选择器(重要) 1.2子选择器(重要) 1.3并集选择器(重要&…

Downie 4 4.6.16 MAC上最新最好用的一款视频下载工具

Downie for Mac 简介 Downie是Mac下一个简单的下载管理器,可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们。 Downie 4 下载 Downie 4 for Mac Downie 4 for Mac软件特点 支持许多站点 -当前支持1000多个不同的…

SLAM中将地图映射到谷歌地图上的方法——完美运行

文章目录 前言一、rviz_satellite二、mapviz 前言 老是看到论文中有将地图映射到谷歌地图上的图,实在是泰裤辣!!(武汉大学) 搜索了很久,发现有两种可视化软件,分别为rviz_satellite和mapviz。…

换脸ai的方法分享!这几个换脸APP巨好用。​

换脸ai的方法分享!换脸AI是一种基于人工智能技术的图像处理应用,它可以将一个人的面部特征和表情应用到另一张照片或视频中,实现快速、高效的人脸替换。这种技术利用机器学习模型分析和学习大量的人脸数据,训练出一种“生成对抗网…

GPU基础与CUDA编程入门

文章目录 一、GPU和CPU的区别GPU: 高吞吐量导向设计CPU: 低延迟导向设计GPU适合什么场景:什么是Prefetch? 二、CUDA与OpenCL三、CUDA编程并行计算整体流程内存模型线程块网格Grid:并行线程块组合线程束SIMD 四、CUDA编程实例&…

ModuleNotFoundError: No module named ‘allennlp‘解决方法

1. 准备工作 由于本人复现论文要安装allennlp的包但是遇到些问题,所以特地记录一下 需求:在SBN环境下安装allennlp的包 1.创建环境 创建一个环境名为SBN的环境名字 python版本为3.8.5 可以根据自己需求指定, conda create -n SBN python3.8.5conda a…

企业微信-构造网页授权链接实现登录

文档地址:构造网页授权链接 - 接口文档 - 企业微信开发者中心 注意: 1.redirect_uri:回调链接地址,需要使用urlencode对链接进行处理 2.scope:如果需要获取成员的头像、手机号等信息需要设为snsapi_privateinfo 例如前…

ChatGPT4.0火爆全球,是什么让它独领风骚?

ChatGPT造就了互联网历史上又一个神话,仅用两个月时间就成功吸引了1亿用户,成为全球互联网应用中增长速度最快的一个。连比尔盖茨都称:ChatGPT的历史意义重大,不亚于PC或互联网诞生。这个热度以至于ChatGPT官网长期都处于满负荷运…

射频功率放大器在S180肿瘤细胞膜研究中的应用

实验名称:聚焦超声对S180肿瘤细胞膜理化性质的影响 研究方向:生物医疗 测试目的: 细胞膜是细胞生命活动中有着复杂功能的重要结构其基本作用在于维持细胞内外环境的相对稳定而其通透性、完整性及流动性等理化性质则与胞内外信息传递、物质…

Unity——Mirror学习(01)

1.下载 Mirror是一个简单高效的开源的unity多人游戏网络框架,Mirror在Unity商店中是免费的,因此直接加入自己的资源库并在导入即可。 官方API地址:https://mirror-networking.gitbook.io/docs 2.使用 1.创建场景的网络管理器 网络管理器…

C#,生信软件实践(03)——DNA数据库GenBank格式详解及转为FASTA序列格式的源代码

1 GenBank 1.1 NCBI——美国国家生物技术信息中心(美国国立生物技术信息中心) NCBI(美国国立生物技术信息中心)是在NIH的国立医学图书馆(NLM)的一个分支。它的使命包括四项任务:1. 建立关于分…

Linux操作系统CentOS7安装Nginx[详细版]

Linux操作系统CentOS7安装Nginx[详细版] Nginx安装 1. 官网下载 Nginx 2. 使用 XShell 和 Xftp 将压缩包上传到 Linux 虚拟机中 3. 解压文件 nginx-1.20.2.tar.gz 4. 配置nginx 5. 启动 nginx 6. 拓展(修改端口和常用命令) (一)修…

QProgressBar详解

QProgressBar详解 [1] QProgressBar详解1.QProgressBar简述2.常用方法3.示例,比较进度条4.设置样式表 [1] QProgressBar详解 原文链接:https://blog.csdn.net/wzz953200463/article/details/125530997 1.QProgressBar简述 QProgressBar提供了一个水平…

Spark大数据处理讲课笔记3.5 RDD持久化机制

文章目录 零、本讲学习目标一、RDD持久化(一)引入持久化的必要性(二)案例演示持久化操作1、RDD的依赖关系图2、不采用持久化操作3、采用持久化操作 二、存储级别(一)持久化方法的参数(二&#x…

docker使用集锦

docker简介 docker是一个软件,作用是在任意安装docker软件的系统上虚拟一个容器,用户可以在容器上构建任何自定义环境。 容器与虚拟机的区别在于,虚拟机需要对硬件也虚拟化,分配给虚拟机一定的资源,包括网卡&#xf…

SpringBoot热部署插件原理分析及实战演练

目录 1、关于热部署(Hot Deploy)产生的背景 1)热部署出现前 2)热部署出现后 2、spring-boot-devtools插件原理 1)解决变更文件自动加载到JVM中 2)spring-boot-devtools重启速度比手动重启快 3、关于…

最优化理论(一)Fibonacci法(python实现)

最优化理论之Fibonacci法(python实现) 纯纯干货 刚过完五一假期,又要回归到课程多还要兼顾每天考研复习的生活的日常了,这不,最优化理论课程又需要编写一些代码,鉴于网上基于python实现的系列算法很杂很散(基本没有&…

juc--三大接口

文章目录 juc一、为什么会有juc二、juc--三大接口1.lock2.condition3.ReadWriteLock 二、juc--的默认实现类1.ReentrantLock--lock的默认实现类公平锁,非公平锁 2. ReentrantReadWriteLock读写锁--ReadWriteLock的默认实现类读写锁和排它锁 总结 juc juc: java.util.concurren…