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

问题描述 投票:0回答:1

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

hive loading
1个回答
0
投票

删除和重新创建EXTERNAL表没有任何好处,因为删除表会使数据保持不变。

尽管删除和重新创建MANAGED表可能会有好处,因为它也会删除数据。

如果在S3上运行,则可能是一种情况:

在加载完成之前提早删除文件,而不是在加载时删除文件,可以减少加载后S3中最终一致性问题的可能性。

首先,当文件删除时,读取表时可能会遇到EC问题(在删除后立即删除,并且在一段时间内)。提前删除文件将加快S3同步。

第二,如果使用相同名称写入文件(重写),最终会出现问题。尽早删除可能会有所帮助,尽管最好在分区文件夹路径中使用guid前缀(唯一)文件名或时间戳,或使用其他类似技术来解决此类问题(重写后最终保持一致)。

© www.soinside.com 2019 - 2024. All rights reserved.