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

Hive 在每个日期加载之前重新创建配置单元表,hive,loading,external-tables,Hive,Loading,External Tables,我看到应用程序正在删除外部表并再次创建,然后在每次加载数据时加载数据并运行msck命令。每次删除和创建时,这有什么好处 删除并重新创建EXTERNAL表没有任何好处,因为删除表会保留完整的数据 尽管删除并重新创建托管的表可能有好处,因为它也会删除数据 如果您在S3上运行,一种可能的情况是: 在加载完成之前而不是加载时尽早删除文件可能会降低加载后S3中最终出现一致性问题的可能性 首先,当文件被删除时,您在读取表时可能会遇到EC问题(删除后立即和一段时间内)。文件的早期删除将加快S3的同步 第二,如

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

删除并重新创建
EXTERNAL
表没有任何好处,因为删除表会保留完整的数据

尽管删除并重新创建
托管的
表可能有好处,因为它也会删除数据

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

在加载完成之前而不是加载时尽早删除文件可能会降低加载后S3中最终出现一致性问题的可能性

首先,当文件被删除时,您在读取表时可能会遇到EC问题(删除后立即和一段时间内)。文件的早期删除将加快S3的同步

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