hive中的concatenate in alter table命令是如何工作的

7nbnzgx9  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(1087)

我试图理解alter table concatenate在hive中究竟是如何工作的。
我看到了这个链接hive'alter tableconcatenate'是如何工作的?但我从这些链接得到的是,对于orc文件,合并是在条带级别进行的。
我正在寻找一个如何串联工作的详细解释。例如,我最初在hdfs中有500个小orc文件。我运行了配置单元alter table concatenate,文件合并成27个更大的文件。随后的concatenate运行将文件数量减少到16个,最后我得到了两个大文件(使用版本hive0.12),所以我想了解一下
串联到底是如何工作的?它是否查看现有文件的数量以及大小?它将如何确定串联后输出orc文件的编号?
使用连接有任何已知问题吗?我们计划在维护窗口中每天运行一次连接
使用CTA是连接的替代方法吗?哪个更好?注意,我的要求是减少orc文件的数量(通过nifi摄取),而不影响读取的性能
如有任何帮助,我们将不胜感激

2w3rbyxf

2w3rbyxf1#

正如@leftjoin所评论的,对于相同的底层数据,您确实可以获得不同的输出文件。
这将在链接的hcc线程中详细讨论,但关键点是:
连接取决于首先选择的文件。
请注意,在正常情况下,具有不同大小的文件应该不是问题。
如果您想简化您的流程,那么根据您的数据有多大,您可能还希望在写入hdfs之前对其进行一点批处理。例如,通过在nifi中设置批大小。

相关问题