开发者社区> 问答> 正文

请问如何对大数据进行排序?

已解决

我没处理过大数据,假设一种情况,有10亿条数据,这么大的数据,请问一般有什么样的算法能对这样大的数据进行排序?我希望的是能给出解决方案或者是解决思路。在此先感谢各位。

展开
收起
我的中国 2016-03-23 20:16:50 2902 0
3 条回答
写回答
取消 提交回答
  • R&S网络资深工程师 ,阿里云论坛官方版主,阿里云云计算ACP,春考教学网站长,IT技术晋级之路专辑作者
    采纳回答

    纯属探讨,我也没有实践经验。
    我觉得大数据的唯一处理就是怎么写入大数据到数据库,至于排序和查询...这件事情根本就不应该发生在大数据上。如你所说的10E条,水平拆分掉就不是大数据了,所以你的问题也就不存在了。
    如果现在的情况已经是10E条存在一个库里面了,我觉得应该根据你的需求决定如何拆分才是关键的。
    比如商城系统订单数据就很多,但是最明显的一个特征就是用户总是先看到 “最近的订单” 这种东西,在我看来这就是一种明显的拆分。

    在我的看来,大数据的主体只有一个索引,就是主键,因为太多的索引会影响高并发的插入速度,那么如果需要搜索大数据怎么办?当然是空间换时间,比如淘宝那么多商品,想搜索特定的商品怎么才能快?从主数据中搜索?那不是疯了,我觉得肯定是从派生表上查询的,比如 日用品商品表, 鱼竿商品表 等等,根据搜索关键字去找符合条件的表,然后从这个表中再读数据,这才能快起来。

    以上纯属个人臆测,有错误的地方恭请指正,不胜感激。

    2019-07-17 18:35:29
    赞同 展开评论 打赏
  • 分段,排序,有现成的分布式并行计算框架帮助实现并行。在逻辑上,先可以采样,数据分段,排序,合并。

    2019-07-17 18:35:30
    赞同 展开评论 打赏
  • https://my.oschina.net/132722/blog/168022 大概的算法流程 :
    对数据进行抽样 , 对抽样数据排序分格子 , 比对每条数据 跟格子之间的序号 , 将数据放到对应序号的reduce中,对reduce中的数据进行排序

    2019-07-17 18:35:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载
大数据&AI实战派 第2期 立即下载