海量数据分流策略
面对万亿规模数据增量,纯数据拖拽构建链路消费会消耗大量的资源和成本;有必要对海量采集的数据按着业务的情况进行分别管理和组织,期待达到业务层面的解耦。通过分治思想在数据采集和业务消费层面做数据的合理切分,一方面能给下游不同优先级的业务消费带来优化加速的空间,同时也能够在整个数据链路侧对数据的产出和不同重要程度的业务做链路剥离, 从而满足不同场景下的业务诉求。
1.数据分流的目的
首先,分流的目的很明确,就是一份数据很大的流需要分离成不同的流来并行处理,从而达到加速和链路产出时间上的提升。例如在流量业务中,往往采集的时候所有的数据是放在一起的,下游使用访问、点击的数据都需要等待前置所有的采集数据到齐之后进行下游链路的消费,因此需要等待,下游的具体业务也需要等待前置业务链路全部产出之后,下游才能进一步进行调度。
其次,分流的目的不是为了拆分而拆分,过度的拆分,最终会埋下数据链路难以运维的大坑,既要兼顾全局业务上的需求,又要兼顾链路业务上的解耦,还要考虑数据模型建设的纵向横向扩展以及数据质量和计存上的衡量,因此,既不能盲目拆的稀碎,也不能分的太死,最好能灵活调整,满足不同场景的迭代和需求。
最后,数据分流一方面要考虑技术实现,更要考虑下游业务使用上的便捷度,所以是需要从数据采集开始就应该介入合理设计的过程。
2. 数据分流策略
分流策略从数据链路来开可以分为前置和后置。前置就是在数据采集的时候就已经按着一定的分流策略给分解掉来进行入仓。然后数仓进行进一步的处理。而后置的意思则是在公共层对业务支持的层面进行模型层面的设计和分解,来满足不同的业务场景。前置策略一般是需要平台技术能力支持,而后置则需要数据研发同学紧贴业务消费侧进行合理设计或者二次加工。一般的在一个具体的实践案例中,分流的策略往往是先进行前置的粗略拆分,然后数据同学再根据具体的业务来进行精细化设计。
数据分流的两种策略
3. 全链路的分流方案
大数据量场景下,解决数据下游消费和上报链路稳定,一般都需要考虑将多个复杂业务进行相互拆留解耦以满足不同业务的发展。在很多规模较大的公司里面,都会对如此庞大的数据进行数据流上的整合与处理,下图为整个数据链路方案的实施方案。需要借助全链路的方案才能在数据设计上解决时效性的要求和资源效率的约束,并且在一定程度解耦高优先任务。从而定制化灵活的解决不同场下的业务诉求。
数据分流整合全链路设计方案
4. 总结
数据的分流策略在整个研发中是非常常见的,例如大家的多级分区设计,以及多个任务更新一张业务表,这样都能在下游调度的时候,根据优先级和依赖的重要程度,解决部分业务的问题。在日常具体的应用场景中,还有很多值得总结的方案需要大家沉下心好好的总结。
#java秋招面试##数据开发工程师##数据分析##数据人offer决赛圈怎么选##数据人的面试交流地#