粘附 - 书签无法识别较新分区中的文件



我有一个粘贴作业,它从一个S3存储桶中读取数据,进行转换并将结果上传到另一个S3桶中。

以下是我的aws glue get-job-bookmark --job-name xx返回的

JobBookmark": "{"datasource0":{"jsonClass":"HadoopDataSourceJobBookmarkState","timestamps":{"RUN":"4","HIGH_BAND":"900000","CURR_LATEST_PARTITION":"1618957000000","CURR_LATEST_PARTITIONS":"s3://XXYY/2021/04/20/16/","CURR_RUN_START_TIME":"2021-04-20T22:43:19.304Z","INCLUDE_LIST":""}}}"

正如您所看到的,我的S3的结构为bucketname/yyyy/mm/dd/HH。上面显示了书签设置在前缀2021/04/20/16处。

现在,如果添加了另一个具有相同前缀的文件,则会对其进行处理。

然而,如果有一个更新的分区,比如2021/04/20/17,并且其中有一个文件,书签就不会拾取它。

我的脚本非常简单,大部分都是自动生成的,因为我只是在测试这个功能。

我的表的位置在最顶层被指定为S3://xxyy。

感谢阅读。

这是因为在我们将其添加到Athena中之前,glue很幸运地不知道更新的分区。我们可以修复该表,或者在较新的文件夹($$(上再次运行爬网程序,或者更改该表并添加分区。选项3最适用于不经常更改的模式。

alter table xxyy
add partition (partition_0=2021,partition_1=04,partition_2=21,partition_3=22)
location 's3://xxyy/2021/04/21/22/'

最棒的是我们可以";预填充";具有较新分区的表,即使S3中还不存在这样的分区。

最新更新