python - 数据流的数据测试框架(deequ vs Great Expectations)
问题描述
我想在我的管道中引入数据质量测试(空字段/最大值/最小值/正则表达式/等...),这基本上会在数据登录到数据库之前消耗 kafta 主题测试数据。
我很难在 Deequ 和 Great Expectations 框架之间做出选择。Deequ 缺乏明确的文档,但具有“异常检测”,可以将以前的扫描与当前扫描进行比较。远大的期望具有非常好的和清晰的文档,因此开销更少。我认为这些框架都不是专门为数据流设计的。
谁能提供一些建议/其他框架建议?
解决方案
正如 Philipp 所观察到的,在大多数情况下,某种批次是对流数据应用测试的好方法(甚至 Spark Streaming 也有效地使用了“小批量”系统)。
也就是说:如果您需要使用流式算法来计算验证所需的指标(例如,维护观察数据的运行计数),则可以将目标指标分解为“状态”和“更新”部分,其中可以是“最后”和“当前”批次的属性(即使每个批次只有一个记录)。改进对这种跨批次指标的支持实际上是我们现在在 Great Expectations 中最积极努力的领域!
这样,我认为 Batch 的概念既深深植根于得到验证的核心概念中,又足够灵活地在流系统中工作。
免责声明:我是《远大前程》的作者之一。(堆栈溢出警报!:))
推荐阅读
- rdbms - 是第二范式吗?
- android - 如何仅在颤动中在特定屏幕上显示横幅广告
- docker - Kubernetes:在同一个端口上运行的微服务?
- r - “句子”向量是如何制作的?(创建字符串向量)
- c++ - 如何在 C++20 chrono 中为日期添加天数?
- docker - 尝试在 Fedora Coreos 上使用 docker-compose 运行 docker nginx 映像,13:权限被拒绝
- mysql - MySQL:为什么这两个是错的?(组函数使用无效,使用have()后什么都不选)
- amazon-web-services - 附加到 EC2 的 AWS 角色在用于 statSd 时引发错误
- python - 为什么即使在 SageMaker 中成功执行了生命周期脚本,包也没有更新?
- swiftui - SwiftUI:为什么 UIHostingController(rootView:) 可以传递 nil 值?