生产环境中的面试问题,实时链路中的Kafka数据发现某字段值错误,怎么办?...

大家好呀,今天分享的是一个生产环境中遇到的问题。也是群友遇到的一个面试问题。

原问题是:

早晨8点之后发现kafka的record中某个字段的值出现了错误,现在已经10点了,需要对kafka进行数据订正,怎么样定位和解决这个问题,达到最快响应和最小影响。

这个问题是一个很「大」的问题,我们挑重点的说。

首先,我们在做数据开发的过程中涉及到一些基本要素:时效性保障、质量保障、稳定性保障,此外还有敏捷性、可管理性等其他要素。根据公司业务场景和重要性不同,重点也有所侧重。

时效性保障

时效性保障主要关注的几个方面:

  • Kafka延迟监控:Flink消费产生的lag、业务数据下发的延迟;

  • 在分层和时效延迟上做好平衡,保证链路的可复用的同时避免链路过程产生额外的时效问题;

  • 数据乱序;

  • 压测,应对流量高峰期,特别是大促场景下,提前做好资源保障、任务优化等措施;

  • 设置延时基线,通过优化程序代码、资源、解决倾斜与反压等问题,使其控制在基线内;

  • 指标监控,监控任务FailOver情况、CheckPoint指标、GC情况、作业反压等,出现异常告警。

数据质量保障

这是个老生常谈的话题了。我们在离线时代已经有了非常完善的数据质量监控体系。大家重点看加粗内容即可。

数据一致性监控
  1. 实时计算端到端的一致性。 常用手段就是通过输出幂等方式保障,这种方式要求输出使用存储介质支持重写,对于不支持幂等的存储,比较常用的就是DWD层的kafka, 可能会产生重复的数据,那么在下游使用的时候可以使用row_number()语法进行去重,保证相同的key不会被多次计算;

  2. 离线与实时的一致性,需要保证使用数据源一致、加工业务逻辑一致

数据完整性监控

保证数据从源头到数据加工再到前端数据展示,不能因为加工逻辑权限,存储异常,前端展现异常等原因导致数据丢失。例如:

  1. 数据源层出现背压时,导致数据源头(mq,Kafka)消息积压,积压严重时导致资源耗尽,进而导致数据丢失;

  2. 数据处理层数据加工未按照需求进行加工,导致目标有效数据丢失;

  3. 数据存储层的存储容量写满时,导致新数据无法继续写入导致数据丢失;

  4. 数据加工正确性、数据加工及时性、数据快速恢复性构成数据完整性

数据加工正确性监控

目标源数据按照业务需求加工成目标有效数据,目标有效数据根据不同维度不同指标计算成需要展示的不同指标数据。例如:

  1. 数据源层原始数据包含不同联盟的点击数据,那么数据处理层过滤掉不需要的联盟点击数据,并将目标联盟的点击数据根据媒体和创意信息补齐当前点击所属的账号、计划、单元;

  2. 业务层根据媒体,账号、计划、单元不同维度计算出对应的点击总量;

数据快速恢复性

数据在流转路径中因为异常导致流转中断,数据停止在某一个环节中,当异常解决,系统恢复正常时,停止的数据(停止的数据)需要快速恢复流转,并且这种恢复是正确的,不应该存在重复的消费和加工或者遗漏。例如:

  1. 数据处理层因为消费程序性能问题导致消息积压,性能问题解决后数据挤压问题逐步得到缓解直到恢复正常水平;

  2. 数据处理层因为消费程序bug导致程序崩溃,重启后数据消费正常;

稳定性保障

  • 任务压测

提前压测应对流量高峰期,特别是大促场景下,提前做好资源保障、任务优化等措施。

  • 任务分级

制定保障等级,从任务影响面大小、数据使用方来划分,一般情况公司层面优先于部门层面,外部使用优先于内部使用,高优先级任务需要优先/及时响应、必要情况下做双链路保障机制。

  • 做好指标监控

指标监控,监控任务failover情况、checkpoint指标、GC情况、作业反压等,出现异常告警。

  • 高可用HA

整个实时Pipeline链路都应该选取高可用组件,确保理论上整体高可用;在数据关键链路上支持数据备份和重放机制;在业务关键链路上支持双跑融合机制

  • 监控预警

集群设施层面,物理管道层面,数据逻辑层面的多方面监控预警能力

  • 自动运维

能够捕捉并存档缺失数据和处理异常,并具备定期自动重试机制修复问题数据

回到问题本身

再回答问题本身,我们可以从下面三个方面回答:

  1. 事前

本问题是从数据质量角度产生的问题,可以从数据质量监控的角度,有必要的数据质量监控和对应的报警;

  1. 事中

在问题发生后,要有正确的SOP流程处理数据异常。例如,通过公告、默认值、开关等方法,降低数据质量带来的舆情影响;

  1. 事后

要进行数据修复。是否需要进行数据回溯,或者通过离线回补等方式进行修复。

当然这只是一个思路,你能结合工作中的具体场景,举例说明就更好啦。

如果这个文章对你有帮助,不要忘记 「在看」 「点赞」 「收藏」 三连啊喂!

2e0e653be5dad9e5a323ce39b1ebe411.png

ddd3a559e336d96c3730c46dd79e72d8.jpeg

2022年全网首发|大数据专家级技能模型与学习指南(胜天半子篇)

互联网最坏的时代可能真的来了

我在B站读大学,大数据专业

我们在学习Flink的时候,到底在学习什么?

193篇文章暴揍Flink,这个合集你需要关注一下

Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS

Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点

我们在学习Spark的时候,到底在学习什么?

在所有Spark模块中,我愿称SparkSQL为最强!

硬刚Hive | 4万字基础调优面试小总结

数据治理方法论和实践小百科全书

标签体系下的用户画像建设小指南

4万字长文 | ClickHouse基础&实践&调优全视角解析

【面试&个人成长】2021年过半,社招和校招的经验之谈

大数据方向另一个十年开启 |《硬刚系列》第一版完结

我写过的关于成长/面试/职场进阶的文章

当我们在学习Hive的时候在学习什么?「硬刚Hive续集」

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/146590.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

降低城市内涝风险,万宾科技内涝积水监测仪的作用

频繁的内涝会削弱和损坏城市的关键基础设施,包括道路、桥梁和公用设施。城市内涝风险降低可以减少交通中断事件,也可以保护居民安全并降低路面维修等成本,进一步确保城市基本服务继续发挥作用。对城市可持续发展来讲有效减少内涝的风险是重要…

根据数组数组,实现上一页下一页功能

<span click"prePage"><i class"el-icon-back"></i></span><span click"nextPage"><i class"el-icon-right"></i></span> this.typeList&#xff1a;最终显示页面的数组 this.typeNe…

C#中.NET Framework4.8 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录

目录 一、应用程序设计 二、应用程序源码 三、生成效果 前文作者发布了在.NET Framework4.8 控制台应用中通过EF访问已有数据库&#xff0c;事实上在.NET Framework4.8 Windows窗体应用中通过EF访问已有数据库也是一样的。操作方法基本一样&#xff0c;数据库EF模型和上下文…

MySQL时间戳2038年灾难:你的数据还能撑过去吗?

点击上方蓝字关注我 Timestamp 类型在MySQL中通常用于存储日期和时间。然而&#xff0c;Timestamp类型的一个限制是其存储范围&#xff0c;它使用4字节&#xff08;32位&#xff09;整数来表示秒数&#xff0c;从而导致在2038年01月19日03:14:07之后无法正确存储时间戳。这是因…

Android设计模式--工厂模式

一&#xff0c;定义 工厂模式与Android 设计模式--单例模式-CSDN博客&#xff0c;Android设计模式--Builder建造者模式-CSDN博客&#xff0c;Android设计模式--原型模式-CSDN博客 一样&#xff0c;都是创建型设计模式。 工厂模式就是定义一个用于创建对象的接口&#xff0c;让…

[当人工智能遇上安全] 10.威胁情报实体识别 (1)基于BiLSTM-CRF的实体识别万字详解

您或许知道&#xff0c;作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用&#xff0c;您就有福利了&#xff0c;作者将重新打造一个《当人工智能遇上安全》系列博客&#xff0c;详细介绍人工智能与安全相关的论文、实践&#xff0c;并分享各种案…

又卷又累,救救一个将被随机拖死的程序员!

前两天在小红书上看到有人吐槽&#xff1a;“国内做程序员性价比不高&#xff0c;又卷又累&#xff0c;个人时间都被拖死了。” 现在普遍来讲&#xff0c;“卷”都是打工人的现状。 而至于国内程序员性价比不高的话&#xff0c;确实是肉少僧多。工作强度一加持&#xff0c;累自…

Java主流分布式解决方案多场景设计与实战

Java的主流分布式解决方案的设计和实战涉及到多个场景&#xff0c;包括但不限于以下几点&#xff1a; 分布式缓存&#xff1a;在Java的分布式系统中&#xff0c;缓存是非常重要的一部分。常用的分布式缓存技术包括Redis、EhCache等。这些缓存技术可以用来提高系统的性能和响应…

数据分析法宝,一个 SQL 语句查询多个异构数据源

随着企业数据量呈现出爆炸式增长&#xff0c;跨部门、跨应用、跨平台的数据交互需求越来越频繁&#xff0c;传统的数据查询方式已经难以满足这些需求。同时&#xff0c;不同数据库系统之间的数据格式、查询语言等都存在差异&#xff0c;直接进行跨库查询十分困难。 原生跨库查…

批量重命名软件推荐 A Better Finder Rename 12最新 for mac

A Better Finder Rename的大量重命名选项被组织成15个直观的类别&#xff0c;涵盖了一个伟大的文件重命名器所期望的所有文本&#xff0c;字符&#xff0c;位置&#xff0c;转换和截断功能。 除此之外&#xff0c;A Better Finder Rename提供了更多高级功能&#xff0c;可以满…

spring cloud微服务中多线程下,子线程通过feign调用其它服务,请求头token等丢失

在线程池中&#xff0c;子线程调用其他服务&#xff0c;请求头丢失&#xff0c;token为空的情况 看了很多篇文章的处理方法和在自己亲测的情况下做出说明&#xff1a; 第一种&#xff1a; 这种方式只支持在主线程情况下&#xff0c;能够处理&#xff0c;在多线程情况下&#…

redis基线检查

1、禁止使用 root 用户启动 | 访问控制 描述: 使用root权限来运行网络服务存在较大的风险。Nginx和Apache都有独立的work用户,而Redis没有。例如,Redis的Crackit漏洞就是利用root用户权限替换或增加authorize_keys,从而获取root登录权限。 加固建议: 使用root切换到re…

Docker - 企业项目

Docker - 企业项目 因为环境原因&#xff0c;本章本人没有实际操作&#xff0c;以理论为主 容器单独没有什么意义&#xff0c;有意义的是容器的编排 Docker 4台&#xff1a;1核2G的ECS K8s 9台&#xff1a;2核4G的ECS Docker Compose Docker Swarm # manager节点初始化sw…

快照snapshot要点记录

目录 COW快照ROW快照 snapshot&#xff1a;快照 快照分为&#xff1a;COW快照、ROW快照 COW&#xff1a;Copy On Write 指写前复制技术 ROW&#xff1a;Redirect On Write 指写时重定向技术 COW快照 性能无法达到最高&#xff0c;因为每次都要与COW共享映射表进行比对。存储中…

不使用宝塔面板 安装 EasyImage 简单图床

发布于 2023-07-17 在 https://chenhaotian.top/linux-app/easy-image/ 前言 如果不希望安装宝塔面板或其国际版 aapanel&#xff08;尽管宝塔面板可以在安装后关闭&#xff09;&#xff0c;那么可以参考这篇文章。 本文安装环境为 Debian 11, 在 Ubuntu 20.04 测试通过 安…

AK F.*ing leetcode 流浪计划之半平面求交

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 本期话题&#xff1a;半平面求交 背景知识 学习资料 视频讲解 https://www.bilibili.com/video/BV1jL411C7Ct/?spm_id_from333.1007.top_right_bar_window_history…

如何解决python2和Python3共存的问题

需要对python2和python3都设置环境变量 需要修改Python编译器的名字&#xff1a;需要将默认的Python编辑器的名称进行修改。 修改Python2安装目录下&#xff1a;python.exe修改为python2.exe&#xff0c;pythonw.exe修改为pythonw2.exe 修改Python3安装目录下&#xff1a;pyt…

10-18 请求与相应1

前后台联调 前台通过一个表单, action写的servlet绑定的url,提交表单,请求我们servlet的doGet()/ doPost()方法 问题: 1.后台怎么获取前端的提交,请求的数据?底层:TCP通信,socket的得到输入流,读取数据 2.后台处理请求之后,怎么把结果给到前端?底层:TCP通信,socket的得到输入…

冲击900亿美元估值!邀约路演、秘密交表的Shein上市有望

双十一的狂欢刚刚结束&#xff0c;Shein即将赴美上市的消息又在电商圈里投下一枚重磅炸弹。 继被媒体曝光其寻求900亿美金估值后&#xff0c;最新的消息称其已邀请投资人参与路演&#xff0c;且已秘密完成交表。这个神秘的中国独角兽&#xff0c;离敲钟登陆美股的日子越来越近…

许战海方法论新成果《全球产业技术品牌竞争战略》研究报告正式发布

在全球化趋势下&#xff0c;产业技术正在加速迭代、产业结构也在持续优化。企业要想从愈发激烈的市场竞争中脱颖而出&#xff0c;需要更强大的竞争力。 在全球产业研究项目中&#xff0c;许战海咨询深入剖析了潍柴动力、利乐、奥迪、霍尼韦尔等一众在产业竞争中脱颖而出的企业…