准实时数据如何高效存储,比如增量如何处理,存量如何存储,即保证时效性,又保证准确性,防重防漏
收起我也提了一个类似的问题,考虑到目前业务系统现状,很难配合进行实时数据采集的改造,很多场景是采用网络旁路或者OGG等方式进行数据采集,对于数据的业务状态和数据丢失无法完全保证。我自己的想法是应该结合应用场景,有些场景需要强一致性,有些不需要,如果技术手段上无法保证防重防漏,可以业务手段兜底。我举两个应用场景的例子。
一是在营销的场景中,用实时数仓计算的指标和一些规则进行实时的营销决策,决策结果用于推荐用户购买某个产品,由于推荐规则本身也存在准确性的问题,是否能防重防漏,对业务流程和推荐结果并大的影响,这种场景可以不用熬了防重防漏的问题,数据来了就收、漏了就不要了。
另一个场景同样是营销,不过这个场景是通过指标计算和营销活动规则判断是否给用户返送无门槛购物券。这类场景如果数据一致性出差错,比如遗漏了数据可能导致该送券没送券用户会投诉,导致不该送券的送了券,被薅了羊毛。这种场景要么技术上做数据一致性的保障,比如数据采集时要避免使用网络旁路方式,在数据加工时要进行主键判断避免数据重复,另外在业务流程上要进行调整,业务系统要增加用户投诉受理和差错处理的接口给客服处理一次情况。