读书笔记七 ---大数据之路(实时维表的使用)

本文探讨了在离线系统与实时计算中如何处理维表的使用。在离线系统中,维表与事实表按业务分区关联;而在实时计算中,由于数据延迟,通常使用T-2天的维表数据。原因包括数据准备时间及实时数据的无序性。针对内存限制,提出了全量加载和增量加载两种策略:全量加载适合小规模维表,而增量加载适用于大规模数据,通过LRU策略管理内存。这两种方法在实际应用中需要根据数据量和性能需求权衡选择。
摘要由CSDN通过智能技术生成

维表的使用
在离线系统中,一般是根据业务分区来关联事实表和维表的,因为在关联之前维表的数据就已经就绪了。而在实时计算中,关联维表一般会使用当前的实时数据(T)去关联T-2的维表数据,相当于在T的数据到达之前需要把维表数据准备好,并且一般是一份静态的数据。

为什么维表是T-2天:
1:数据无法及时准备好
当到达零点时,实时流数据必须去关联维表(因为不能等待,如果等就失去了实时的特性),而这个时候T-1的维表数据一般不能在零点马上准备就绪(因为T-1的数据需要在T这一天加工生成),因此去关联T-2维表,相当于在T-1的一天时间里加工好T-2的维表数据。

2:无法准确获取全量的最新数据
维表一般是全量的数据,如果需要实时获取到当天的最新维表数据,则需要T-1的数据+当天变更才能获取到完整的维表数据。也就是说、维表也作为一个实时流输人,这就需要使用多流实时关联来实现。但是由于实时数据是无序的并且到达时间不确定,因此在维表关联上有歧义

由于实时任务是常驻进程的,因此维表的使用分为两种形式
(1)全量加载
在维表数据较少的情况下,可以一次性加载到内存中,在内存中直接和实时流数据进行关联,效率非常高。但缺点是内存一直占用着,并且需要定时更新。例如:类目维表,每天只有几万条记录,在每天零点时全量加载到内存中。
(2)增量加载
推表数据很多,没办法全部加载到内存中,可以使用增量查找和LRU过期的形式,让最热门的数据留在内存中。其优点是可以控制内存的使用量,缺点是需要查找外部存储系统,运行效率会降低。例如:会员推表,有上亿条记录,每次实时数据到达时,去外部数据库中查询,并且把查询结果放在内存中,然后每隔一段时间清理一次最近最少使用的数据,以避免内存滋出。在实际应用中,这两种形式根据堆表数据量和实时性能要求综合考虑来选择使用.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值