数据流的数据测试框架(deequ vs Great Expectations)

And*_*tog 1 python qa great-expectations amazon-deequ

我想在我的管道中引入数据质量测试(空字段/最大-最小值/正则表达式等...),这将在数据登录到数据库之前消耗 kafta 主题测试数据。

我很难在 Deequ 和远大前程框架之间做出选择。Deequ 缺乏清晰的文档,但具有“异常检测”功能,可以将以前的扫描与当前的扫描进行比较。伟大的期望有非常好的和清晰的文档,因此开销更少。我认为这些框架都不是专门为数据流而设计的。

任何人都可以提供一些建议/其他框架建议吗?

Phi*_*ipp 8

您可以对数据进行小批量处理,并对每个批次单独应用数据质量验证。此外,deequ 允许对数据质量指标进行状态计算,正如 James 已经指出的那样,指标是在两个数据分区上计算的,然后合并。您可以在这里找到 deequ 的示例。

是否有 deequ 文档中未涵盖的具体示例?您可以在此处找到针对 Spark Dataframe 运行 deequ 的基本示例。此外,同一文件夹中还有更多示例,例如异常检测用例。

免责声明:我是 deequ 的作者之一。


Jam*_*mes 5

正如 Philipp 所观察到的,在大多数情况下,某种批次是将测试应用于流数据的好方法(即使 Spark Streaming 也有效地使用了“小批量”系统)。

也就是说:如果您需要使用流算法来计算验证所需的指标(例如,保持对观察数据的运行计数),则可以将您的目标指标分解为“状态”和“更新”部分,其中可以是“最后一个”和“当前”批次的属性(即使每个批次只有一个记录)。改进对这种跨批次指标的支持实际上是我们现在在远大期望中最积极努力的领域!

通过这种方式,我认为 Batch 的概念既深入到验证内容的核心概念中,又足够灵活以在流媒体系统中工作。

免责声明:我是远大前程的作者之一。(堆栈溢出警报!:))