AWS Glue Crawler可以使用grok模式正则表达式来定义相同文件格式的不同模式。下面是一个示例:
{
"Version": "1.0",
"Crawler": {
"Name": "my_crawler",
"Role": "AWSGlueServiceRoleDefault",
"Targets": {
"S3Targets": [
{
"Path": "s3://my-bucket/my-path",
"Exclusions": [
"my-folder/*"
]
}
]
},
"SchemaChangePolicy": {
"UpdateBehavior": "UPDATE_IN_DATABASE",
"DeleteBehavior": "LOG"
},
"TablePrefix": "my_prefix_",
"SchemaDefinition": {
"SchemaId": {
"SchemaArn": "arn:aws:glue:us-west-2:012345678901:schema/my_schema",
"SchemaName": "my_schema",
"RegistryName": "my_registry"
},
"SchemaVersionNumber": "1.0"
},
"Configuration": "{\"Version\":1.0,\"Grouping\":{\"TableGrouping\":{\"Criteria\":[{\"Field\":\"path\",\"Type\":\"begin_with\",\"Value\":\"s3:/my-bucket/my-path\"}]}}}"
}
}
此示例使用grok模式正则表达式定义了一个S3路径,并指示AWS Glue Crawler在此路径下搜索所有文件。然后,对于每个文件,它使用正则表达式来定义模式。这允许AWS Glue Crawler在处理多个文件时使用不同的模式。
将此示例中SchemaDefinition部分的值更改为您项目的特定值,并在AWS Glue Crawler控制台中使用JSON配置。