以下文章来源于大数据左右手,作者左右
前言
实时数仓,难免会遇到join维表的业务。现总结几种方案,供各位看官选择:
查找关联(同步,异步)
状态编程,预加载数据到状态中,按需取
冷热数据
广播维表
TemporalTableJoin
LookupTableJoin
查找关联
查找关联就是在主流数据中直接访问外部数据(mysql,redis,impala...)去根据主键或者某种关键条件去关联取值。
适合:维表数据量大,但是主数据不大的业务实时计算。
缺点:数据量大的时候,会给外部数据源库带来很大的压力,因为某条数据都需要关联。
同步
访问数据库是同步调用,导致subtak线程会被阻塞,影响吞吐量
import