文档首页/ 数据治理中心 DataArts Studio/ 常见问题/ 数据集成(实时作业)/ PostgreSQL/Gaussdb源端作业如何查看已消费位点?
更新时间:2025-08-27 GMT+08:00
分享

PostgreSQL/Gaussdb源端作业如何查看已消费位点?

通过查看作业日志确认已消费位点

  1. 下载jobmanager日志,搜索关键字“Completed checkpoint”找到最新的一次已完成checkpoint,以下可以看到“checkpoint 2”为最新完成的检查点。
    图1 下载jobmanager日志

    图2 搜索Completed checkpoint
  2. 下载taskmanager日志,搜索关键字“Stream split offset on checkpoint 2”,获取当前已消费到的LSN号 lsn=LSN{7/D80001B0}。然后通过SQL查找数据库中已有LSN号并排序,取所有小于日志中LSN号中最大的一个即为作业的已消费位点。参考SQL:
    select concat(case when substring(name, 15, 1) = '0' then substring(name, 16, 1) else substring(name, 15, 2) end, '/', substring(name, 23, 2), '000000') as wal_lsn, modification from pg_ls_waldir() order by modification;
    图3 下载taskmanager日志

    图4 搜索Stream split offset on checkpoint 2
    图5 时间转换

如上图例,我们在日志中查到的LSN=7/D80001B0,对比数据库的查询结果可以看到它处于1605行和1606间,即wal_lsn=7/D8000000 < LSN=7/D80001B0 < wal_lsn=7/D9000000,由此我们取wal_lsn=7/D8000000对应的modification时间'2025-07-29 07:43:47.000000+00:00'作为本次作业的已消费位点。

注意:

  • 当作业存在多并发时会有多个taskmanager日志,只有其中的某一个taskmanager日志包含Stream split offset信息。
  • 通过SQL获取到的wal_lsn modification时间采用了PostgreSQL数据库的时区,请自行将其结果转换为用户华为云账号所在Region时区的时间。

根据作业WAL抽取时延估算已消费位点

运行中的作业,查看监控信息,然后跳转“查看监控指标”,查看最近的一次时延上报情况。

图6 查看监控指标

如下图,2025-07-29 16:14:40的时候,时延处于毫秒级,可以认为作业没有时延,已消费位点可以粗略估计为“2025-07-29 16:10:00”,这里估测位点时往前回退几分钟更为安全,应尽量保证作业不丢数。

图7 查看作业时间

相关文档