数据源集市技术栈自搭建以来,整个系统不断完善。我们在数据传输的导出方向上基本达成一致,即在保证数据的准确性和稳定性的基础上,数据传输的效率尽可能按照实时标准来实现。因此,数据源市场的目标不是简单的数据传递,而是为中下游服务提供强有力的支撑。甚至为实时数据流转提供参考和依据。目前,如果一张表的数据需要提供近实时的数据传递标准,一般有以下几种策略:1)基于自增ID模式,可以快速实现数据的增量位置根据数据库的自增ID定位,基本实现了数据的增量同步。当然,这种模式有比较大的局限性。它要求表包含一个自动递增的ID字段。数据库的吞吐量也会有潜在的瓶颈,不适合基于中间件的集群环境下的实时数据流转。.2)基于时间字段同步方式,时间字段同步是表数据实现增量同步的经典方式,也与业务紧密结合,但潜在的风险是可能有多个相关的时间字段,并且同步定制化程度高,另外单靠增量模式其实很难完全定位到数据,还需要另外一个维度的支持,比如自增ID。如果要实时传输和下发一个状态表,面临的问题其实更复杂。通常这种状态表数据量很大,但是很可能没有基于自增ID的字段(一般是基于业务的ID字段),基于时间的字段基本可行,但是很难快速定位唯一的记录内容。最重要的一点是我们通过unique定位得到的是变化后的值,而变化前的值已经被完全覆盖了,所以变化的定义比较复杂。目前遇到的一些瓶颈问题主要有:中下游数据服务抽取数据时,虽然数据源是实时更新的,但后续数据服务很难定位增量数据。上述多个维度都不合适。通常在做数据检查时,只能使用检查方式selectcount(*)fromxxx。解决这个问题最直接的方法就是为节目段提供相应的流日志,如果开发能力强,这件事情实施起来比较容易,但是如果业务风险大,解决这件事情就比较麻烦。以下是折衷方案。可以实时提取数据变化,实时更新同步数据的状态,无需修改代码。总体设计思路是基于实时日志服务,这里是Maxwell。简单说一下,如果要实时下发一个状态表的数据,那么在数据源集市中,我们可以保证状态表的数据是实时复制的。技术上是可以的,无论是基于库级别还是过滤到表级别。,可操作。基于Maxwell的实时日志抽取,我们可以从状态表中分析出表中的实时数据变化,可以间接实现一个账单表。间接实时流量和交付。本文转载自微信公众号《杨建荣的学习笔记》,可通过以下二维码关注。转载本文请联系杨建荣学习笔记公众号。
