BI平台数据增量更新哪家强?

网友投稿 479 2018-01-09


点击上方 “观远数据” 订阅!



新的一年开始了,很激动有没有?

一元复始,万象更新,回望过去的一年…



停!去年的数据还没导入分析系统呢,怎么回望,怎么分析?但是谁家没个几年的历史数据,总不能把所有数据全部重新更新一遍吧?当然不用,你可以增量更新啊!今天,咱们就说道说道BI系统数据增量更新这个事儿。



之所以要强调数据的增量处理,是考虑到用户实际数据是在不断增长和变动的。对于个人用户来说,可能每次全量更新几万、几十万条数据,也还凑合;但对于企业,一旦数据增长到几千万、上亿条时,全量更新就变得很不现实。那么,全量更新究竟有哪些瓶颈?


  • 全量更新给企业业务系统数据库造成巨大压力,易触发SQL执行超时;

  • 全量更新数据量大、更新速度慢,长时间占用服务器带宽;

  • 全量数据中99%以上为数据集中已有的历史数据,重复传输,浪费资源;

  • 全量更新无法满足分析的实时性需求。


既然如此,数据集增量更新便是不二之选。那怎样的增量更新才是完美的设计呢?


我认为以下四点尤为重要:

1. 更新方式

2. 动态SQL

3. 定时更新

4. 多源融合


01

 更新方式


观远数据增量更新的方式主要有两种:覆盖旧数据和添加新数据。


覆盖旧数据:

一般适合固定时间窗口的数据分析。比如你的分析总是针对过去一年的数据,那么当最新一年的数据导入时,就可以用覆盖旧数据的方式,把历史数据丢掉。当然,有时候我们也会用覆盖旧数据的方式来初始化基础数据集。


添加新数据:

这是增量更新使用最频繁的方式。顾名思义,使用这种方式更新数据,系统会保留历史数据,然后添加新数据。这种情况下,必须给数据集设置一个或多个去重主键,这样数据更新的时候,遇到相同主键的数据,系统会把最新的数据更新进去(而不是简单地添加新行)。


当然市场上也有BI产品细分了更多的更新方式,比如某国际知名BI厂商还支持仅更新已有数据和非去重地添加新数据;国内某友商支持增量删除与增量修改(类似于某国际知名BI厂商的仅更新已有数据)。但从实际使用情况来看,还是增量添加(添加新数据)是最符合用户增量更新需求的方式。


在这个大数据的时代,存储是廉价的,数据就是资产,谁还会嫌自己的历史数据占了多少硬盘空间呢?所以,在小刚看来这些类似增量删除的更新方式实用性并不强。


02

 动态SQL


这是观远数据增量更新最大的亮点


增量更新的另一个重点是怎样获取增量数据。如果仅有更新是增量的,而获取数据却还是全量的,那还是功败垂成。

真实的业务数据往往带有时间标签,比如交易数据有交易时间、发货单数据有发货时间、仓储数据有入库时间等等。而更为合适的做法是除了业务操作本身的时间,还会有这条记录的最新更新时间。

增量更新往往是在增量的SQL中添加相关时间标签的条件语句,从而在SQL执行时来获取最新数据。例如:订单表(A表)进行增量更新,我们可以在增量SQL中添加”where A.update_time >= ‘2018-01-01’”这样的条件语句。

但是这样的话条件语句总是固定的,没法保证每次更新只更新最新数据。

国内某友商的解决办法是提供了“上次更新时间”与“当前更新时间”两个对比参数,通过两个时间点,将更新的数据圈定到从上次开始更新时到本次更新之间的新数据上,这样每次更新都会以上次的终点为起点进行更新,以保证数据的准确和完整。这话听着好像没什么问题,但如果BI系统与数据库的系统时间不完全一致,那还是会存在数据遗漏问题。


来吧,看看观远数据怎么做?


”where A.update_time >=‘{{{yesterday}}}’”


没错,睁大眼睛看清楚——

观远数据增量更新支持日期宏!


小刚我混迹BI圈多年,以前是从未看到BI产品中还可以这么玩的!什么today, yesterday, first day of last week, last day of last week, monday last week,想怎么玩就怎么玩,同时还支持任意天数的偏移和日期格式化。配合时间宏,数据更新机制就变得灵活多变了!就问你,这一波操作6不6?!


03

 定时更新

设置好了增量更新,接着就是要设置定时地执行SQL,更新数据集。这个功能基本上所有BI厂商都会考虑到。观远数据支持按每天、每周、每月地更新数据,当然您也可以通过手动的方式随时更新数据集。此外,对于直连数据库的数据集,观远数据还可以支持实时数据。


值得一提的是,观远数据的数据更新还打通了“数据—ETL—展示—交付”的完整路径。数据集数据更新后,可以自动触发并完成相关ETL的执行、卡片数据的更新,以及报表发送、预警检测等流程,做到真正的数据追人。


04

 多源融合

多源融合也是观远数据的一个特色。

多数据源融合我也见过:当年在某国际知名BI厂商工作时,有个东西叫MTDI(Multi-Table Data Import) Cube,可以包含多个数据表在一个Cube中,每个表可来自不同的数据源。但是同一个数据表包含来自不同数据源的数据,这我是闻所未闻的。然而,观远数据做到了!而且还可以多个数据源同时对一个数据集进行增量更新。我就问一句:虎不虎?

什么时候需要这样的操作?如果你的原始数据分布在不同的数据库中,但需要聚合在一起分析,那这种方式就最方便了(当然您也可以使用Smart ETL:超低门槛数据处理神器!)。

 


作为总结,以下是文中所提到的几款BI产品数据增量更新的对比:


那么最后问题来了:

您觉得BI平台数据增量更新哪家更强呢?


大声在评论里说出你的答案吧!


观远数据| 观点精选

可视化数据】观远可视化组件巡礼二:矩形树图

【数据处理系列】年底了,你的库存还好吗?

【行业新闻】2018年CIO将在哪些技术方面加大投入?

上一篇:年底了,你的库存还好吗?
下一篇:这个周末,让我们一起聚势新消费,创享新未来!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~


×