|商业智能BI直连业务数据库做报表的延迟风险

|商业智能BI直连业务数据库做报表的延迟风险

文章图片

|商业智能BI直连业务数据库做报表的延迟风险

文章图片


商业智能BI直连业务数据库做数据可视化分析、做报表到底行不行 , 从技术的角度没有问题 , 从架构的角度不可行 。 这种做法就像在沙漠上建房子一样 , 建一层平房可能没有问题 , 建几层楼房一定会出问题 。
什么是商业智能BI直连数据库大家一定要注意一下 , 我们通常讲到的商业智能BI直连数据库 , 不是指的直连原始业务系统的数据源数据库 , 而是数据仓库的数据库 。 在原始业务系统和商业智能BI前端数据可视化之间是有一层数据仓库来做隔离的 。

商业智能BI架构 - 派可数据商业智能BI可视化分析平台
我们有的企业一看商业智能BI工具可以直接连接到底层业务系统数据库数据表 , 就感觉这种方式很好 , 很便捷啊 , 直接可以读取表结构 , 然后简单的左关联、右关联 , 就可以快速的拖拉拽出报表 。 反而觉得商业智能BI和底层业务系统数据库中间弄个数据仓库很麻烦 , 又是建模、又是ETL , 又看不到底层原始表结构 , 还是没有直连业务系统数据源方便 。
这种理解是错误的 , 这种想通过商业智能BI和底层业务系统数据库直连避免掉ETL、SQL的想法也是完全错误的 , 一个典型的想走捷径的想法 。 到最后这种商业智能BI架构实现方式未来一定会有很大的风险 , 失败的可能性非常高 , 我们把它叫做延迟风险 。
什么是商业智能BI直连数据库延迟风险什么叫延迟风险 , 就是当前可能不会有太大的问题 , 延迟一段时间风险就会出现 。
为什么商业智能BI和底层业务系统数据库直连 , 这种做法会存在延迟风险呢 , 主要有以下几个方面的原因:
第一 , 企业底层的业务系统会在未来某一个时间节点会出现升级、迭代甚至替换的可能 。
第二 , 企业的业务会不断的发生变化和调整 , 带来的就是一些业务计算规则发生变化 , 业务规则的变化就会导致指标计算逻辑发生调整 。
上面这两个点都会引起原有报表SQL取数逻辑对底层数据库表的依赖关系发生变化 , 底层数据和结构改变了 , 就得动报表 , 商业智能BI就有可能出现问题 。因为公共业务逻辑的计算没有下沉到数据仓库 , 不具备复用性 。

可视化大屏 - 派可数据商业智能BI可视化分析平台
比如商业智能BI中一个指标在这个数据可视化页面有一套计算逻辑写了一遍 , 到了另外一个数据可视化页面使用到了同样的指标 , 这个指标可能又要写一边逻辑 。 当逻辑发生变化 , 就得一个一个数据可视化页面打开去修改 。 并且是大量的、反复的修改 。 为什么?这是因为在这种商业智能BI架构下 , 数据可视化页面和底层业务数据表的耦合程度太高太深了 。
正确的商业智能BI架构是什么 , 数据可视化页面应该绑定的是指标 , 而不是指标的计算逻辑 , 不是SQL计算逻辑 。 指标的SQL计算逻辑下沉到底层数据仓库 , 这样即使要做调整 , 也不是数据可视化页面做调整 , 而是底层数据仓库的取数逻辑做调整 。
第三 , 直连业务系统数据源 , 商业智能BI数据可视化页面大量的并发查询是直接访问到业务系统数据库 , 这种操作对业务系统IO资源消耗非常的高 。 查询多了会压垮业务系统 , 影响到业务系统的使用 。
第四 , 有些计算逻辑不是一个简单的SQL关联就能解决 , 可能会非常的复杂 , 这种直连的方式中间的逻辑计算就没有任何缓冲的可能 , 没有办法做逻辑优化 , 查询效率和性能会非常低 。

数据可视化 - 派可数据商业智能BI可视化分析平台
所以 , 商业智能BI直连业务系统数据源是让企业能够一眼看明白的架构方式 , 但同时它也是一种很不专业、非常糟糕的开发方式 。 我碰到过不少的企业最开始上商业智能BI , 因为对商业智能BI不了解不熟悉 , 就是这么去实现的 , 后面根本推不动 , 没有办法重新再开发一遍 , 投入更大 。
商业智能BI直连数据仓库数据库如果把商业智能BI直连业务数据源数据变成商业智能BI直连数据仓库数据库 , 有什么好处呢?
第一 , 底层业务系统怎么更换、迭代 , 数据仓库在中间做了隔离 , 尽可能不会影响到上层的报表 , 也就是商业智能BI , 只是往下更换了从新业务系统取数的ETL业务计算逻辑 , 整体模型架构还是稳健的 。