【问题标题】:Add columns to AWS Athena paquet tables向 AWS Athena paquet 表添加列
【发布时间】:2021-07-20 16:02:57
【问题描述】:

我根据每日 csv 原始数据构建了一个 Athena parquet 版本。 到目前为止,我在 parquet 结构中拥有大约 6TB 的数据。

由于原始数据文件已更改,在每日导出中添加了几列,因此我需要在“Athena 架构”中再添加几列。

哪种方法最有效?另外,没有该列的历史数据如何处理?

最简单的方法是添加一个新表,但我更喜欢保持类似 db 的结构。

提前致谢

【问题讨论】:

  • 你的表分区了吗?如果是,您会在每个查询中对分区列应用过滤器吗?

标签: parquet amazon-athena alter-table


【解决方案1】:

在 Athena 中,表只是元数据,删除表会保留数据。可以通过删除表并使用新架构创建一个新表来更改表架构 - 不会损害任何数据。

Athena 使用 Parquet 的方式是,它按名称将表架构中的列映射到文件中的列,如果文件中不存在列,Athena 会将其视为全部为 NULL。

使用这两个事实,您可以使用新架构重新创建表,您会没事的。如果您想先测试它是否有效,请使用新架构创建一个新表并运行一些查询,然后删除这两个表并使用原始名称重新创建表。

有一种方法可以在不删除表的情况下执行此操作,但需要直接使用 Glue 数据目录 API,请参阅 UpdateTable。 Athena 没有任何等效操作,您不能更改或重命名表。

【讨论】:

    猜你喜欢
    • 2021-08-08
    • 2021-05-16
    • 2021-07-28
    • 2021-10-04
    • 1970-01-01
    • 2021-12-22
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多