将列添加到 AWS Athena paquet 表

Add columns to AWS Athena paquet tables

我已经根据每日 csv 原始数据构建了一个 Athena parquet 版本。 到目前为止,我有大约 6TB 的镶木地板结构数据。

由于原始数据文件已更改,在每日导出中添加了几列,我需要向“Athena 模式”添加更多列。

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

最简单的方法是添加一个新的 table,但我更喜欢保持 db-like 结构不变。

提前致谢

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

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

根据这两个事实,您可以使用新架构重新创建 table,这样就没问题了。如果您想首先测试它是否有效,请使用新架构和 运行 创建一个新的 table 一些查询,然后删除两个 table 并重新创建 table原来的名字。

有一种方法可以不删除 table,但需要直接使用 Glue 数据目录 API,请参阅 UpdateTable。 Athena 没有任何等效操作,您不能更改或重命名 tables.