【关联分析实战篇】为什么 BI 软件都搞不定关联分析

article/2025/9/18 7:10:39

文章目录

    • 做不好关联分析的原因
    • 在数据模型层面解决关联
    • 给业务人员看的懂的数据结构
      • 多级关联表
      • 自关联表
      • 互关联表
      • 重复关联表
    • 结语
    • 润乾报表资料

事物都是普遍联系的,很难有一个独立的事物不和其它发生关联,数据表也一样,很多有业务意义的查询都会涉及多个数据表的关联

数据分析以及 BI 类软件通常会提供自助查询功能,有些软件还能支持关联查询,但实际使用的大多数还是单表的,也就是我们常说的宽表,而提供的自助关联查询功能则很少被业务人员使用,这是几乎所有 BI 类软件的软肋,无论大牌小众,一试一个准
这里有个测试报告看看:国内主流 BI 产品关联分析能力对比
http://c.raqsoft.com.cn/article/1607568142855

为什么明明BI软件提供了关联查询,业务人员却不用呢,因为不会用,简单的关联,BI能对付,复杂一些的,BI软件表现出来的连自己的工程师都看着晕,让用户自己去做关联就更不可能了,于是只能做一个宽表给用户用

宽表的局限性其实很明显,数据冗余,维护麻烦这些就不说了,单单是:只能基于宽表现有的关联做分析,用户分析需求超出范围,或者有变化,就得技术人员修改或者重新做宽表这一条,就足够把用户和BI厂商都压垮了,用户不自由,啥也得厂商帮忙,今天想做的分析,可能得一周以后才能做;厂商更不乐意,每一次修改和重做,都是人工成本,可是自己产品提供的自助关联又不好用,也只能任用户摆布了

做不好关联分析的原因

那么,BI软件提供的自助关联哪里不好用呢?答案是简单的还勉强可以,复杂的都搞不了

简单的每个表之间只关联一次的情况,业务人员可能还能理解,可以用,比如

我们要查询:北京号码的拨打记录

这时候只需要通话记录表和电话账户表关联一次就可以,从通话记录表中查询账户表中注册地是北京的号码的所有拨打记录

imagepng

但实际分析中,要查询的情况远比这个要复杂,有很多重复关联、相互关联、自关联的,这些情况,就算是技术人员也得花挺长时间才能捋顺,更别说业务人员了,我们来继续看

重复关联

我们要查询:北京号码打给上海号码的通话记录

这就需要把通话记录表和电话帐户表做两次关联,分别使用通话记录表的主叫号码和被叫号码关联,才能分别取出主叫号码注册地和被叫号码注册地。首先要把同一个电话帐户表关联两次,这就有相当一部分软件根本不支持了;其次,还要分别取出两次注册地字段,要分清楚是用主叫号码关联出来的还是用被叫号码关联出来的,这就要给电话帐户表起不同的别名来区分(SQL 就是这么干的),这个概念又会让非专业人员感觉很糊涂

我们这个例子实际上已经简化了,通常电话帐户表中并不会直接存储北京、上海这种级别的地点,而是会用一个地点编号去和地区表关联,从地区表中才能再取出这个地点编号对应的地点所在的省级区域(甚至可能再分几级)。那么上述关联过程中,这个地区表也会跟随着被关联两次,也要起别名才能区分。如果地区再分级了(这其实是常有的事),被跟随关联两次的表就更多,关联表稍多时,连技术人员都要小心仔细才能搞得清,业务人员基本上就没可能理清楚了

imagepng

相互关联

我们要查询:女经理手下的男员工

人事系统里员工表,还有部门表。员工表中有所属部门的字段与部门表关联,部门会有经理,而经理也是个员工,部门表中的经理字段会再和员工表关联。这就发生互相关联的情况,转圈了

imagepng

要查女经理手下的男员工,自己想想 SQL 会写成啥样吧。员工表关联到部门表获取部门经理,然后再转回来再和员工表关联获取经理的性别,员工表出现两次,又要起别名,这样才能区分出从员工表中取出来的性别字段是待查员工的还是其经理的

这样的关联,不仅业务人员搞不了,就连很多BI软件本身都做不好这样的查询,工具都不支持,让业务人员怎么做?

自关联

互相关联到极端情况,还会变成自我关联了

比如前面说过地区可能分级,而分级的地区表很可能并不会做成多个表,而是只有一个表,用一个字段表示其上级地区(编号),这是很常见的数据结构设计,但这也意味着地区表会和自己关联。从最低层的营业所(或基站)走到省级区域,可能会有三五级之多,这个表也就要被重复关联三五次,起上三五个别名才分得清,你说业务人员晕不晕?

imagepng

造成这些难题的根本原因是,SQL 对于 JOIN 的定义过于简单了,用来描述复杂的关联场景时,就会很难理解,容易犯晕,就像用加法来描述乘法一样,而直接原因是BI厂商们也并没有在数据模型层面针对这个难题进行优化封装,只是简单的把表对业务人员做了可视,把难题丢给了没有技术能力的业务人员,结果可想而知,难题更难了

在数据模型层面解决关联

仔细看过前面那个测试报告就会发现,润乾报表的DQL引擎,可以很好的解决这个难题

由技术人员先定义好各种关联关系的DQL元数据,这个元数据,不同于宽表

它预先定义好了各种关联关系,但并没有做实际关联,当用户在前端拖拽分析的时候,才实时生成关联查询,不需要像宽表一样预先关联,占用数据库资源

它的关联关系只要数据表本身结构不变,就不用修改元数据,不需要像宽表一样总得重新生成

imagepng

DQL 换个思路看待表间关联,允许把外键表的字段当成字段的属性使用,支持无限层级,这样就很好地解决了关联问题。页面端也很好表达,按层展开即可,有多少层都没关系
imagepng

imagepng

想更详细了解DQL是怎么解决关联难题的,可以参看:

自助关联分析方案
http://c.raqsoft.com.cn/article/1593573102697

给业务人员看的懂的数据结构

在后端设置好元数据,经过润乾DQL引擎的解析,业务人员看到的就是能清晰理解的树状目录数据了

多级关联表

逐层展开后看到多级关联表,可以随意选用各级字段:

imagepng

自关联表

订单表的发货城市关联到区域表,之后用父区域可以一直展开,第一次展开父区域是发货省份,再继续展开父区域是发货地区:

imagepng

互关联表

员工表里的部门字段展开到部门表,部门表中的部门经理字段又展开回到员工表,这个第三层的员工表,代表的是部门经理这种特殊员工:

imagepng

重复关联表

订单表里的发货城市、收货城市都关联到区域表,能分别展开,自然的也就分别代表收、发货的相关信息:

imagepng

可以看出,我们前面列举的难题,到这里都轻松化解了,业务人员再也不必去理解复杂的表间关系了,看着前台一目了然的数据,直接拖拽分析,后端引擎就做好关联查询了

DQL还支持同维关联、主子关联、多字段关联等更多关联需求,还能够自动选用汇总数据以及支持跨数据库的多维分析

结语

大部分的BI多维分析,可能一张宽表、一个cube就搞定了,但是占少部分的复杂关联分析,才是更考验一个产品是否强大的地方,用一个能解决关联分析的BI工具,不仅可以节省自己的技术人员成本投入,更可以让用户使用体验更好

还要说一句,润乾的DQL是可以免费用的哈,参考:

润乾开源免费 BI 商业规则
http://c.raqsoft.com.cn/article/1634544783731

润乾报表资料

  • 润乾报表官网 http://www.raqsoft.com.cn
  • 润乾报表下载 http://www.raqsoft.com.cn/download/download-jsbb

欢迎对润乾报表有兴趣的小助手(RUNQIAN_RAQSOFT)


http://chatgpt.dhexx.cn/article/cJA7MZDn.shtml

相关文章

因果分析与关联分析的联系

因果分析中的关联分析 因果分析的发现在大数据背景下变得越发重要,在数据分析领域,人们开始尝试着利用人工智能对数据进行因果分析,但一个因果关系的得出是错综复杂的,不单单是通过机器就能够解决的。 在数据分析中,…

灰色关联分析步骤

什么是灰色关联分析 灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧密,它反映了曲线间的关联程度。 通常可以运用此方法来分析各个因素对于结…

四.数据关联性分析

数据关联分析用于挖掘数据对象之间的关系,例如啤酒和尿布的案例 一.基本概念 通过实例认识项集,支持度,频繁项集,关联规则,置信度,强关联规则,支持度,置信度 运动器的历史购买数据 TID网球拍网球运动鞋羽毛球111102110031000410105011161100 TID: 表示每一次购物单的序号0…

关联分析(Association analysis)

关联分析(Association analysis) 简介 大量数据中隐藏的关系可以以‘关联规则’和‘频繁项集’的形式表示。rules:{Diapers}–>{Beer}说明两者之间有很强的关系,购买Diapers的消费者通常会购买Beer。 …

关联度分析法-灰色关联分析

目录 灰色关联分析介绍灰色关联分析的步骤实例 灰色关联分析介绍 对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的趋势具有一致性,即同步变化程度较高&#…

关联分析之Apriori学习笔记

关联分析(Association analysis) 简介 大量数据中隐藏的关系可以以‘关联规则’和‘频繁项集’的形式表示。rules:{Diapers}–>{Beer}说明两者之间有很强的关系,购买Diapers的消费者通常会购买Beer。 …

关联分析(一)

目录 一 关联分析的应用 二 关联分析定义 关联分析(又称关联挖掘) 常见关系分类 四 基本原理 ​编辑 五 常用算法 5.1 先验算法Apriori 5.2 FP-Growth算法 一 关联分析的应用 在美国国会投票记录中发现关联规则发现毒蘑菇的相似特征在Twitter源中发现一些共现词从网站…

数据分析五、Apriori 算法之关联分析

Apriori 算法 一、相关概念:二、Apriori 算法2.1、确定最小支持度和最小置信度2.2、找出频繁项集和强关联规则2.3、Python 调用 apriori 函数 Apriori---[əpriˈɔri] ---先天的,推测的一、相关概念: 关联分析,是一门分析技术&a…

数据的结构分类:结构化数据,半结构化数据以及非结构化数据

数据结构分类 结构化数据:具有域名与域值,可用二维表表示。例如关系数据库和CSV文档半结构数据:具有域值和域名,但每一笔数据的字段可能不一样。例如JSON以及XML非结构化数据:不具有域值和域名,例如文章&a…

结构化数据与非结构化数据有什么区别?

结构化数据和非结构化数据是大数据的两种类型,这两者之间并不存在真正的冲突。客户如何选择不是基于数据结构,而是基于使用它们的应用程序:关系数据库用于结构化数据,大多数其他类型的应用程序用于非结构化数据。 然而&#xff0…

结构化数据和非结构化数据有何区别?

员工离职,老板最关心的可能并不是工作交接是否滴水不漏,而是离职员工会如何处理他手里的数据。 例如设计人员的设计图纸、项目经理的项目文档等,这些文档属于企业珍贵的资产,而大部分企业却从未真正管控过这部分资产。 可以确定的…

什么是结构化数据、半结构化数据、非结构化数据

一、 结构化数据 结构化数据:即以关系型数据库表形式管理的数据,例如: idnameage1马百万262马龙台1 机构化数据的数据存储和排列都是具有规律性的,对于增删改查等功能支持友好 二、半结构化数据 半结构化数据:非关…

总结非结构化数据分析「十步走」

注:诚然,本文中所提到的内容并使非结构化数据结构化的唯一步骤,但该步骤的可行性,以及在创造可持续模式方面的表现已在实践中得到证实。 如今,数据分析逐渐在企业发展中扮演起愈加重要的角色,为求在业务成长…

【黑马】JavaWeb开发教程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)目录合集

​Java Web 传统路线: 课程讲述路线: 视频链接: 2023新版JavaWeb开发教程,实现javaweb企业开发全流程 学习时间: 断断续续,按照课程安排正常学习,历时15天,完结撒花!…

搭建JavaWeb开发环境(Eclipse版)

1. 在使用eclipse搭建JavaWeb开发环境时,首先要确保自己电脑已经安装过Java中的JDK,以及配置好了相关的环境变量。 2. 开始下载JavaEE软件:https://www.eclipse.org/downloads/packages/。在该网址中,选择镜像然后下载。&#xf…

搭建JavaWeb开发环境(JDK+Tomcat+Eclipse/Idea)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、 安装JDK二、配置环境变量 二、TomCat1. 获取 Tomcat2. Tomcat安装和环境变量的配置 三、eclipse配置 前言 提示:这里可以添加本文要记录的大概…

好文分享:Javaweb开发环境搭建常用工具类型

随着互联网的不断发展,无论是前端开发还是后端开发都越发垂直细分化,而今天我们就通过案例分析来了解一下,Javaweb开发环境搭建常用工具类型。 一:Web相关概念 Web程序也就是一般所说的网站,由服务器、客户端浏览器和…

JavaWeb开发相关版本对应关系

Eclipse与Java Eclipse版本与Java Eclipse版本代号Eclipse版本号Java版本Mars4.5JDK7Neon-Photon-2020.064.6-4.16JDK82020.09-2021.094.17-4.21JDK11 Eclipse/Installation - Eclipsepediahttps://wiki.eclipse.org/…

如何利用Java,Javaweb开发网站

需求分析 基于Javaweb整合三大组件(servletFilterlisten)设计并实现一个工作室网站开发, 对于工作室的日常宣传,企业形象,简单管理来说, 如何通过计算机技术对工作室进行管理非常重要, 通过编写一个在线的工作室网站源代码, 可以直接在网站上查看并了解…

javaweb开发环境搭建-mac版

一、安装jdk 1.检查:终端输入 java -version (mac自带jdk, 但版本较低,如果自带版本满足需求,请跳过23步) 2.安装或升级:官网下载 MAC OS版本的jdk安装 3.配置jdk环境变量:其实就是修改~/.bash_profile文件内容(此文件…