AWS Glue Crawler S3包含/排除模式

时间:2019-09-03 14:41:24

标签: amazon-s3 glob amazon-athena aws-glue

我无法描述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
...
我要从胶水表中排除的

我试图在包含路径中使用全局模式,例如:

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

搜寻器运行8分钟后未创建任何表!对于一个小的数据集。

在确定包含路径中不允许使用全局模式后,我尝试使用带否定的排除模式来指定包含模式:

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

这没有按预期进行:

  • 结果的确包含了T国家,而不仅仅是TR
  • 不排除格式... / 0001.csv的临时文件(我希望是这样,因为[!-]排除模式)
  • 它创建了单独的文件,尽管我已指定“创建 每个S3路径都有一个单一的架构”选项
  • 创建一些表后,该过程退出并显示“内部服务异常”
  • 这些表在Athena预览中不返回任何数据,尽管Glue表详细说明了其中有对象

所以;

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

如果没有,如何使用排除模式实现相同的目的?

非常感谢您的帮助。

0 个答案:

没有答案