重新加载Athena表分区是一项昂贵的操作吗?

时间:2018-03-02 20:50:15

标签: amazon-web-services amazon-athena

我的代码当前运行CREATE EXTERNAL TABLE IF NOT EXISTS <table> ...,然后在该表上执行MSCK REPAIR <table>操作以加载分区。我每次都运行此序列,而不检查表是否已存在或者分区是否已更改。

这个流程计划在每晚运行,而我正在处理的表格没有大量数据(至少目前为止)。所以我的问题是,我应该优化我的查询调用,只有在分区发生变化时才重新加载分区,或者我是否可以盲目地调用CREATE TABLEMSCK REPAIR

1 个答案:

答案 0 :(得分:1)

如果分区数量不断增加,那么DROP TABLEMSCK REPAIR TABLE将花费更多时间。

如果您的S3位置包含大量文件(而不是ALTER TABLE table-name ADD PARTITION IF NOT EXIST(some-column=value) LOCATION 's3-partition-location'命令),最好创建一次表并考虑添加MSCK