我看到应用程序正在删除外部表并再次创建,然后每次加载数据时都加载数据并运行msck命令。每次删除和创建此功能有什么好处?
nhzjc 回答:配置单元表在每个日期加载前重新创建
删除和重新创建EXTERNAL
表没有任何好处,因为删除表会使数据保持不变。
尽管删除和重新创建MANAGED
表可能会有好处,因为它也会删除数据。
如果在S3上运行,则可能是一种情况:
在加载完成之前提早删除文件,而不是在加载时删除文件,可以减少加载后S3最终出现一致性问题的可能性。
首先,当文件删除时,您在读取表时可能会遇到EC问题(在删除后以及一段时间内)。提前删除文件将加快S3同步。
第二,如果写入具有相同名称的文件(重写),最终会出现问题。尽早删除可能会有所帮助,尽管最好在分区文件夹路径中使用guid前缀(唯一)文件名或时间戳,或使用其他类似技术来解决此类问题(重写后最终保持一致)。