当前位置: 首页 > 知识库问答 >
问题:

在模式更改中使用AWS Glue和Apache Avro

夏雅志
2023-03-14

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

我们有一个包含许多Avro文件的s3存储桶。我们决定使用Avro,因为它具有对数据架构更改的广泛支持,允许将新字段毫无问题地应用于旧数据。

有了AWS Glue,我知道每当模式发生变化时,爬虫就会创建一个新表。当我们的模式发生变化时,这导致爬虫程序按预期创建了许多新表,但并不像我们期望的那样。。。

最后,我们希望爬行器检测最新的模式,并将该模式应用于我们在s3存储桶中爬行的所有数据,只输出一个表。我们曾经(也许是错误的)假设,通过使用Avro,这不会是一个问题,因为爬行器可以将具有给定默认值或null值的新模式字段应用于旧数据(使用Avro的好处),并且只输出一个表,然后我们可以使用AWS Athena进行查询。

AWS Glue中有没有一种方法可以为s3 bucket中的所有数据使用给定的模式,使我们能够利用模式演进的Avro优势,从而将所有数据输出到一个表中?

共有1个答案

秦斌
2023-03-14

我还没有专门使用Avro文件,但AWS Glue允许您以多种方式配置爬网程序。

如果您创建了一个新的爬虫程序,则在“配置爬虫程序的输出”部分下会提示您一些选项。

根据您的情况,我认为您需要勾选“使用表中的元数据更新所有新分区和现有分区”框。

这就是子菜单的样子。

 类似资料:
  • 我想更改数据库中< code>Employees表的模式名。当前表中的< code>Employees数据库模式名为< code>dbo,我想将其更改为< code>exe。我该怎么做? 例子: 从 收件人 我尝试了这个查询: 但是这给了我一个错误: 无法更改架构“exe”,因为它不存在或您没有权限。 我错过了什么?

  • 更新视图时,间接模式更改似乎不会被拾取。 使用字段 创建视图 (例如) 创建,从 中选择所有字段 更新 以包括(例如) 使用与以前相同的查询更新 (由于记录的限制) 和,包括和 视图更新应该是原子的 < li >正确更新了< code >视图1的模式(包括< code >字段1和< code >字段2) < Li > < code > view 2 的模式仅包括< code>field1 < li

  • 使用avro的Kafka模式管理为我们提供了向后兼容性的灵活性,但我们如何处理方案中的突破性更改? 假设生产者A向消费者C发布消息M 假设消息M的方案发生了重大变化(例如名称字段现在被拆分为名字和姓氏),我们有了新方案M-new 现在我们正在部署producer A-New和Consumer C-New 问题是,在我们的部署过程完成之前,我们可以让生产者发布一条新消息M-new,消费者C(旧的那个

  • 我正在使用Android和ORMLite。我是新手,正在将数据库升级到版本2。我有“Auto”类,需要删除列别名。 我将类Auto更改为... 我需要知道在执行“onUpgradeMethod”时,ORMLite是否会自动删除列别名,或者我必须手动这样做。

  • 问题内容: 我正在编写一个数据处理代码,在其中创建一个新文件,将处理后的数据写入该文件并关闭。但是该文件必须以只读模式关闭,以免被意外修改。可以用Python完成吗? 问题答案: 为此,您使用 请注意,这假设您具有适当的权限,并且您不仅仅希望拥有者能够读取文件。如果不是这种情况,请删除并酌情删除。 更新 如果您需要使文件再次可写,则只需这样调用: 在打开要写入的文件之前,只需调用此方法,然后在完成

  • 我正在寻找一种通过改变散列来改变部分样式的方法。让我以一个例子来解释: > 当前URL为: 然后单击复选框,URL将更改为: 我想更改类的。 我尝试了以下代码,但它不起作用: 实际上,每次哈希更改时,控制台中都不会出现任何内容。