kafka connect结合debezium采集oracle数据的时候,任务失败重启的数据偏移量问题

kafka connect如何更改偏移量中的位置?

Debezium Oracle 连接器在偏移量中维护两个关键值,一个名为 scn 的字段 和另一个名为commit_scn的字段。该scn字段是一个字符串,表示连接器在捕获更改时使用的低水位线起始位置。

  1. 找出包含连接器偏移量的主题的名称。这是根据设置为配置 offset.storage.topic属性的值进行配置的。

  2. 找出连接器的最后一个偏移量、存储它的键并确定用于存储偏移量的分区。kafkacat这可以使用Kafka 代理安装提供的实用程序脚本来完成。一个示例可能如下所示:

kafkacat -b localhost:9092 -C -t my_connect_offsets -f 'Partition(%p) %k %s\n'

执行结果:

Partition(11) ["inventory-connector",{"server":"server1"}] {"scn":"324567897", "commit_scn":"324567897: 0x2832343233323:1"}

注: macOS可以使用brew install kafkacat安装
只有数据存在变更,才会在 offset.storage.topic设置的topic中记录offset, 如果数据长时间没有变更,记录的offset可能是很久之前的,出错重启的话就会出现问题,会出现找不到给定SCN偏移量的异常。

  1. 要返回到以前的偏移量,连接器应该停止并且必须发出以下命令:
echo '["inventory-connector",{"server":"server1"}]|{"scn":"3245675000","commit_scn":"324567500"}' | \
kafkacat -P -b localhost -t my_connect_offsets -K \| -p 11

重启对应的task,就可以从设置的新的低水位线开始消费了。

如果连接器找不到具有给定偏移量 SCN 的日志,会发生什么情况?

Debezium 连接器在连接器偏移量中保持低水位线和高水位线 SCN 值。低水位线 SCN 表示起始位置,并且必须存在于可用的联机重做或归档日志中,以便连接器成功启动。当连接器报告找不到此偏移 SCN 时,这表明仍然可用的日志不包含 SCN,因此连接器无法从它停止的地方挖掘更改。

发生这种情况时,有两种选择。第一种是删除连接器的历史主题和偏移量并重新启动连接器,按照建议拍摄新快照。这将保证任何主题消费者都不会发生数据丢失。第二种是手动操作偏移量,将 SCN 推进到重做或存档日志中可用的位置。这将导致旧 SCN 值和新提供的 SCN 值之间发生的更改丢失,并且不会写入主题。不推荐这样做。

### 关于Elasticsearch与Kibana的使用、配置及集成 #### 使用场景概述 Elasticsearch是一个分布式的搜索引擎,能够提供实时的数据搜索和分析功能。而Kibana则作为可视化工具,允许用户通过图形界面来探索数据集并创建仪表板。 #### 配置指南 为了使Elasticsearch正常工作,在安装完成后需对其进行适当设置。通常情况下,默认配置已经可以满足大多数需求;但对于生产环境而言,则可能需要调整一些参数以优化性能[^1]。 对于网络连接部分,建议修改`elasticsearch.yml`文件中的绑定地址(`network.host`)以及端口(`http.port`)等属性值以便更好地适应实际部署情况。另外还需要注意集群名称(cluster.name)等相关选项的选择,确保不同实例间不会发生冲突。 ```yaml cluster.name: my-application node.name: node-1 path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 0.0.0.0 http.port: 9200 ``` 当涉及到安全性方面时,可以通过启用X-Pack安全特性来进行身份验证控制,并定义角色权限规则来保护敏感信息不被未授权访问者获取到。 #### 数据导入方式 利用Logstash或者Filebeat这样的 Beats系列组件可以从多种源头采集日志或事件记录送入Elasticsearch存储起来。除此之外,借助Kafka Connect平台也可以实现从关系型数据库管理系统(RDBMS),比如Oracle中抽取变更后的增量更新流式传输至目标位置——这正是之前提到过的案例之一。 #### 可视化展示 一旦有了足够的索引文档数量之后就可以考虑如何直观呈现这些结构化的半结构化甚至是非结构化的海量资料了。这时就轮到了Kibana出场发挥作用啦! 在浏览器里打开Kibana Web UI页面后会看到左侧菜单栏提供了Discover(发现), Visualize(可视化), Dashboard(仪表盘)等功能模块供选择操作: - **Discover**: 用户可以直接在这里查询特定字段的内容,查看原始JSON格式的日志条目; - **Visualize & Dashboard**: 支持构建柱状图、折线图等多种图表样式并将它们组合成完整的看板用于日常监控业务状态变化趋势。 #### 性能监测手段 除了上述提及的功能外,还可以结合JMX接口收集有关主题分区副本分配状况、消费者组偏移量滞后程度等方面的关键指标用来评估整个系统的健康水平。当然如果是在AWS云平台上运行的话,那么同样可以选择将其接入Amazon CloudWatch服务从而获得更全面详尽的历史统计报告[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾岛与鲸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值