首页 > 解决方案 > AWS Glue Crawler S3 包含/排除模式

问题描述

我无法描述 S3 存储桶中 .csv 文件的路径以构建 AWS Glue 表以使用 AWS Athens 进行查询。

数据文件的路径为:

/bucket-name/YYYY/MM/DD/CC/CC-YYYY-MM-DD.csv

e.g.: 
/bucket-name/2019/01/01/AR/AR-2019-01-01.csv
/bucket-name/2019/01/01/TR/TR-2019-01-01.csv
...
/bucket-name/2019/01/02/AR/AR-2019-01-02.csv
/bucket-name/2019/01/02/TR/TR-2019-01-02.csv
...

其中 YYYY、MM 和 DD 是日期元素,CC 是国家代码。

其中,我只想选择特定国家的文件来建表。

这些文件夹还包含表单中的临时文件

/bucket-name/YYYY/MM/DD/CC/hhmm.csv
e.g. 
/bucket-name/2019/01/01/AR/0001.csv
/bucket-name/2019/01/01/AR/0002.csv
/bucket-name/2019/01/01/TR/0001.csv
/bucket-name/2019/01/01/TR/0002.csv
...

我想从 Glue 表中排除。

我尝试在包含路径中使用 glob 模式,以便:

s3://bucket-name/2019/??/??/TR/TR-*.csv

爬虫运行8分钟后没有创建表!对于一个小数据集。

在得出包含路径中不允许使用 glob 模式的结论后,我尝试使用带否定的排除模式来指定包含模式:

include path: s3://bucket-name/2019/
exclude patterns: [!-TR]

这没有按预期工作:

所以;

包含路径中是否不允许使用 glob 模式?

如果没有,我怎样才能用排除模式实现同样的目标?

任何帮助深表感谢。

标签: amazon-s3globamazon-athenaaws-glue

解决方案


推荐阅读