流或不流:数据质量版

为什么迁移到流处理时需要优先考虑数据质量.

这是一个自古以来就存在的争论(至少在数据工程中):是否要处理 数据的批量实时流数据

批量处理是久经考验的标准, 这仍然是企业吸收大量数据的一种流行和常见方式. 但是,当组织想要获得实时的洞察力时,批处理就不够了. 

这就是流处理填补空白的地方. 实时访问数据是改变游戏规则的关键, 对于那些依赖于不断更新数据的产品和服务来说,这可能会带来更高的投资回报.

也就是说,直到 质量 的数据受到影响,团队开始使用不准确的数据驱动决策. 因为当数据是实时流的, 出错的余地增大了, 对业务有不利影响. 

例如, 信用卡公司使用流处理技术实时监控信用卡交易,以检测客户消费习惯的异常——这使得他们能够在客户意识到问题之前检测出欺诈性购买. 如果数据不准确和不及时,欺诈检测可能会被延迟或完全错过.

另一个例子, 营销团队根据用户行为定位广告, 使用品牌产品之间实时流动的数据, 有证, 和广告平台. 对API的一个小模式更改可能会导致错误的数据, 导致公司超支, 错过了潜在的收入, 或者提供不相关的广告,造成糟糕的用户体验.

当糟糕的数据支持完美的管道时,这些场景只是冰山一角. 

那么,如何用流处理来解决数据质量问题呢?

老方法:数据质量流处理

传统上, 数据质量 通过测试强制执行:你们正在批量摄入数据,并期望数据在你们认为必要的间隔内到达(i.e.,每12小时或每24小时). 您的团队将根据他们对数据的假设编写测试, 覆盖了一些但不是全部的基地. 

一个新的数据质量错误将会出现,工程师将会急于进行 根本原因分析 在此问题影响下游表和用户之前. 数据工程师 最终会解决这个问题并编写一个测试来防止它再次发生吗.

随着 现代数据生态系统 在过去的十年里,随着公司吸收了几十到数百个内部和外部数据源,情况变得越来越复杂,传统的处理和测试方法开始显得越来越过时. 测试很难规模化, 正如推荐一个正规滚球网站在与数百个数据团队交谈后发现的那样, 只覆盖 20%的可能数据质量问题 -你已知的未知. 

在2010年代中期,当组织开始接受实时数据时 亚马逊运动, Apache卡夫卡, 火花流,以及其他工具,他们采用了同样的方法. 而这种向实时洞察的转变对商业来说是伟大的, 它为处理数据质量带来了一个全新的难题.  

如果确保批处理数据的可靠性是困难的, 想象一下,为每分钟或每秒变化的数据运行和扩展测试! 失踪, 不准确的, 或者后期油田可能会对下游系统产生不利影响, 而且无法实时捕获数据问题, 这种影响会在整个企业范围内放大. 

而传统的数据质量框架,如单元测试, 功能测试, 而集成测试可能涵盖了基本框架, 它们无法与难以预测的数据集一起扩展——而且这些数据集是实时变化的. 为了确保提供给这些实时用例的数据是可靠的, 在处理流处理时,数据团队需要重新考虑他们的数据质量方法.

一种用于流处理的数据质量新方法

实现高速高质量数据流的黄金标准, 一些最好的数据团队都在应用 数据可观测性.

数据可观察性是一个组织完全理解其生态系统中数据健康状况的能力. 它通过应用DevOps Observability最佳实践,通过自动监控消除数据停机, 报警, 并进行分类以识别和评估数据质量和可发现性问题, 让管道更健康, 更有效率的团队, 和更愉快的客户关系.

数据可观察性分为五大支柱:新鲜度, 分布, 体积, 模式, 与血统. 当放在一起, 这五个组件提供了对数据质量和可靠性的有价值的见解.

图片由Barr Moses提供.

那么,如何在流处理数据时应用数据可观察性的五大支柱呢?

  • 新鲜: Freshness旨在了解你的表格是如何更新的, 以及他们更新的节奏. 这对于流处理至关重要,因为数据需要随时准备好并实时可靠. 否则,可能会做出糟糕的决定,陈旧的数据会浪费时间和金钱. 数据可观察性有助于数据团队理解数据的新鲜度, 让您了解您正在流媒体的数据是如何更新的.
  • 地理分布: 分布度量数据是否在可接受的范围内. 在处理流数据方面, 这是至关重要的——在大多数业务用例中有太多的异常, 并且可能导致利益相关者对数据的不信任. 可观察性数据, 数据团队可以看到异常情况,并可以阻止它们继续向下工作.
  • 体积: 容量指的是数据表的完整性,并提供了对数据源健康状况的深入了解. 如果你正在处理数据流,突然10,000行变成了100行,000, 你知道出事了. 通过数据的可观察性,数据团队可以随时了解任何意外的容量变化.
  • 模式: 模式指的是数据组织中的变化,通常是破损数据的指示器. 流处理, 因为你从生态系统之外的第三方获取数据, 数据可观察性会提醒您注意任何意外的模式更改—使数据团队更了解传入数据的运行状况.
  • 血统当数据崩溃时,第一个问题总是“在哪里”?数据沿袭会告诉你哪些上游来源和下游摄食者受到了影响,从而提供了答案, 哪些团队正在生成数据, 谁在使用它. 通过应用数据的可观察性,数据团队可以理解他们的 数据流处理 在它们的生态系统中流动,导致更快 根本原因和影响分析 当响应数据事件时. 

数据可观察性包含了数据生态系统中的所有五个支柱, 从摄取到分析, 使其成为现代数据栈的必备层. 在流处理期间,数据进入您的生态系统的速度和复杂性, 可观察性有助于确保高质量的数据支持可靠的决策和更好的决策 数据产品.

未来的实时数据质量

流处理带来了巨大的责任. 然而,对于什么时候流处理或批处理有意义,并没有一个通用的答案, 数据质量仍然应该优先考虑,而不是事后考虑.

处理不准确的数据对数据工程师和业务利益相关者是有害的. 它浪费了工程时间,耗费了您的组织资金,并侵蚀了对数据的信任. 无论您的公司是否决定利用流处理, 确保有合适的框架来管理数据质量.

不管是不是流媒体,如果你不相信它,你的数据就没有多大价值. 


有兴趣学习更多关于实时数据的数据可观察性? 接触 斯科特·奥利里可以玩滚球的正规app队的其他队员.