BI 是如何数据分析的?

news2025/7/20 13:55:07

企业部署商业智能BI前,需要进行详细的分析,了解BI能为企业带来多少价值?如何提高工作效率的等等,今天我们就来聊一聊 BI 的工作原理。

一、BI的取数方式

商业智能BI是通过访问和连接业务系统数据源数据库的方式来进行取数的,不管是什么样类型的数据库,商业智能BI通过ETL连接数据库抽取业务系统原表数据到数据仓库中加工处理,最后支撑到前端的可视化分析报表展现。

商业智能BI - 派可数据商业智能BI可视化分析平台

之前有朋友这么提问的:数据源层是需要开发接口吗?

这是回答:

一般不需要,基本上这么提问的都是经历过软件系统的接口对接,软件系统的接口对接是因为有的业务软件是 JAVA 开发的,有的是 .NET 开发的,有的是 B/S 架构,有的是 C/S 架构。软件系统之间的接口是需要开发参与的,主要是串联不同软件的业务流程,这种接口是需要动代码的。 但商业智能BI在获取数据的接口不一样,是与业务系统软件自身无关的,是只需要访问和连接业务系统背后的数据库就可以的,直接从数据库取数,因此是不需要软件接口,或者没有软件接口访问这种概念的。

除非一种情况,这个业务系统是公有云,纯 SAAS 模式,这种情况下就只能通过软件对外开放的 API 接口取数了。

某医药行业销售人员绩效分析 - 派可数据商业智能BI可视化分析平台

某白酒行业渠道终端管理分析 - 派可数据商业智能BI可视化分析平台

二、报表工具是怎么来的?

这十几年我一直在技术领域、信息化领域、商业智能BI 行业,一直没有出这个圈。做过 JAVA ( AWT、SWING、JSP、Hibernate、Spring、ibatis )、.NET ( ASP、http://ASP.NET、C#.NET )、Object-C 、JS 等等技术开发,业务软件系统平台开发。

早期前端技术很弱,AJAX 的实现也都需要手写,要实现一个表单内数据的点击编辑和修改需要自己用 JS DOM 操作。做报表基本上就是 JSP、ASP 脚本语言在前端嵌套 HTML 做循环输出,报表样式很原生很丑陋,稍微复杂一点的表格报表样式都需要用 JS 来调整。

那个时候用过的报表像 Crystal Report 水晶报表、润乾报表等等,在前端脚本语言中有标签直接可以引用,报表生成代替了大量的手写代码。早期的前后端技术是不分家的,http://ASP.NET 还稍微好一些,前端逐步有一些集成控件可以直接使用,JAVA 是真没有。上面说到的这个阶段大概在什么时候呢,2005年前后,2007年我觉得已经使用的很广泛了,老的 CSDN 上应该还能找到很多原始的报表标签帖子。

像老一批报表还有像金峰报表 Jreport、思达报表 StyleReport 等等在国内也有一定的市场。早在 2010 年之前,有些报表厂商的收入规模就已经突破了一个亿,说明基础报表这个市场还是非常不错的。

那个时候的报表定位是什么,就是纯粹的 Report 报表,通过程序从后台数据库中查询返回的数据聚合 List 再到前端脚本页面上绑定一下就生成了各种报表,实际上就是用在各个业务软件系统之中的报表展示,还远远没有到 商业智能BI分析这个层面。

并且还有大量的软件开发厂商实际上已经具备了很强的报表能力,不过这些报表能力并没有单独拿出来作为报表产品在市面上运营而已。

数据分析 - 派可数据商业智能BI可视化分析平台

逐步的,随着前端技术、前端框架的完善,从传统表格技术开始到了各类柱状图、条形图、饼状图的可视化展示,到了这个阶段,报表和商业智能BI的边界越来越模糊。为什么?商业智能BI的报表展现能力也就和传统报表效果大致相当,还没有出现那种自助分析、自助拖拉拽就可以实现快速多维分析的能力。

讲这么多主要想说的是我们所看到的很多商业智能BI项目都是拿报表思维去实现的,就是 SQL 到数据集到前端展现。而真正的商业智能BI思维应该是什么呢? 多维思维、模型思维,这一点决定了一个 商业智能BI 项目的最终走向,后面会具体讲到这些点。

三、商业智能BI 和数据仓库 Data Warehouse 有什么区别和联系?

经常会碰到有人问商业智能BI和数据仓库有什么区别,实际上这个问题的背后能反映出来一些朋友对商业智能BI的理解还是有些不准确和偏差,这个问题实际上从概念上把BI和数据仓库人为的割裂了。这种情况其实也比较正常,因为大家对商业智能BI的第一印象就是各种炫酷的可视化图表、报表,再加上市面上有很多轻量的前端可视化商业智能BI分析工具,就造成大家对BI的认知就停留在可视化这部分了。

准确的来说,商业智能BI不仅仅包含前端可视化分析、报表展现的能力,更包含了底层数据仓库的建设过程。Gartner 在上世纪九十年代就已经提到了商业智能 Business Intelligence,它更多的认为:BI是一种数据类的技术解决方案,将许多来自不同企业业务系统的数据提取有分析价值的数据进行清洗、转换和加载,就是抽取Extraction、转换 Transformation、加载Loading 的ETL过程,最终合并到一个数据仓库中,按照一定的建模方式例如Inmon 的3NF 建模、Kimball 的维度建模或者两者都有的混合式架构模型,最终在这个基础上再利用合适的分析展现工具来形成各种可视化的分析报表为企业的管理决策层提供数据决策支撑。

商业智能BI - 派可数据商业智能BI可视化分析平台

所以,可以从这里能够看到数据仓库Data Warehouse 的位置是介于可视化报表和底层业务系统数据源之间的这一层,在整个商业智能BI项目解决方案中起到的是一个承上启下的作用。如果把商业智能BI比作是一个人的话,上半身特别是脸这个部分就是颜值,下半身脚踏实地吸取大地的精华,中间这部分的腰腹核心、核心力量就是数据仓库。

那大家也会问到,市面上不是有很多直接链接数据源就可以拖拉拽分析的商业智能BI工具产品吗,不也一样可以做商业智能BI分析报表吗?这种独立的、单独的面向前端的商业智能BI分析工具,他们更多的定位是部门级和个人级的商业智能BI 分析工具,对于深层次的需要复杂数据处理、集成、建模等很多场景是无法解决的。最好的方式就是底层构建一套完整的数据仓库,把很多分析模型标准化,再利用这些前端商业智能BI分析工具结合起来,这样才能真正的把前端商业智能BI分析能力给释放出来。

很多企业认为只要买一个前端商业智能BI分析工具就可以解决企业级的商业智能BI所有问题,这个看法实际上也不可行的。可能在最开始分析场景相对简单,对接数据的复杂度不是很高的情况下这类商业智能BI分析工具没有问题。但是在企业的商业智能BI项目建设有一个特点,是一个螺旋式上升的建设过程。因为对接的业务系统可能会越来越多,分析的深度和广度会越来越多,数据的复杂度也会越来越有挑战性,这个时候没有一个很好的数据仓库架构支撑,光靠前端BI分析工具基本上是无法搞定的。

             数据仓库 - 派可数据商业智能BI可视化分析平台

就像去中药店抓药一样,之所以抓药很快,是因为在抓药前,别人已经把各种原生的中药材(原始数据源的数据)分门别类清理干净放好了,这样想怎么搭配药材(维度指标组合的可视化)就很快了。

这样的企业在国内有很多,也是因为对商业智能BI理解的深度不够导致了在商业智能BI项目建设上一些方向性的错误,最后s导致商业智能BI项目很难继续推进。

所以在企业中,我们需要明确我们的商业智能BI建设是面向企业级的还是个人和部门的分析工作。如果是个人数据分析师,使用这类前端商业智能BI分析工具就足够了。如果是需要构建一个企业级的商业智能BI项目,就不能只关注前端可视化分析能力这个层面,更应该关注到底层数据架构的构建,也就是数据仓库这个层面。

四、数据仓库的建模方法论 Kimball vs Inmon 以及混合架构

数据仓库建模时商业智能BI项目建设中的重中之重,Inmon 的三范式 3NF 建模和 Kimball 的维度建模都是 商业智能BI 数据仓库建模的方法论,这两种商业智能BI建模的方式有什么区别和联系。

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

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

相关文章

记录gitlab和jenkins集成的过程

gitlab设置外发请求 首先在前面的几篇文章中,我们的gitlab和jenkins都安装好了,在这里我们就可以对gitlab 和jenkins进行集成操作处理。 首先设置gitlab的外发请求,如图所示: 先点击管理员,进入到管理中心后 先点击设置,然后点击…

劲霸男装:400+门店的销售佣金管理,如何实现一键发薪

陪伴一代人记忆的劲霸男装(下文简称「劲霸」),很多人应该都不陌生。 他们的门店遍布全国的大型商场及街边店铺,自1980起,发展已40余年,现拥有形象统一、规范管理的品牌专卖店2000多家。他们门店多&#xff…

传输层协议——UDP协议

❣️关注专栏:JavaEE 传输层虽然是操纵系统内核已经实现好了的,但是我们程序猿写代码要调用系统提供的 socket API 完成网络编程,其中 socket 就属于传输层部分。 🌱 UDP协议 🌱 1 UDP协议端格式 上图就是UDP协议报…

Java面向对象特征之三:多态

一:面向对象三大特征之三:多态 1.多态是什么? 同类型的对象,执行同一个行为,会表现出不同的行为特征。 比如:猫和狗都是动物类型,执行同一个行为,但是会表现出不同的行为特征&…

flink sql 源码走读 --- 解释flink jdbc where 条件为什么没有下推数据库

本文通过一个具体案例,说明 flink sql 如何实现 connector 加载、source/sink 端操作、数据库连接等。可以帮助大家了解其原理,并在代码中找到落库执行SQL生成逻辑,得到where条件并没有下推到库执行的结论。 案例如下: create t…

Zookeeper集群和Hadoop集群安装(保姆级教程)

1. HA HA(Heigh Available)高可用 解决单点故障,保证企业服务 7*24 小时不宕机单点故障:某个节点宕机导致整个集群的宕机 Hadoop 的 HA NameNode 存在单点故障的可能,需要配置 HA 解决引入第二个 NameNode 作为备份同…

C语言学习(三)

#include <stdio.h> int main(void){int a; scanf("%d",&a); printf("%d",a); return 0&#xff1b;} 正在上传…重新上传取消正在上传…重新上传取消&符号作用是把键盘中输入的值给变量a,使用scanf()时输入数值&#xff0c;需要按一下enter…

MySQL知识点全面总结2:Mysql语句的执行(DDL DML 完整性约束)

二.MySQL知识点全面总结2&#xff1a;mysql语句的执行&#xff08;DDL DML 完整性约束&#xff09; 1.对数据库的操作&#xff08;DDL&#xff09; 2.对数据表的操作&#xff08;DDL&#xff09; 3.对数据表字段的操作&#xff08;DDL&#xff09; 4.对数据表内容的增删改&…

Science Direct 高级检索、使用技巧、寻找目标期刊、E lsevi er 投稿指南

ScienceDirect使用教程&E ls evier投稿指南1. 高级检索功能1.1 布尔值运算符和短语搜索&#xff08;构建检索式&#xff09;1.2 搜索特殊字符和公式1.3 非搜索用词2. 如何使用搜索结果页面&#xff1f;3. 下载多个文档3.1 从搜索结果列表中下载多个文档3. 利用 JournalFind…

java高性能并发计数器之巅峰对决

并发计数器各个方案介绍方案概述1. jdk5提供的原子更新长整型类 AtomicLong2. synchronized3. jdk8提供的 LongAdder 【单机推荐】4. Redisson分布式累加器【分布式推荐】方案介绍jdk5提供的原子更新长整型类 AtomicLong在JDK1.5开始就新增了并发的Integer/Long的操作工具类Ato…

VS2022+qt5.14.2配置qcustomplot2.1.16(坑很多)

目录1. 前言2. 下载QCustomPlot的源码3. 将QCustomPlot添加到QT项目&#xff08;一些遇到的问题&#xff09;1. 前言 QCustomPlot 是一个超强超小巧的qt绘图类&#xff0c;非常漂亮&#xff0c;非常易用&#xff0c;只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用…

Android 基础知识4-3.7 ProgressBar(进度条)详解

一、简介 ProgressBar&#xff08;进度条&#xff09;是UI界面中一种非常实用的组件&#xff0c;通常用于向用户像是某个耗时操作完成的百分比。进度条可动态地显示进度&#xff0c;因此避免长时间地执行某个操作时&#xff0c;让用户感觉程序失去了响应&#xff0c;从而更好地…

常用反弹 shell 方式总结

在对 Linux 系统进行渗透测试中&#xff0c;常常会用到反弹 shell 的操作&#xff0c;今天来总结一下常用反弹 shell 的方式。 什么是反弹shell&#xff1a; 反弹shell&#xff0c;就是攻击机监听在某个TCP/UDP端口为服务端&#xff0c;目标机主动发起请求到攻击机监听的端口…

Spark 配置项

Spark 配置项硬件资源类CPU内存堆外内User Memory/Spark 可用内存Execution/Storage Memory磁盘ShuffleSpark SQLJoin 策略调整自动分区合并自动倾斜处理配置项分为 3 类: 硬件资源类 : 与 CPU、内存、磁盘有关的配置项Shuffle 类 : Shuffle 计算过程的配置项Spark SQL : Spar…

MySQL 中的 distinct 和 group by 的性能比较

1 先说大致的结论&#xff08;完整结论在文末&#xff09;在语义相同&#xff0c;有索引的情况下&#xff1a;group by和 distinct 都能使用索引&#xff0c;效率相同。在语义相同&#xff0c;无索引的情况下&#xff1a;distinct 效率高于group by。原因是 distinct 和 group …

【软件开发】基于PyQt5开发的标注软件

这里是基于PyQt5写的面向目标检测的各类标注PC端软件系统。目前现有的labelme软件和labelImg开源软件无法满足特殊数据集的标注要求&#xff0c;而且没有标注顺序的报错提示。当然我设计的软件就会不具有适用性了&#xff08;毕竟从下面开发的软件可以明显看出来我做的基本上是…

spark-submit报错

spark-submit --class ${main_class} \ --master yarn \ --deploy-mode client \ --driver-memory 8g \ --executor-memory 6g \ --num-executors 1 \ --executor-cores 34 \ ${HOME_PATH}/obs_finance-1.0-SNAPSHOT-jar-with-dependencies.jar ${year_month} 注意这个34超过…

【教学典型案例】28.单表的11个Update接口--MyBatis

目录一&#xff1a;背景介绍二&#xff1a;前期准备引入pom依赖MyBatis配置文件数据库连接文件MyBatis配置类三&#xff1a;代码编写Mapper编写接口通用mapper实体pojojunit测试编写测试结果四&#xff1a;总结一&#xff1a;背景介绍 在进行项目开发编写更新接口时&#xff0…

顶级动漫IP加持之下,3A策略游戏Mechaverse如何改变GameFi

2021年是元宇宙发展的元年&#xff0c;元宇宙与GameFi创造了一波又一波市场热点。在经历第一波热潮之后&#xff0c;元宇宙的到来让不少人看到了加密市场的潜力&#xff0c;同时大家也意识到这将是未来的重要方向。如何将元宇宙推向更广阔的市场&#xff0c;让更多人能够轻松进…

项目管理工具DHTMLX Gantt灯箱元素配置教程:显示任务内容

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求&#xff0c;具备完善的甘特图图表库&#xff0c;功能强大&#xff0c;价格便宜&#xff0c;提供丰富而灵活的JavaScript API接口&#xff0c;与各种服务器端技术&am…