apacheflink:表api状态是可伸缩的吗?

ercv8c1e  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(325)

根据flink表api流概念,表api和sql查询可能会由于状态大小的增长而失败。
状态大小:连续查询是在无限流上进行计算的,通常需要运行数周或数月。因此,连续查询处理的数据总量可能非常大。必须更新以前发出的结果的查询需要维护所有发出的行,以便能够更新它们。例如,第一个示例查询需要为每个用户存储url计数,以便在输入表收到新行时能够增加计数并发送新结果。如果只跟踪注册用户,则要维护的计数数可能不会太高。但是,如果为未注册的用户分配了唯一的用户名,则要维护的计数数将随着时间的推移而增加,最终可能导致查询失败。
表api和sql在后台使用datastreamapi。
表api/sql查询的状态不应该像datastreamapi作业的状态那样伸缩吗?

zf9nrax1

zf9nrax11#

您正确地认为flink的表api与datastreamapi一样具有可伸缩性。尽管如此,任何给定的基础设施都有有限的容量,而一个使用无限状态的flink作业在消耗了所有可用资源后最终会崩溃。一些flink用户每天处理数PB的数据,并期望自己的工作连续运行数周甚至数月,这只有关注这些问题才有可能实现。

相关问题