各位做bi分析的时候,如何处理业务库和bi库的关系?

想请教下大家,我们有好几个业务都需要做分析,有些简单的可能就几张表,写一个或者多个select就能出结果。有些很复杂,需要在原业务系统做多张表的关联查询,甚至是要做到跨系统、跨库的查询。

有几个问题我们一直没想的很明白到底怎么做才更合理。

第一个,直接在源库上select,并且将结果写入到专门为bi工具配置的数据库中,bi在做分析的时候直接取本地库的结果,这样合理吗?

技术上肯定是可行的,但是缺点就是要写多个etl或者发布多个api接口,遇到数据结构变化就非常复杂。

第二个,也可以让bi工具(而不是etl或者api工具)直接去读生产库,这样就算做跨表关联也非常简单,但是这时候就牵涉到对业务系统的入侵,业务系统不一定肯这么干。

那么大家建议用啥方式呢?或者是两种方式来混合?

FineReport FineBI SQL 用户sxFKz3838503 发布于 2022-9-26 13:19
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
2
weibwLv7高级互助
发布于2022-9-26 13:38(编辑于 2022-9-26 13:40)

按照正常的业务设计来讲,你BI分析系统是不应该直接去连接业务系统的数据库的。因为BI查询是非常好资源的,极有可能影响到业务系统的使用。

正常来说都是按照你的第一种方案来设计的。

1、首先部署一个数仓数据库。

2、将业务系统按照业务频次将数据抽取到数仓中。这一步叫贴源层数据抽取。

3、将贴源层数据初步清洗过滤掉无效数据并进行轻度聚合汇总等,然后存储到数仓中。这一步叫中间层数据处理

4、将多个表多维度汇总,这一步也是中间层。

5、将中间层数据按照BI数据分析需要的结构处理成最终的事实层,这时候就可以直接在FR里select单表进行查询了

当然,按照这样的顺序也是有缺点的,最重要的缺点就是数据实时性不高,但其实大部分报表分析需求的实时性也没要求那么高。

如果真的有必要实时读取数据,一般也不会直接读取业务系统的数据库,而是新建一个数据库去订阅业务系统,你的BI链接的是订阅数据库,这样就不会影响业务系统正常运行

最佳回答
0
陌落丿Lv3初级互助
发布于2022-9-26 13:35(编辑于 2022-9-26 13:42)

标准数仓生产流程是这样的:业务生产库-业务从库-ETL-BI库-分析

走这样流程,数据从业务从库读取并加工放入BI库(ETL过程),然后使用BI库的结果数据进行分析

或者更简单一点(数据量不是特别大的情况下)

业务生产库1-从库

业务生产库2-从库

。。。

即是把多个业务生产库(多系统多库),通过binlog的形式把数据同步到一个服务器(或集群)上(单IP多库)

然后用帆软访问单IP的多库就行,因为是在一个ip上,可以直接实现跨库查询

其实你主要的纠结点就是不让直接访问业务生产库,所以需要创建业务从库(主从关系),查询从库就行,查询从库不会对生产库造成任何影响,就算从库挂了,也不会影响生产库,而且是独立于业务系统之外的部分

最佳回答
0
用户k6280494Lv6资深互助
发布于2022-9-26 13:39

业务库-ETL(指标)-BI库

最佳回答
0
yalinLv6中级互助
发布于2022-9-26 14:08

这个问题帆软已经考虑到了,并做了相应的产品,找客户经理要个测试版试试看

FineDatalink产品介绍

https://help.fanruan.com/finedatalink/doc-view-2.html

  • 5关注人数
  • 520浏览人数
  • 最后回答于:2022-9-26 14:08
    请选择关闭问题的原因
    确定 取消
    返回顶部