Athena 仅更新特定分区:MSCK REPAIR TABLE
Athena update only specific partition : MSCK REPAIR TABLE
我有一个外部 table 数据按日期分区。数据每天都会针对当天的新文件集进行更新。这就是我在气流中执行作业的方式。
- 获取文件。这会在 S3 上获取类似 dt=2018-06-20 的文件。
- 通过 dt 创建指向 S3 位置分区的外部 table。
- 运行 MSCK REPAIR TABLE 命令更新分区。
有没有办法调用上面的命令只对当天添加的新文件进行操作所以基本上如果我得到一个 dt=2018-06-21 的文件,我只能更新那个分区.
谢谢!
您可以手动添加分区 - 这是来自 Athena manual 的示例:
ALTER TABLE orders ADD
PARTITION (dt = '2016-05-14', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_14_May_2016'
PARTITION (dt = '2016-05-15', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_15_May_2016';
我有一个外部 table 数据按日期分区。数据每天都会针对当天的新文件集进行更新。这就是我在气流中执行作业的方式。
- 获取文件。这会在 S3 上获取类似 dt=2018-06-20 的文件。
- 通过 dt 创建指向 S3 位置分区的外部 table。
- 运行 MSCK REPAIR TABLE 命令更新分区。
有没有办法调用上面的命令只对当天添加的新文件进行操作所以基本上如果我得到一个 dt=2018-06-21 的文件,我只能更新那个分区.
谢谢!
您可以手动添加分区 - 这是来自 Athena manual 的示例:
ALTER TABLE orders ADD
PARTITION (dt = '2016-05-14', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_14_May_2016'
PARTITION (dt = '2016-05-15', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_15_May_2016';