开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flinkcdc pg程序运行中显示状态ttl 被清理是什么情况?

flinkcdc pg程序运行中显示状态ttl 被清理是什么情况?

展开
收起
十一0204 2023-07-26 08:24:22 76 0
3 条回答
写回答
取消 提交回答
  • 当 Flink CDC 的 PostgreSQL Connector 运行时显示状态 TTL 被清理,通常是指 Flink 清理了状态存储中的过期数据。

    TTL (Time-To-Live) 是一种机制,用于设置状态在存储中的保留时间。Flink CDC 中的状态存储用于保存任务的状态信息,例如保存已处理的数据、窗口的聚合结果等。当使用 TTL 机制时,Flink 将根据设置的时间限制来清理过期的状态,并释放存储空间。

    可能的情况包括:

    1. 状态过期:根据你的描述,Flink CDC 清理了状态存储中的过期数据。这可能意味着你的 Flink 作业或者相关组件配置了 TTL 参数,并且某些状态数据已达到了过期时间。有关如何配置和使用状态存储的 TTL,请参考 Flink 文档中关于状态存储的详细说明。

    2. 存储空间限制:另一个可能的原因是状态存储达到了其容量上限,因此 Flink 根据策略清理了部分过期数据以释放存储空间。这可以防止状态存储无限增长并导致内存溢出等问题。

    在日志中查找与状态清理相关的详细信息,可能会提供更多关于状态 TTL 被清理的上下文。你可以检查 Flink 日志以及相关组件(如 RocksDB 等)的日志,查找与清理状态相关的日志条目。这些日志可能会提供有关清理过程、过期数据以及存储空间限制的详细信息。

    如果你需要进一步了解状态的 TTL 清理行为和配置,请参考 Flink 文档中关于状态管理和 TTL 的内容。

    2023-07-31 22:36:24
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在Flink CDC中,当开启维表数据的TTL缓存功能时,缓存中的数据会在指定的时间窗口内自动过期并被清理。当维表数据被清理时,Flink CDC会输出一条类似于以下的日志信息:
    routeros
    Copy
    2021-08-16 10:25:30,101 INFO org.apache.flink.streaming.api.functions.sink.PrintSinkFunction - [1] 2021-08-16 10:25:30.101 UTC: [event_time=2021-08-16T10:25:30.100, key=1, value=Record(id=1, name=foo), metadata=SourceRecordMetadata{offset=[..], partition=0, topic='cdc-test.public.dim_table', timestamp=0}]
    2021-08-16 10:25:30,101 INFO org.apache.flink.streaming.api.functions.sink.PrintSinkFunction - [1] 2021-08-16 10:25:30.101 UTC: [event_time=2021-08-16T10:25:30.100, key=2, value=Record(id=2, name=bar), metadata=SourceRecordMetadata{offset=[..], partition=0, topic='cdc-test.public.dim_table', timestamp=0}]
    2021-08-16 10:25:30,101 INFO org.apache.flink.streaming.api.functions.sink.PrintSinkFunction - [1] 2021-08-16 10:25:30.101 UTC: [event_time=2021-08-16T10:25:30.100, key=3, value=Record(id=3, name=baz), metadata=SourceRecordMetadata{offset=[..], partition=0, topic='cdc-test.public.dim_table', timestamp=0}]
    2021-08-16 10:25:30,102 INFO org.apache.flink.connector.jdbc.table.JdbcOutputFormat - [1] Flush 3 rows into the JDBC sink in thread 'pool-1-thread-1' (parallelism = 1, taskIdx = 0). Execution time = 1 ms.
    2021-08-16 10:25:30,103 INFO io.debezium.relational.Table - TTL expired on cache entry for table 'public.dim_table' with key '1'
    2021-08-16 10:25:30,103 INFO io.debezium.relational.Table - TTL expired on cache entry for table 'public.dim_table' with key '2'
    2021-08-16 10:25:30,103 INFO io.debezium.relational.Table - TTL expired on cache entry for table 'public.dim_table' with key '3'
    上述日志中,最后三行显示了维表数据被清理的情况,其中每一行都包含了清理的表名和键值。

    2023-07-29 15:40:16
    赞同 展开评论 打赏
  • 存在即是合理

    可能是由于Flink引入的基于TTL的对于过期状态的清理功能导致。这种手动清理程序不仅容易出错,而且效率低下。

    2023-07-27 16:12:44
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载