Amazon web services 胶水-书签不';无法识别较新分区中的文件
我有一个胶水作业,从一个S3存储桶读取数据,进行转换,并将结果上传到另一个S3存储桶中 下面是myAmazon web services 胶水-书签不';无法识别较新分区中的文件,amazon-web-services,amazon-s3,aws-glue,aws-glue-data-catalog,aws-glue-spark,Amazon Web Services,Amazon S3,Aws Glue,Aws Glue Data Catalog,Aws Glue Spark,我有一个胶水作业,从一个S3存储桶读取数据,进行转换,并将结果上传到另一个S3存储桶中 下面是myaws glue get job书签——job name xx返回的内容 JobBookmark": "{\"datasource0\":{\"jsonClass\":\"HadoopDataSourceJobBookmarkState\",\"timestamps\":{\"RUN\&qu
aws glue get job书签——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
感谢您的阅读。这是因为glue在我们将其添加到Athena之前对更新的分区一无所知。我们可以修复该表,或者在较新的文件夹($$)上再次运行爬虫程序,或者更改该表并添加分区。选项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中还不存在这样的分区
但这有点违反直觉。希望AWS能够解决这个问题,所以我们不需要对类似的用例采取任何行动