当前位置:网站首页>实时BI(四)低成本的数据准实时处理思路
实时BI(四)低成本的数据准实时处理思路
2022-07-17 04:11:00 【派可数据BI可视化】
今天分享的是实时BI系列话题的最后一篇文章,所以简单回顾一下前面的几次分享:第一篇文章讲解了BI对数据T+1同步机制的原因和过程;第二篇文章讲解了如果要实现实时或者准实时,对传统数据仓库分层的ETL架构要做出哪些调整;第三篇文章讲解了大数据架构下的T+1模式的批处理就是离线数据处理,也介绍到了不同的技术框架下实时数据处理的方式,以及如何理性的选择离线数据和实时数据技术处理方案。
数据准实时处理场景
今天这篇文章我就来分享下,在不使用大数据技术框架、也不使用流式数据、实时数据处理框架的情况下,企业就那么几个指标就想做成准实时的,比如10秒钟刷新一次交易数据、交易金额,如何实现?
数据可视化 - 派可数据商业智能BI可视化分析平台
理性一点的朋友就会说了,几秒钟看交易数据、交易金额有什么用啊,几秒钟能进来多少钱啊,根本就没有必要看。确实如此,我也认为没有必要。没有必要的原因可能是因为这个数据不会有太大的变化,如果变化大比如一秒钟增加十几万,十秒钟上百万的交易金额,这个是不是就很有点意思了?我们正好就有这样的客户,几秒钟时间大屏的数据刷一下,交易额就增加了几十万、有时上百万,一年五千个亿往上的交易金额,这个只是其中某一个渠道的交易金额。那这个数据就非常有意思了,很刺激,隔一会那个牌子就跳一下,再算下变了多少万了。
数据可视化 - 派可数据商业智能BI可视化分析平台
每次交易金额可能就几百块以内,所以每秒钟交易的笔数累计下来就非常的多,一年下来几十亿条交易数据很正常。如果直接用SQL去查询,有可能页面每10秒钟刷新一次,前一次这个指标的ETL里面的查询都没有执行完,数据还没有填充到数据仓库表,后面的查询就又来了。这种实现方式明显是有问题的,效率比较低。
数据准实时处理思路
那怎么来实现呢?就跟一层窗户纸一样,一捅就破,一讲大家就明白了。
多做几个ETL,第一个ETL每天晚上执行一次,计算从今年开始到今天累计的交易金额,这个值算出来单独存起来。哪怕是全量计算,也不怕,晚上执行,哪怕执行一个小时我也不怕,肯定能算的完。
数据仓库 - 派可数据商业智能BI可视化分析平台
第二个ETL每小时执行一次,计算从今天零点到现在当前小时的交易金额,到这个阶段数据查询的范围就变小了,又算一个值存储起来。
第三个ETL每分钟执行一次,计算从当前小时零分到现在这一分钟计算的值,存起来放着。
最后一个ETL每十秒钟执行一次,计算这一分钟里交易金额,又算出一个值更新到一个表里面。同时,这个更新的值和前面三个ETL算出来的值一加起来,不就是全年累计的实时交易金额吗?这个问题就解决掉了。
这个过程实际上就是利用时间日期戳和ETL做了增量抽取更新,以及增量计算,把整个数据表的聚合汇总砍成一节一节的,不同的ETL计算不同的时间段的数据,这样整体数据量会比较小。调度时间间隔大的ETL,执行的数据查询范围就越大。调度间隔小,执行的数据查询范围就越小。
数据可视化 - 派可数据商业智能BI可视化分析平台
这种方式大家可以在项目上试一试,是完全可以实现一些准实时效果的。当然,一个指标就用了四个不同的ETL调度。十个指标,理论上就需要四十个。当然按天或者按小时执行的指标视情况可以放到一个ETL调度里,减少一些维护工作量。但总体上来说指标越多,ETL的调度配置就会越多,后期维护成本自然也会比较高一些。
但无论如何,这种方式还是非常经济实惠的,有技术难度吗?并没有。就是靠ETL的调度设计来解决这个问题,这个就是经验。好经验当然要分享给大家,相信以后有机会能够用得到。
边栏推荐
- If by frame package name modifier
- The adaptation of go language under windows10:vscode
- Distributed notes (02) - redis of distributed cache (brief description of uses, features, high availability solutions redis cluster, tweetproxy, CODIS)
- WPF cannot find resource file problem
- 分布式笔记(02)— 分布式缓存之 Redis(用途、特点、高可用方案 Redis Cluster、Twemproxy、Codis 简要说明)
- Optimization and configuration of OSPF
- leetcode209. 长度最小的子数组
- 64. Minimum path sum: given an M x n grid containing non negative integers, please find a path from the upper left corner to the lower right corner, so that the sum of the numbers on the path is the m
- ASP. Net1==visual studio create asp net demo
- [Huang ah code] Introduction to MySQL - 5. Database tips: a single column group by will, and multiple columns?
猜你喜欢

2022/7/16 周赛
![[wechat applet] super easy to understand conditional rendering and list rendering](/img/02/c45ed1f4682a3436a6ef67003ca9d4.jpg)
[wechat applet] super easy to understand conditional rendering and list rendering
![[seventh issue of notebook series] download and use of openvino pre training model](/img/74/d5958137ddabadef1724afda5656e1.png)
[seventh issue of notebook series] download and use of openvino pre training model

Ftxui basic notes (botton button component Foundation)

Wechat e-book reading applet graduation design of applet completion works (2) applet function

Build a portrait matting server based on openvino model server

【微信小程序】超易懂的条件渲染和列表渲染

OSPF routing control, anti ring related knowledge

OSPF anti ring

Live broadcast of cloud intelligence face to face is waiting for you: computing power redefines productivity
随机推荐
Xdc 2022 Intel technology special session: Intel Software and hardware technology builds the cornerstone of cloud computing architecture
2022/7/16 周赛
V4l2 learning materials collection
Touchid and faceid~2
树状数组:[JXOI2017]加法 题解
JS modal box
MySQL中的删除:delete、drop、Truncate三者的区别
百度地图技术概述,及基本API与WebApi的应用开发
Eas (energy aware scheduling) green energy-saving scheduler
Wechat e-book reading of small program graduation project (4) opening report
Optimization and configuration of OSPF
Wechat e-book reading applet graduation project (8) graduation project thesis template
机器学习10:集成学习
微信附近的人小程序怎么开(开通附近小程序的方法)
Smart fan system based on STM32F103
PowerDesigner显示Comment注释
Structure gets the address of the main structure (struct) through member variables
OSPF基础优化
C# 字符串(string)常用方法
机器学习09:无监督学习