Tispark使用stream流式处理怎么处理tidb 中update或者delete的数据

tispark使用stream流式处理怎么处理tidb 中update或者delete的数据

由于spark不支持update和delete,所以流式处理数据正常,tispark也不支持数据的update和delete,但是他的数据库支持,可以使用tidbserver进行数据的update和delete,对于tidbserver操作导致的数据修改和删除,在使用spark stream时处理逻辑是什么样的?会不会导致数据异常?

1赞

tispark处理的数据是tidb中的,tidb支持tidbserver和tispark两种数据数据方式。 tidbserver的写入、更新、删除数据会对tispark的统计造成什么影响?

我们目前的使用场景是: mysql作为应用服务器,将mysql中的数据通过dm binlog同步到tidb,然后在tidb上通过tispark做数据分析。分析过程中我们希望能实时处理数据。

TiKV 是快照隔离的,TiSpark 基于 TiKV 的事务隔离级别,所以数据的增删改对当前的 TiSpark 的业务统计语句没有影响。TiSpark 的数据访问就是在它执行时快照时间点的数据环境。

tispark stream流式处理数据呢?数据流式处理的时候如果删除或者修改它处理过的数据逻辑上有问题的吧

TiSpark 的流式处理和 Spark 是完全一样的。不管是否是流式处理,都会有当前执行任务的 timestamp,这样就能保证 TiSpark 是快照隔离级别,只可能读到时间戳之前的数据。而写的时候只要业务逻辑是幂等的,就不会存在删除和修改处理过的数据这个问题,如果你的业务逻辑需要修改已处理的数据,那就需要自己增加事务的逻辑,实现回滚,所以不会存在影响。

1赞

好的,谢谢