apache-flink - Apache Flink:Table API 状态是否可扩展?
问题描述
根据 Flink Table API Streaming Concepts,Table API 和 SQL 查询可能会由于状态大小的增长而失败。
状态大小:连续查询在无限流上进行评估,通常应该运行数周或数月。因此,连续查询处理的数据总量可能非常大。必须更新先前发出的结果的查询需要维护所有发出的行才能更新它们。例如,第一个示例查询需要存储每个用户的 URL 计数,以便能够增加计数并在输入表接收到新行时发送新结果。如果只跟踪注册用户,那么要维护的计数可能不会太高。但是,如果为非注册用户分配了唯一的用户名,则要维护的计数数量会随着时间的推移而增加,并最终可能导致查询失败。
Table API 和 SQL 在后台使用 DataStream API。
Table API / SQL 查询的状态不应该像 DataStream API 作业的状态一样扩展吗?
解决方案
您认为 Flink 的 Table API 与 DataStream API 一样可扩展是正确的。尽管如此,任何给定的基础设施都具有有限的容量,并且编写为使用无界状态的 Flink 作业最终会在消耗完所有可用资源后崩溃。一些 Flink 用户每天处理 PB 级的数据,并期望他们的工作连续运行数周和数月,这只有关注这些问题才有可能。
推荐阅读
- pdfbox - PDFBOX2.X - 从 acroForm 读取错误数据
- c# - 我可以得到一个跨度
引用非字节类型的结构成员字段? - css - Chrome 72 是否为 css 背景 svg 破坏了“data:image/svg+xml;utf8”?
- html - 如何在 bootstrap 和 css 中让渐变占据全屏?
- django - 如何清除“连接路径位于基本路径组件之外”?
- ansible - 如何在 ansible 的帮助下管理具有许多服务器的 INI 文件的配置,其值是基于服务器动态的?
- c - 为什么要求最大整数的代码会给出随机输出?
- java - Java Spring:将多个MultipartFile文件连同JSON作为一个主体上传到单个请求中(HTTP-> POST)?
- spring-data-redis - 可以处理 TLS 的 JedisConnectionFactory
- java - 浮动按钮背景颜色