当前位置: 首页 > news >正文

BI是报表?BI是可视化?BI到底是什么?

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

一、首先简要纠正一下对于BI这些问题的理解

1 BI 就是报表可视化,就是一堆可视化图表,BI 就是前端可视化。

商业智能BI是一套完整的有数据仓库、数据分析、数据报表等组成的数据技术类的解决方案,在一个 BI 项目中,20% 的时间做前端分析报表,80% 的时间都在底层数据仓库的设计、ETL 的开发、取数开发等工作。

所以可视化报表只是商业智能 BI 的最终呈现,但不是 商业智能BI 的全部。

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

2 BI 就是一个拖拉拽的分析工具产品。

拖拉拽的可视化分析工具准确来讲只能解决 商业智能BI 的一部分,即可视化分析。但其实 商业智能BI 所包括的技术范围还是比较广的,涉及到从底层数据取数到前端展现分析的各个方面。

单纯拖拉拽的商业智能BI可视化分析工具严格来讲只能定位于个人和部门级,和企业级的商业智能BI 有很大的不同,所以单纯的上一个商业智能BI分析工具发挥不了商业智能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 上应该还能找到很多原始的报表标签帖子。

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

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

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

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

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

讲这么多主要想说的是我们所看到的很多商业智能BI项目都是拿报表思维去实现的,就是 SQL 到数据集到前端展现。而真正的商业智能BI思维应该是什么呢? 多维思维、模型思维,这一点决定了一个 商业智能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是报表?BI是可视化?BI到底是什么?

很多企业认为只要买一个前端商业智能BI分析工具就可以解决企业级的商业智能BI所有问题,这个看法实际上也不可行的。可能在最开始分析场景相对简单,对接数据的复杂度不是很高的情况下这类商业智能BI分析工具没有问题。但是在企业的商业智能BI项目建设有一…...

Python基础-数据类型之元组

一、元组的定义 nums (1, 2, 3, 4, 5) 元组是序列的其中一种,每个元素都以逗号分隔,用()包围。 当元组中只有一个元素时,需要在元素后面加逗号分隔,nums (1,),否则括号会被当成运算符 nums (1) print(type(nums…...

大数据面试小抄

项目地址:https://github.com/GTyingzi/BigDATA 该项目是自己在学习大数据过程中整理、总结下来的一份面试小抄。涵盖Hadoop、Spark、Flink、Hive、HBae、Kafka、ES、Zookeeper等。 开源给大家,若感觉不错欢迎star~ 摘取Flink部分如下文章目录FlinkFli…...

Vue:(三十一)Vue封装的过度与动画

上一篇订阅与发布不够过瘾,接着再来一篇,come on!!!作用:在插入、更新或移除DOM元素时,在合适的时候给元素添加样式类名写法:过度:元素进入的样式:v-enter&am…...

文本处理:字符串替换

方法1:str.replace str.replace(old, new[, count]) Return a copy of the string with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced. 该方法逻辑大致如下所示&am…...

python 调用 dll 出现精度问题

问题:python 在调用dll 的时候出现了精度问题 总结:使用decimal库进行转换就可以正常传递。 ‘ 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 心急的朋友可以略过下文了。 ’ 遇到的问题具体情况 dll 生成函数…...

STL讲解——模拟实现string

STL讲解——模拟实现string 经典的string类问题 大厂在面试中,面试官总喜欢让学生自己来模拟实现string类,最主要是实现string类的增、删、查、改、构造、拷贝构造、赋值运算符重载以及析构函数。大家看下自己可不可以写一个string类? cla…...

CDH 6.3.2 升级Hive 2.3.9

升级背景 DolphinScheduler 3.1.1安装好后,其源码中集成的是Hive 2.1.1,版本太低,当在数据中心连接Hive数据源时报错,所以升级CDH自带的Hive为2.3.9版本。 一、准备工作 1、下载hive2.3.9并解压 下载地址:http://a…...

距离不是拦截我们前进的主因,与社科院杜兰金融硕士一起奔赴山海

最近有咨询社科院杜兰金融管理硕士项目的同学反馈他在西安,读研来北京上课太远了。一直在纠结要不要申请,其实距离不是问题,相向而行才是关键。在项目就读的同学好多也是来自外地,他们克服了种种困难来到项目学习,就是…...

【SpringBoot】MyBatis-plus 报错 sqlSessionFactory sqlSessionTemplate 最新解决办法

本文针对 MyBatis-plus,对于 MyBatis 报相同的错误,可以看这个大佬的文章:SpringBoot3整合MyBatis报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required 针对报错如下: Property sqlSessionF…...

jsp诊疗预约系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp诊疗预约系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用jav…...

详解 APISIX Lua 动态调试插件 inspect

作者罗锦华,API7.ai 技术专家/技术工程师,开源项目 pgcat,lua-resty-ffi,lua-resty-inspect 的作者。 原文链接 为什么需要 Lua 动态调试插件? Apache APISIX 有很多 Lua 代码,如何在运行时不触碰源代码的…...

#科研筑基# python初学自用笔记 第五篇 函数

调用函数python有很多内置函数,我们可以直接调用,详见python官方文档:内置函数 — Python 3.11.2 文档,也可以在命令行中输入help(函数名)来查看该函数的使用法则。函数名的本质就是指向一个函数对象的引用,完全可以用…...

设计模式之策略模式

一.基本内容1 . 实例有各种鸭子(野鸭,北京鸭子,水鸭等,鸭子有各种行为,比如飞,叫等显示鸭子的信息传统方法解决:鸭子为抽象类,具体鸭子继承抽象类2.传统方法的不足:其他鸭…...

dbdeployer 使用札记

https://github.com/datacharmer/dbdeployer默认配置文件为当前用户的$HOME/.dbdeployer/config.json作为配置文件,可以通过dbdeplyoer defaults export导出并修改配置或者直接通过dbdeployer defaults update来更新默认文件,配置文件包含MySQL初始信息。…...

MATLAB算法实战应用案例精讲-【图像处理】数字图像模糊化(附Java、python和matlab代码实现)

目录 前言 几个相关概念 噪声 滤波器 算法原理 算法思想 噪...

搭建Hexo博客-第1章-Git和GitHub以及Coding的简单用法

搭建Hexo博客-第1章-Git和GitHub以及Coding的简单用法 搭建Hexo博客-第1章-Git和GitHub以及Coding的简单用法 Coding GitHub Hexo Markdown 搭建博客 大家好,这是我第一次写博客。使用 GitHub Hexo 创建最基本的博客很容易,网上有很多现成的教程。…...

【C++修行之路】C/C++内存管理

文章目录程序区域内存划分C语言动态内存分配:new和delete:new、delete和malloc、free的区别:程序区域内存划分 C/C程序内存区域划分非常相似。 C语言动态内存分配: malloc、calloc、realloc都是C语言动态开辟内存的常用函数 其中 malloc 开…...

spring cloud alibaba Sentinel(四)

服务雪崩 在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。 如果一个服务出现了问题,调用这个服务就会出现线程阻塞的情况, 此时若有大量的请求涌入,就会出现多条 线程阻塞等待,进而导致服务瘫痪。 由于服…...

Redis第三讲

目录 三、Redis03 3.1 Redis持久化之RDB 3.1.1 什么是RDB 3.1.2 备份是如何执行的 3.1.3 Fork 3.1.4 RDB持久化流程 3.1.5 dump.rdb文件 3.1.6 配置rdb文件生成位置 3.1.7 如何触发RDB快照以及保持策略 3.2 Redis持久化之AOF 3.2.1 什么是AOF 3.2.2 AOF持久化流程 …...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

dify打造数据可视化图表

一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

如何在网页里填写 PDF 表格?

有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据&#xff…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...