[英]Hive table re-create before load every date
我看到应用程序正在删除外部表并再次创建然后加载数据并在每次数据加载时运行 msck 命令。每次删除和创建这有什么好处?
删除和重新创建EXTERNAL
表没有任何好处,因为删除表会使数据保持原样。
尽管删除和重新创建MANAGED
表可能有好处,因为它也会删除数据。
如果您在 S3 上运行,一种可能的情况是:
在加载完成之前提前删除文件,而不是在加载时删除文件可能会降低加载后 S3 中最终一致性问题的可能性。
首先,当文件删除时,您可能会在读取表时遇到 EC 问题(在删除后立即和一段时间内)。 提前删除文件将加速 S3 同步。
其次,如果您编写具有相同名称的文件(重写),最终的问题。 早期删除可能会有所帮助,但最好使用 guid 前缀(唯一)文件名或分区文件夹路径中的时间戳或其他一些类似的技术来解决这种问题(重写后的最终一致性)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.