我们正在部署一个新的flink流处理作业,它的状态(存储)需要用历史数据初始化,并且在状态存储开始处理任何新的应用程序事件之前,这些数据应该在状态存储中可用。我们不希望显著地修改flink作业来同时加载历史数据。我们考虑编写另一个独立的flink作业来处理历史数据、更新其状态存储并创建保存点,并使用此保存点初始化主flink作业中的状态。看起来状态处理器api只能与数据集api一起工作,并且不知道是否有其他解决方案。谢谢。
我们正在部署一个新的flink流处理作业,它的状态(存储)需要用历史数据初始化,并且在状态存储开始处理任何新的应用程序事件之前,这些数据应该在状态存储中可用。我们不希望显著地修改flink作业来同时加载历史数据。我们考虑编写另一个独立的flink作业来处理历史数据、更新其状态存储并创建保存点,并使用此保存点初始化主flink作业中的状态。看起来状态处理器api只能与数据集api一起工作,并且不知道是否有其他解决方案。谢谢。
2条答案
按热度按时间h4cxqtbf1#
状态处理器api是一个很好的解决方案。它提供了一种保存点连接器,您可以在数据集作业中使用它来读取/修改/更新数据流作业中使用的保存点。
9njqaruj2#
为了支持
-preload
作业的模式,其中非历史数据源被空/非终止源替换。我通常使用计数器来确定状态何时已完全填充,然后使用保存点停止,然后在没有-preload
选项。