本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
指定 Crawler 允许创建的最大表数
您可以选择TableThreshold
通过 AWS Glue控制台或CLI指定,来指定允许爬虫创建的最大表数。如果爬网程序在其爬取过程中检测到的表数大于此输入值,则爬取失败且不会向 Data Catalog 写入任何数据。
当爬网程序检测和创建的表数比预期表数要大得多时,此参数非常有用。这可能有多种原因,例如:
使用 AWS Glue 任务填充您的 Amazon S3 位置时,您最终可能会看到与文件夹处于同一级别的空文件。在这种情况下,当您在此 Amazon S3 位置运行爬网程序时,由于文件和文件夹位于同一级别,爬网程序会创建多个表。
如果没有配置
"TableGroupingPolicy": "CombineCompatibleSchemas"
,您最终得到的表数可能比预期数量多。
您可以将 TableThreshold
指定为一个大于 0 的整数值。该值根据每个爬网程序进行配置。也就是说,每次爬取都会考虑该值。例如:爬网程序的 TableThreshold
值设置为 5。在每次抓取中,都会将检测到的表数目与该表的阈值 (5) 进行比 AWS Glue 较,如果检测到的表数小于 5,则 AWS Glue 将这些表写入数据目录,如果没有,则在不写入数据目录的情况下,抓取就会失败。
控制台
要TableThreshold
使用 AWS 控制台进行设置,请执行以下操作:
CLI
要TableThreshold
使用以下方法进行设置 AWS CLI:
"{"Version":1.0, "CrawlerOutput": {"Tables":{"AddOrUpdateBehavior":"MergeNewColumns", "TableThreshold":5}}}";
记录错误消息以帮助您识别表路径和清理数据。爬网程序因表数大于提供的表阈值而失败时您账户中的日志示例:
Table Threshold value = 28, Tables detected - 29
在中 CloudWatch,我们将检测到的所有表格位置记录为一条INFO消息。将错误记录为失败原因。
ERROR com.amazonaws.services.glue.customerLogs.CustomerLogService - CustomerLogService received CustomerFacingException with message The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. Failing crawler without writing to Data Catalog. com.amazonaws.services.glue.exceptions.CustomerFacingInternalException: The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. Failing crawler without writing to Data Catalog.