三招提速 OLAP 数据刷新

大数据 OLAP 技术实现了海量数据的在线交互式分析,但在海量数据场景下,当源数据发生变动时,OLAP 系统数据的全量刷新,往往需要很长的刷新时间,同时耗费大量计算资源。如何在给定的 ETL 时间窗口内尽快刷新 OLAP 系统的数据,保障业务能够查询分析最新数据?

Kyligence 通过多种 Cube 增量刷新策略,在保障高并发、高性能查询服务的同时,将数据的刷新时间缩短至分钟级。今天将为大家简要介绍一下 3 种数据增量刷新方式和 Cube 分区。

1  按时间/日期

Kyligence 支持按日期/时间列的数据增量刷新,将最近1 周/ 1 天/ 1 小时,甚至任意时间段内的数据增量刷新进入 Cube。如果您的数据中包含有时间戳字段,比如交易日期、更新日期等,我们建议您使用该字段进行 Cube 数据的增量刷新。每次向Kyligence 提交数据刷新任务时(对应着 Kyligence Cube 构建任务),需要同时提交一个时间区间,这个任务会在 Cube 中生成一个新的 Segment (即数据文件块),正常情况下这些 Segment 的时间区间会形成一个连续不重叠的时间轴,如下图所示:

图表1:按日期/时间增量刷新原理示意

 

提示:在实际存储时,Kyligence Enterprise 会将每个 Segment 的时间区间值转换为 Long 类型的数值,因此时间轴实际上是一个 Long 类型的连续数值区间。

 

图表2:完成增量刷新的数据块(Segment)

 

对于不会更改的数据,如用户网页浏览记录,这些数据在数据源产生后就不会发生更改,因此每次刷新时仅需将新数据增量刷新进入 Cube (对应 Kyligence 系统提交新的 Cube 构建任务);而对于可能发生更改的数据,比如销售订单,需要留意在提交新数据增量刷新任务的同时,还需要根据发生了更改的数据,对已经构建成功的历史 Segment 进行刷新。

另外,为了避免 Cube 中 Segment 过多,数据文件块过于碎片化从而导致查询性能变慢,我们建议定期对数据不再发生更改的 Segment 进行合并,从而优化存储空间和查询性能。

 

2 按文件

Kyligence 也支持按文件进行数据增量刷新,以文件为单位将其中的数据增量刷新进入 Cube。如果您的新数据是按批次以若干个文件形式更新至源系统,那么就可能适用 Kyilgence 按文件的增量数据刷新。

对于按文件的增量刷新,Kyligence 会将以每个小时为单位,对每个小时的 N 个批次数据文件进行处理,其中 N 为文件编号。因此,在提交数据刷新任务时,Segment 区间的起始或截止将由日期/小时与文件编号拼接而成,其对应的 Segment 区间序列如下图所示:

图表3:按文件增量刷新原理示意

 

3 自定义

大部分情形下,我们推荐您尽可能使用日期/时间列来进行 Cube 数据的增量刷新。但某些场景下,数据并不一定都包含日期/时间列,或者新数据并不能够通过日期/时间列来识别,比如自增型数据编号(类似流式数据的 offset ),财务期间(比如201901,201913等),或者日期 + 数据更新批次号的组合。

 

图表4:自定义增量刷新设置

 

因此 Kyligence Enterprise 支持自定义增量刷新,您可以在系统中自定义特定的 Cube 增量构建方法,以满足特定的数据增量刷新需求。您可以实现自定义增量刷新的逻辑,将 Kyligence Cube Segment 区间(Long 类型的数值区间)映射至时间轴区间,并在提交 Cube 构建任务时实现该区间值至数据筛选条件的自定义映射,如下图显示:

 

图表5:自定义增量刷新举例

 

另外对于使用Cube 分区,Kyligence 可以实现将结构相同但数据不同的 Cube 统一管理,而无需创建多个 Cube,Cube 数据刷新可以按特定分区进行。比如某个分析主题的 Cube 可以按省份或组织机构设定 Cube 分区,特定省份或组织机构的数据准备完成后,即可刷新 Cube,而无需等待所有省份或组织机构数据准备完成。如下图所示:

图表6: Cube分区示意图

 

同时,每一个分区的数据刷新不仅可以全量刷新,还可以搭配按日期/时间方式,进行增量刷新,以周/天/小时为单位将新增数据构建进入 Cube 中。

图表7: Kyligence Cube 分区设置

 

总结

通过多种增量刷新策略,Kyligence 在保障高并发、高性能查询服务的同时,避免了海量数据全量刷新带来的时间与计算资源成本,大大缩短了数据刷新时间,保障数据尽快能够服务于业务查询。

更多使用细节,请点击下载用户手册 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值