当我使用内置分类器解析固定宽度的 .dat 文件时,我的 AWS Glue 爬网程序将该文件归类为“未知”。
简短描述
内置分类器无法解析固定宽度的数据文件。请改用 grok 自定义分类器。
解决方法
创建 grok 自定义分类器
1. 打开 AWS Glue 控制台。
2. 在导航窗格中,选择分类器。
3. 选择添加分类器,然后输入以下内容:
在分类器名称中输入唯一名称。
对于分类器类型,请选择 Grok。
对于分类,请输入对分类数据的格式或类型的说明,例如“special-logs”。
对于 Grok 模式,请输入您希望 AWS Glue 用于在数据中查找匹配项的内置模式。要解析 .dat 文件,字段之间不需要分隔符。由于每个字段都具有已知长度,因此您可以使用正则表达式模式来查找匹配项。
例如:
(?<col0>.{7})(?<col1>.{8})(?<col2>.{14})(?<col3>.{52})
(可选)对于自定义模式,请输入要使用的任何自定义模式。这些模式由对数据进行分类的 grok 模式引用。每个自定义模式必须位于单独的行上。有关更多信息,请参阅 AWS Glue 中的自定义分类器值。
4. 选择 Create(创建)。
创建并运行爬网程序
1. 在导航窗格中,选择爬网程序。
2. 选择添加爬网程序。
3. 对于爬网程序名称,请输入唯一名称。
4. 选择标签、说明、安全配置和分类器 (可选) 部分旁边的箭头,然后找到自定义分类器部分。
5. 选择您之前创建的客户分类器旁边的添加,然后选择下一步。
6. 在指定爬网程序源类型页面上,选择数据存储,然后选择下一步。
7. 在添加数据存储页面上,输入以下内容:
对于选择数据存储,请选择首选数据存储。
对于包含路径,请输入您的 .dat 文件的路径。
8. 选择下一步,然后确认是否要添加另一个数据存储。
9. 在选择 IAM 角色页面上,选择现有 AWS Identity and Access Management (IAM) 角色或创建新角色。选择下一步。
10. 对于频率,请选择按需运行,然后选择下一步。
11. 在配置爬网程序的输出页面上,对于数据库,选择要在其中创建表的数据库。选择下一步。
12. 选择完成以创建爬网程序。
13. 当爬网程序状态更改为就绪时,选中爬网程序名称,然后选择运行爬网程序。
14. 等待爬网程序完成,然后在导航窗格中选择表。该分类须与您为 grok 自定义分类器输入的分类相匹配(例如,“special-logs”)。
相关信息
在 AWS Glue 控制台上使用分类器
编写 Grok 自定义分类器
向爬网程序中添加分类器