在每个日期加载之前重新创建配置单元表

xkrw2x1b  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(384)

我看到应用程序正在删除外部表并再次创建,然后加载数据并在每次加载数据时运行msck命令..每次删除和创建时这样做的好处是什么?

1dkrff03

1dkrff031#

丢弃和重新创建没有任何好处 EXTERNAL 表,因为删除表会保留完整的数据。
尽管放弃和重新创造可能有好处 MANAGED 表,因为它也会删除数据。
如果您在s3上运行,一种可能的情况是:
在加载完成之前(而不是在加载时)尽早删除文件可能会降低在加载后s3中最终出现一致性问题的可能性。
首先,当文件被删除时,您在读取表时可能会遇到ec问题(删除后立即和一段时间内)。文件的早期删除将加速s3的同步。
第二,如果您使用相同的名称编写文件(重写),最终会出现问题。早期删除可能会有所帮助,不过最好在分区文件夹路径中使用以guid为前缀的(唯一的)文件名或时间戳,或者使用其他类似技术来解决这类问题(重写后的最终一致性)。

相关问题