AWS Glue - boto3 爬虫未创建表

Posted

技术标签:

【中文标题】AWS Glue - boto3 爬虫未创建表【英文标题】:AWS Glue - boto3 crawler not creating table 【发布时间】:2019-06-07 15:12:49 【问题描述】:

我正在尝试通过 boto3 库创建和运行 AWS 胶水爬虫。爬虫正在处理 s3 文件夹中的 JSON 文件。爬虫成功完成,当我检查日志时没有错误,但它没有在我的胶水数据库中创建任何表

这不是权限问题,因为我能够通过 CFT 创建相同的爬虫,并且当我运行它时,它会按预期创建表。我在使用 boto3 运行的代码中使用与 CFT 相同的角色来创建它。

已尝试使用 boto3 create_crawler() 和 run_crawler()。尝试在从 CFT 创建的爬虫上使用 boto3 update_crawler() 并更新 s3 目标路径。

 response = glue.create_crawler(
        Name='my-crawler',
        Role='my-role-arn',
        DatabaseName='glue_database',
        Description='Crawler for generating table from s3 target',
        Targets=
            'S3Targets': [
                
                    'Path': s3_target
                
            ]
        ,
        SchemaChangePolicy=
            'UpdateBehavior': 'UPDATE_IN_DATABASE',
            'DeleteBehavior': 'LOG'
        ,
        TablePrefix=''
    )

【问题讨论】:

您能否再次检查与您的爬虫一起使用的角色 my-role-arn 的 IAM s3 权限。您还可以确认如果您在 AWS 控制台中使用相同的角色创建爬虫,它会创建一个表吗? 【参考方案1】:

您确定您在胶水客户端中传递了正确的区域(胶水对象创建)。

有一次我复制了代码而忘记更改区域并花了几个小时弄清楚为什么在没有错误的情况下它没有创建表。最终我发现该表是在另一个区域中创建的,因为我在将代码复制到新区域时忘记更改区域。

【讨论】:

以上是关于AWS Glue - boto3 爬虫未创建表的主要内容,如果未能解决你的问题,请参考以下文章

AWS Glue - 是不是使用爬虫

控制台中的 AWS Glue 控制列顺序

未执行 Aurora 目标的 AWS Glue Pre 和 Post 操作

爬虫可以更新 AWS Glue 中导入的表吗?

AWS Glue 无法从爬虫创建数据库:权限被拒绝

AWS Glue to Redshift:是否可以替换,更新或删除数据?