azure-data-factory - 数据集 ADF 与数据块的验证检查
问题描述
我想对收到的数据集执行一些文件级别、字段级别的验证检查。
下面给出了一些我想要执行的检查并将任何问题捕获到审计表中。
- 文件级别检查:文件存在、文件大小、记录计数与控制文件中存在的计数匹配
- 字段级别检查:正确格式的内容、重复键检查、重要字段的范围。
我想将此作为模板,以便所有项目都可以采用它,在 ADF 或 Databricks 中执行这些检查是否好。如果是 ADF,对示例数据流/管道的任何引用都会非常有帮助。
谢谢,库马尔
解决方案
你可以使用 Azure 数据工厂管道中的各种活动来完成这些任务。
要检查文件是否存在,您可以使用Validation Activity。
在验证活动中,您指定了几件事。dataset
您想要验证的存在,您sleep
想要在重试之间等待timeout
多长时间,以及在放弃和超时之前应该尝试多长时间。minimum size
是可选的。
请务必正确设置超时值。默认值为 7 天,对于大多数作业来说太长了。
如果找到该文件,则活动报告成功。如果找不到文件,或者文件小于最小大小,那么它可能会超时,这被依赖项视为失败。
要计算匹配记录并假设您使用的是 CSV,您可以创建一个通用数据集(一列)并在您想要计入临时文件夹的任何文件夹上运行复制活动。获取复制活动的行数并保存。最后,删除临时文件夹中的所有内容。
像这样的东西:
查找活动(获取您的基本文件夹列表 - 只是为了方便重新运行)
对于每个(基本文件夹)
递归复制到临时文件夹
存储 Copy Activity.output.rowsCopied 的存储过程活动
递归删除临时文件。
要对多个数据集重复使用同一管道,您可以使您的管道动态化。参考:https ://sqlitybi.com/how-to-build-dynamic-azure-data-factory-pipelines/
推荐阅读
- linux - 用于创建名称为日期戳的新目录的 Linux 脚本
- database - 在 docker compose 中多个 Docker 容器访问主机数据库
- git - 第一次 Git 推送被拒绝
- r - 正确的时间序列日期标签
- ehcache-3 - terracotta 开源在 ecache.xml 中不起作用 - terracotta:clustered-shared
- audit.net - 是否可以在上下文中配置所有内容?
- sql - postgres 9.2 按序数计算状态数
- ios - 在 Linux 上为 iOS 手动链接 React Native Library (FB SDK)
- python - 如何删除以python结尾的浮点数?
- html - HTML格式的问题