V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cage111
V2EX  ›  数据库

如何在 1s 内统计出 13 亿人口数据找出使用人数最多的十个姓名

  •  
  •   cage111 · 2021-01-25 10:32:21 +08:00 · 13650 次点击
    这是一个创建于 1424 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教下各位大佬这种需求可以实现吗

    104 条回复    2021-01-26 23:43:31 +08:00
    1  2  
    mybyons
        101
    mybyons  
       2021-01-26 07:09:50 +08:00
    Top-K 的问题求解 Probabilistic 问题

    可以参考一下 Redis 的 Top-K Module 根据官方的测试数据 500,000 words.的世界文学 世界与和平 用时大概 1 Sec 就算出来了 这个时间包括了文件读取 和 词拆分 的时间. 如果减去这个时间 再能够优化一下 redis pipeline 还能优化一些

    当然这个还差两到三个数量级的差距 那就 shard 100 个实例 最后再 merge

    周末可以在云端试一下....haha....

    参考 1. https://redislabs.com/blog/meet-top-k-awesome-probabilistic-addition-redisbloom/#:~:text=Redis'%20Sorted%20Set%20data%20structure,is%20initialized%20with%20the%20TOPK.
    cveoy
        102
    cveoy  
       2021-01-26 09:53:50 +08:00
    只要机器够 100ms 也可以 给我来 5000 台 redis 或者 es mysql 都可以
    xieshaohu
        103
    xieshaohu  
       2021-01-26 16:47:54 +08:00
    @cage111 查询条件和 groupby 条件都做成 orderby key
    troywinter
        104
    troywinter  
       2021-01-26 23:43:31 +08:00
    我来安利一波 apache pinot,性能强过 druid,这种统计可以 200ms 内返回。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5336 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:10 · PVG 16:10 · LAX 00:10 · JFK 03:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.