总部位于新加坡的数字化服务平台Grab,在其内部数据平台Coban中增加了数据质量监控功能,以提升通过 Apache Kafka 传递给下游消费者的数据质量。该公司的工程团队在博客中分享了这一改进。
在过去,针对Kafka流数据处理的监控缺乏有效的数据质量验证方案。这使得团队难以识别不良数据、及时通知用户,并阻止其对下游用户产生的级联影响进一步升级。
Grab遇到的数据错误主要分为两类:语法错误和语义错误。语法错误由消息结构问题导致。例如,生产者可能为模式中定义为整型的字段发送一个字符串值,这将导致消费者应用程序因反序列化错误而崩溃。语义错误则发生在消息中的数据值结构不良或超出可接受范围时。一个user_id字段可能是一个有效的字符串(语法正确),但如果它不符合公司预期的“usr-{8位数字}”格式,则违反了语义规则。
为解决此问题,Grab的工程团队实施了一套新的架构,支持数据契约定义、自动化测试和数据质量告警。该系统的核心是一个测试配置与转换引擎。
该引擎将主题数据模式、元数据和测试规则作为输入,创建一组基于FlinkSQL的测试定义。随后,一个Flink作业会执行这些测试,消费来自生产环境的Kafka主题消息,并将任何错误转发至Grab的观测平台。选择FlinkSQL的原因是,其将流数据表示为动态表的能力,使得团队能够为可高效实施的规则自动生成数据过滤器。
为了简化定义成百上千个字段特定规则这一可能令人望而却步的任务,该平台利用了一个大型语言模型(LLM)来分析Kafka流模式和匿名化的样本数据,从而推荐潜在的语义测试规则。这一特性极大地加速了配置过程,并帮助用户识别那些不那么明显的数据质量约束。
该系统于今年早些时候部署,现已对超过100个关键Kafka主题的数据质量进行主动监控。团队报告称,“该解决方案提供了立即识别并阻止无效数据在多个数据流中传播的能力……这加速了问题诊断和解决的过程,使用户能够迅速应对生产数据挑战。”
此方法符合行业最佳实践,而这类实践目前仍属罕见。根据Confluent最近的《2025年数据流报告》,估计仅有约1%的公司达到了最高成熟度水平,即“数据流作为战略推动者,其流数据被作为产品进行管理”。通过实施这种主动的、基于契约的 数据质量监控,Grab将其数据流视为面向内部用户的可靠产品。
Grab对其平台的增强,是行业更广泛趋势的一部分,即在数据管道中增加可观测性。这一领域正涌现出新的初创公司,并伴随着对实时数据质量指标的学术研究。
|