从架构来看,化繁为简之后的架构从左到右,可以直接通过Datahub数据总线把数据写入到 MaxCompute ,也通过实时计算(实时计算Flink版)消费数据总线(DataHub)实时数据写入Hologres提供分析服务。这一套架构有两条链路,如果业务响应时间要求非常高,可以走实时数仓链路,Datahub数据通过Flink完成实时数据计算写入实时数仓Hologres,提供数据给数据产品或者是实时大屏。如果对业务响应时间要求不高的,可以通多Datahub直接写入数据到 MaxCompute。
在实时计算Flink消费实时在线数据时,也有不同的计算指标需要呈现到离线数仓 MaxCompute 中,跟 MaxCompute中的一些数据做聚合计算,可以通过Hologres 直读的方式读取到MaxCompute聚合后的数据。通过Hologres 对外提供在线数据分析服务能力,底层数据可以是Hologres中的数据,也可以是MaxCompute中的数据。当前架构主要体现出的是实时离线一体化,但湖仓一体是在这一套架构中。不管是离线数仓还是实时数仓都可以跟数据湖中的数据互通。
基于当前架构主要提供了三个维度的服务能力
实时链路:通过实时计算(实时计算Flink版)消费数据总线(DataHub)实时数据写入Hologres提供分析服务。
低延时或手动触发:Flink/DataHub通过流式写入MaxCompute,应用物化视图进行预计算提供业务聚合数据基于查询加速的分析服务。消除了对作业和调度的管理。
批处理:MaxCompute支持多种数据来源的数据,进行大量同步和处理的数据计算。
实时离线一体化数仓数据建模那实时离线一体化怎么使用呢? 可以看下图示例。
电信运营商流量采集业务分析:根据对流量采集业务分析,比较适合数据仓库常用建模方法——雪花模型。依据业务特征和雪花模型建模原则,完成数仓建模。
实时离线一体化数仓分层此示例中,运营商流量表为实时数据表,针对流量表关联了采集机维度表和地域维度表,构建了基于实时流量数据的雪花模型。模型做完后,基于数仓的分层是,ods层为采集的流量表数据和采集机规则表,同步到MaxCompute或Hologres做相应规则处理。在dwd明细数据这一层,主要针对清洗完之后数据形成采集流量明细表和采集机规则事件明细表。如果是实时离线相结合的架构,dwd层数据可以汇总到Hologres中。如果是汇总到MaxCompute,可以用分区表来实现,在分区表内计算时间或者事件规则相符合的数据,在分区表内做轻度汇总。针对汇总表再去完成采集规则事件的统计包括流量数据平均值的统计分析。
实时离线一体化案例场景商家用户下单总数
比如商家要根据用户历史下单数给用户优惠,商家需要看到历史下了多少单,历史T 1的数据要有,今天实时的数据也要有,这种场景是典型的实时离线一体化架构。我们可以在Hologres里设计一个分区表,一个是历史分区,一个是今日分区,历史分区可以通过离线的方式生产,今日指标可以通过实时的方式计算,写到今日分区里,查询的时候进行一个简单的汇总。