今天来讲下利用 ETL 架构设计和调整来实现 商业智能BI 某些指标的准实时处理和展现。比如一小时更新一次,或者几分钟,一分钟,甚至几秒,也是可以的。

商业智能BI数据仓库ETL架构

一般的 商业智能BI 数据仓库 ETL 架构是这么来设计的,分成四个 ETL 包、或者五个 ETL 包,每个包就是数据仓库的一个分层的 ETL 合集。

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

第一个包是 ODS 或者 Staging 层,里面包含了所有的从业务系统数据源抽取源表到 ODS 层的ETL 处理过程。

第二个包要优先处理所有的维度 Dimension Table。

第三个包就开始处理标准的事实层 Fact Tables。

第四个包处理Data Mart 数据集市层。

第五个包处理OLAP CUBE 等等。

这几个包是由严格的依赖关系顺序的,是串行的。也就是说第一个包没有处理完,第二个包是不能执行的;第二个包没有执行完,第三个包也是不会启动的。

我上面讲到的 商业智能BI 数据仓库 ETL架构是非常标准的分层架构设计,这五个包通常会放到比如Windows定时任务JOB里面去做定时调度,比如每天晚上执行一次。

商业智能BI数据仓库ETL架构问题

但这里面就有这么个问题,某些指标想做准实时就不能按照上面的商业智能BI数据仓库ETL架构来设计,就需要把这几个指标单独拎出来,把这几个指标的上下游依赖的ODS层、维度层、事实层的指标单独打包来处理,然后在JOB里面单独做定时调度。一个指标一个JOB,十个指标就是十个JOB。这样这些指标的执行就不依赖于原有的整体ETL架构,可以单独跑,这是第一个点。

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

第二个点就是,这个JOB定时执行的任务时间间隔要大于这个JOB的执行最长时间。比如这个JOB一般执行一分钟,那设置商业智能BI定时调度的时间间隔最好就是两分钟或以上。什么意思呢,这个指标整个流程还没有计算完,下个定时任务启动了,上次执行正好把数据写入完成了,这次任务就把数据给清空了,这样就乱套了。

所以,针对这个问题要额外进行一些商业智能BI数据仓库ETL日志框架的开发和改造,让每次ETL执行时去检查一下日志,上次没有执行完成这次就先不启动,等待上次执行完毕之后再启动就不会出现冲突了。

商业智能BI数据仓库ETL架构改造

这些我们之前在一些大型的项目上并行跑上百个包就是通过对商业智能BI数据仓库ETL框架的改造来完成数据指标的准实时实现,当然这个商业智能BI准实时要取决于指标自身的计算时间周期和过程。

所以,我们会大量的使用增量抽取,包括对商业智能BI中数据表索引、查询性能的优化。

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

以往是串行的从下往上执行每个包,一个包的调度等到之前的包的调度执行完毕再执行。现在相当于把需要做实时或者准实时的商业智能BI指标从原来的包中分离出来单独的来维护组成一个新的串行,这种商业智能BI数据仓库ETL架构的设计方式跟以往传统的数据仓库ETL架构就有很大的区别了。

我们现在在我们自己商业智能BI产品的ETL调度就是按指标为线性的方式来实现的,每个指标可以独立的进行抽取调度,并且全部都是配置化的。这种商业智能BI中ETL调度的方式也是为实时性数据仓库、实时性商业智能BI打下了基础。

那如果要实现完全的商业智能BI实时性分析,而不是基于个别指标的准实时分析,又大概是一个什么样的过程呢,下次分享。

实时商业智能BI(二):合理的ETL架构设计实现准实时商业智能BI相关推荐

  1. 架构思维成长系列教程(十二)- 云平台架构设计

    背景 云平台是个非常宽泛的领域,一般分成:IaaS 基础设施即服务.PaaS 平台即服务.SaaS 软件即服务,本文侧重介绍企业私有云平台架构. 内容 云平台技术架构 云平台技术架构 如图所示,这是一 ...

  2. 电子商城后台系统(二):系统架构设计及系统介绍

    在写一个程序之前,需要在大脑中对整个系统有一个初步的规划,对于系统的功能模块,通常来说需要划分成三大块:框架部分.核心业务部分.扩展业务部分. 框架部分,通常是用来放通用的工具类方法,还有通用的处理数 ...

  3. mysql性能结构优化原理_MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化...

    一.数据库结构优化(非常重要) 1.1 数据库结构优化目的 1.减少数据冗余:(数据冗余是指在数据库中存在相同的数据,或者某些数据可以由其他数据计算得到),注意,尽量减少不代表完全避免数据冗余: 2. ...

  4. ef mysql 优化_MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化...

    一.数据库结构优化(非常重要) 1.1 数据库结构优化目的 1.减少数据冗余:(数据冗余是指在数据库中存在相同的数据,或者某些数据可以由其他数据计算得到),注意,尽量减少不代表完全避免数据冗余: 2. ...

  5. MySQL性能管理及架构设计(二):数据库结构优化、高可用架构设计、数据库索引优化...

    一.数据库结构优化(非常重要) 1.1 数据库结构优化目的 1.减少数据冗余:(数据冗余是指在数据库中存在相同的数据,或者某些数据可以由其他数据计算得到),注意,尽量减少不代表完全避免数据冗余: 2. ...

  6. 物联网平台开发核心技术揭秘-架构设计篇

    <高并发系统实战派>一书, 力推! 引言 上一篇物联网平台开发实战-初探 从宏观层面了解了物联网平台相关内容.随着物联网的快速发展和普及,越来越多的企业和机构开始构建自己的物联网平台.物联 ...

  7. HDFS详解(架构设计、副本放置策略、读写流程、进程、常用命令等)

    前言:当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区(Partition)并存储到若干台单独的计算机上.管理网络中跨多台计算机存储的文件系统成为分布式文件系统(distrib ...

  8. RocketMQ的架构设计详解

    本文来说下RocketMQ的架构设计 文章目录 RocketMQ的简介 RocketMQ的架构设计 RocketMQ的核心组件 RocketMQ的消息领域模型 RocketMQ的关键特性 消息的顺序 ...

  9. Visual C++黑白棋游戏项目开发一:需求分析、系统架构设计(附源码和资源 可用于大作业)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 一.黑白棋需求分析 黑白棋,游戏通过相互反转对方的棋子,最后以棋盘上谁的棋子多来判断胜负,其游戏规则比较简单,因此很容易学会,但是变化却又非常复杂, ...

最新文章

  1. Java and Python: a perfect couple - Developer.com
  2. 标注图+部分举例聊聊Vue生命周期
  3. mysql启多_MySQL启多个实例
  4. n条直线相交最多有几个邻补角_【初中数学】102条做初中几何辅导线的规律
  5. GitHub 推出原生 iOS 和 Android 客户端
  6. bind9局域网其他用户不能解析_linux dns server bind9 内网域名解析
  7. django2.0实现数据详情页展示的流程
  8. 华三服务器管理口地址_各种服务器、存储默认管理IP地址以及用户名密码
  9. C#的DataTable详解
  10. 字符编码那些事--彻底理解掌握编码知识
  11. MySQL分库分表后聚合查询_MySQL订单分库分表多维度查询
  12. 花了两天时间用html+css+js做了一个网页版坦克大战游戏
  13. python 银行数据_Kmeans 银行数据聚类分析
  14. 水星怎么设置网速最快_水星路由器怎么限制别人网速_水星怎么限制wifi网速?-192路由网...
  15. VRChat_SDK3_Avatar
  16. Java实现Apriori算法
  17. 使用element-ui实现表格分页
  18. 高级数据操作--联合查询
  19. xv6 - lab0 - 课程介绍
  20. 真香啊,Python 资深开发者用的贼溜的9个实用技巧

热门文章

  1. macbook 安装win7
  2. Apple 等六大生态系统的崛起
  3. 详述查看 MySQL 数据文件存储位置的方法
  4. 为什么要给代码添加注释?
  5. 怎样快速的将WPS文件转换为word格式
  6. 在工业生产安全管理中,人员定位系统能做什么?
  7. 微信公众号开发--js关闭浏览器回到公众号对话窗口
  8. 从目标检测数据集中扣出所需类别进行分类
  9. python pymysql mysql保存表情符
  10. Touch ID回归,为用户对苹果最期待功能