使用AWS Glue和Apache Avro进行架构更改

时间:2018-02-09 20:58:01

标签: amazon-web-services amazon-s3 avro aws-glue

我是AWS Glue的新手,我很难完全理解AWS文档,但我正在努力解决以下用例:

我们有一个带有许多Avro文件的s3存储桶。我们已经决定使用Avro,因为它可以对数据模式的更改进行广泛的支持,允许将新字段应用于旧数据,而不会出现任何问题。

使用AWS Glue,我了解只要存在架构更改,爬虫就会创建一个新表。当我们的模式发生变化时,这会导致爬虫程序按照预期创建许多新表,但不是我们想要的......

最终,我们希望抓取工具检测最新的架构,并将此架构应用于我们在s3存储桶中抓取的所有数据,只输出一个表。我们(可能错误地)假设通过使用Avro,这不会是一个问题,因为爬虫可以将具有给定默认值或空值的新架构字段应用于旧数据(使用Avro的好处),并且仅输出一个表然后我们可以使用AWS Athena进行查询。

AWS Glue中是否有一种方法可以为s3存储桶中的所有数据使用给定的模式,使我们能够利用模式演变的Avro优势,以便将所有数据输出到一个表中?

1 个答案:

答案 0 :(得分:1)

我还没有专门处理Avro文件,但是AWS Glue允许您以几种方式配置搜寻器。

如果创建新的搜寻器,则会在“配置搜寻器的输出” 部分下提示您一些选项。

根据您的情况,我认为您需要勾选Update all new and existing partitions with metadata from the table.

这是子菜单的样子。

glue-crawler