FileMatch
FileMatch 规则允许您将文件与其他文件或校验和进行比较。这可能在一些方案中非常有用:
-
验证从外部来源接收的文件:您可以使用 FileMatch 通过与校验和进行比较,确保从外部来源接收正确的文件。这有助于验证您所摄取数据的完整性。
-
比较两个不同文件夹中的数据:FileMatch 可用于比较两个文件夹之间的文件。
请注意,与其他规则不同,FileMatch 不会收集任何数据统计信息。
使用校验和验证文件:
FileMatch 接受一个文件和一组校验和,以确保至少有一个校验和与该文件匹配。
FileMatch "s3://bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "MD5" FileMatch "s3://bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-1" FileMatch "s3://bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-256" FileMatch "s3://bucket/file.json" in ["3ee0d8617ac041793154713e5ef8f319"]
支持下列标准算法:
-
MD5
-
SHA-1
-
SHA-256
如果您不提供算法,则默认为 SHA-256。
使用一组校验和验证文件夹中的所有文件:
FileMatch "s3://bucket/" in ["3ee0d8617ac041793154713e5ef8f319", "7e8617ac041793154713e5ef8f319"] with hashAlgorithm = "MD5" FileMatch "s3://bucket/internal-folder/" in ["3ee0d8617ac041793154713e5ef8f319", "7e8617ac041793154713e5ef8f319"]
比较不同文件夹中的文件
FileMatch "s3://original_bucket/" "s3://archive_bucket/" FileMatch "s3://original_bucket/internal-folder/" "s3://original_bucket/other-folder/"
FileMatch 将检查 original_bucket
中文件的内容,并确保其与 archive_bucket
中的内容相匹配。如果不完全匹配,则该规则将失效。它还可以检查内部文件夹或单个文件的内容。
FileMatch 还可以相互检查各个文件。
FileMatch "s3://bucket/file_old.json" "s3://bucket/file_new.json"
直接从数据帧推断文件名
您不必总是提供文件路径。例如,当您在 AWS Glue Data Catalog(由 Amazon S3 支持)中编写规则时,可能很难找到目录表使用的文件夹。AWSGlue 数据质量自动监测功能可以找到用于填充数据帧的特定文件夹或文件。
FileMatch in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "MD5" FileMatch in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-1" FileMatch in ["3ee0d8617ac041793154713e5ef8f319"] with hashAlgorithm = "SHA-256" FileMatch in ["3ee0d8617ac041793154713e5ef8f319"]
如果提供的校验和与计算的校验和不同,则 FileMatch 将提醒您注意差异。
有几个注意事项:
-
在 AWS Glue ETL 中,您必须在 Amazon S3 或 AWS Glue Data Catalog 转换之后立即进行 EvaluateDataQuality 转换。
-
此规则在 AWS Glue 交互式会话中不起作用。