【问题标题】:Does Hive preserve file order when selecting data选择数据时 Hive 是否保留文件顺序
【发布时间】:2019-11-02 20:27:41
【问题描述】:

如果我这样做 select * from table1; 将检索订单数据

文件顺序或随机顺序

【问题讨论】:

    标签: apache-spark hadoop hive apache-spark-sql hiveql


    【解决方案1】:

    如果没有ORDER BY,则无法保证订单。

    许多进程(映射器)并行读取数据,在计算拆分后,每个进程开始读取一些文件或几个文件,具体取决于计算的拆分。

    所有并行进程可以处理不同的数据量,运行在不同的节点上,每次的负载不一样,所以它们开始返回行和结束的时间不同,取决于太多的因素,比如节点负载、网络负载、每个进程的数据量等。

    去除所有这些因素,您可以提高订单预测的准确性。比如说,单线程顺序文件读取可能会以与文件中相同的顺序返回行。但这不是数据库的工作方式。

    同样根据 Codd 的关系理论,the order of columns and rows is immaterial

    【讨论】:

    • Hive 在仅从表中选择所有列时不会触发 MR。在这种情况下会发生什么
    • @user11673791 这也取决于大小。
    • @user11673791 我不知道 fetch 任务的工作原理。很可能是单线程顺序读取。在这种情况下,它可能会以与文件中相同的顺序旋转行。但它可以是很多文件...
    猜你喜欢
    • 2020-09-15
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    相关资源
    最近更新 更多