如果我查询“select*from table”,每当我运行这个查询时,输出的顺序是否总是相同的?到目前为止,这是我的观察结果,但我很好奇这种行为是否有任何保证。
9jyewag01#
在这种情况下,我认为有一个保证。hive中的一些查询不会生成mr jobs,而是以串行方式直接io表。在你的情况下 select * from table 不会生成mr作业(除非 table 是视图)。用一个进程读取表,从第一个文件读取到最后一个文件,从每个文件的头读取到最后一个文件。因此,我相信无论何时运行查询,以这种方式输出的顺序都是相同的。当然,这对于由sql生成的jobs先生来说是不对的。
select * from table
table
1条答案
按热度按时间9jyewag01#
在这种情况下,我认为有一个保证。
hive中的一些查询不会生成mr jobs,而是以串行方式直接io表。
在你的情况下
select * from table
不会生成mr作业(除非table
是视图)。用一个进程读取表,从第一个文件读取到最后一个文件,从每个文件的头读取到最后一个文件。因此,我相信无论何时运行查询,以这种方式输出的顺序都是相同的。
当然,这对于由sql生成的jobs先生来说是不对的。