TiSpark技术选型上为什么选用与Spark结合,团队是否考虑过与Flink的组合

Flink 对于流计算的效果和一致性保证应该更好。

我在Hackthon中也看到了一些Flink相关的项目,但是由于时间仓促,实现也比较粗糙,作为一个菜鸟还在想TiFlink存在的必要性…其实我是想问既然有了TiSpark, TiFlink是不是存在的必要就不是很大了?

TiSpark 跟 TiDB 配合主要还是为了完成复杂的 AP 分析需求,同时支持数据的批量写入;而 Flink + TiDB 是为了在数据流入或者流出 TiDB 过程中对数据进行实时同步和流式处理,包括数据清洗、拼宽表、merge 等操作,跟 TiSpark 的作用还是不一样的,现在也在研究和探索 TiDB + Flink 的方案。

感谢大佬回答。我还有以下几个问题,

  1. Structured Streaming 跑流作业的性能也不错,使用 TiDB + Flink 是因为Flink对于流作业性能更好,而且更成熟(比如 exactly once, 状态管理)吗?
  2. 那随着Flink流批一体和在批上的优化(比如容错和吞吐量)变得更完善的话,TiDB + Flink 的方案应该是可能会取代 TiSpark 的吧?