Optimization 配置单元不影响数据记录的顺序以连接表

Optimization 配置单元不影响数据记录的顺序以连接表,optimization,hive,query-optimization,hiveql,Optimization,Hive,Query Optimization,Hiveql,我想知道在连接两个表时,数据记录的顺序是否重要(性能方面)? 另外,我没有使用任何地图边连接或桶连接 谢谢大家! 一方面,顺序应该无关紧要,因为在无序排列期间,映射程序并行读取连接文件,文件也可能在几个映射程序之间拆分,反之亦然,一个映射程序可以读取几个文件,然后映射程序的输出传递给每个还原程序。而且即使数据是按顺序排列的,由于并行性,它也不是按顺序读取和分发的。另一方面,根据数据熵对数据进行排序可以改进压缩。类似的数据可以更好地压缩。因此,按顺序排列的文件压缩文件可以更小,并且在连接查询执行期

我想知道在连接两个表时,数据记录的顺序是否重要(性能方面)?
另外,我没有使用任何地图边连接或桶连接


谢谢大家!

一方面,顺序应该无关紧要,因为在无序排列期间,映射程序并行读取连接文件,文件也可能在几个映射程序之间拆分,反之亦然,一个映射程序可以读取几个文件,然后映射程序的输出传递给每个还原程序。而且即使数据是按顺序排列的,由于并行性,它也不是按顺序读取和分发的。另一方面,根据数据熵对数据进行排序可以改进压缩。类似的数据可以更好地压缩。因此,按顺序排列的文件压缩文件可以更小,并且在连接查询执行期间读取速度更快。这可能会提高连接速度,因为映射程序读取数据的速度更快。此外,如果在加载过程中对数据进行排序,ORC中的索引可以更有效地进行过滤。这取决于您使用的数据熵和过滤器。

嗨,leftjoin,谢谢您的输入。请问我是否不使用任何压缩,对数据进行排序不会影响/提高联接性能,对吗?@James Sorting在某些情况下可能会提高,如果您使用ORC,并且在插入ORC表之前使用sort+distribute: