V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fakeJas0n
V2EX  ›  问与答

如何便捷高效地处理 5000w 左右的离线订单数据

  •  
  •   fakeJas0n · 2020-08-31 16:27:48 +08:00 · 1337 次点击
    这是一个创建于 1563 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在数据已经同步到 mysql,要根据每个订单的时间和收发货城市,推算出全流程各个节点的时间,包装后传给算法进行计算,有几个疑问

    • 逐条数据进行处理,一次读多少数据加载到内存中比较合适?
    • 传给算法是一个 json 文件,处理数据后生成的 Json 文件占用空间必然很大,这块目前的想法是针对时间点或收发货城市对数据做一次归集来减少数据量,5000w 的数据归集到多少比较合理?对于传 json 文件形式有没有更好的办法?

    感谢各位 v 友!

    8 条回复    2020-09-01 17:12:21 +08:00
    wysnylc
        1
    wysnylc  
       2020-08-31 16:31:03 +08:00   ❤️ 4
    多少得你自己试出来,又没个基准值你搁这让网友们算命呢
    boyhailong
        2
    boyhailong  
       2020-08-31 16:33:48 +08:00
    首先能计算出单个数据占用的内存吗? 5000w 数据内存总共多少,看下单台机器能承受不;
    处理后的 json 数据多大?很大是多大?
    wqzjk393
        3
    wqzjk393  
       2020-08-31 17:45:16 +08:00 via iPhone
    对于大数据来说,思路就是索引分区和 etl 了 简单说就是搞点辅助表和汇总表,不要直接拿原始明细表来跑业务
    shoaly
        4
    shoaly  
       2020-08-31 19:12:01 +08:00
    随便说一个, 先把 5000w 订单按照城市拆分, 这样至少多线程那一套就可以用上了....
    594duck
        5
    594duck  
       2020-08-31 19:43:38 +08:00 via iPhone
    5000w 这个量级,应该放大数据跑了。

    推荐观远数据专门解决的也不贵。

    etl 先把数据抽到超宽表在做计算。并行计算 hadoop 强项
    CODEWEA
        6
    CODEWEA  
       2020-08-31 19:52:05 +08:00
    很简单,一秒钟就行,搞一个 1T 内存的服务器,随便写
    594duck
        7
    594duck  
       2020-08-31 20:24:06 +08:00 via iPhone
    @CODEWEA 你确定单台 1TB 内存有用?

    我宁可上 3 台 256G 也不要单台 1TB
    ijustdo
        8
    ijustdo  
       2020-09-01 17:12:21 +08:00
    给你举个例子 单机就可以搞定

    每个订单存为:

    [订单 id]_[发货 citycode]_[发货日期]_[收货 citycode]_[收货日期].json



    ------------------------


    分目录:
    ------------------------
    收货城市 citycode 分组目录
    时间分组目录[日期]

    发货城市 citycode 分组目录
    时间分组目录[日期]


    每个过程 cityecode 分组目录
    时间分组目录[日期]


    ------------------------
    你自己看这个问题是不是不是很简单了

    大数据的分区 也是 hadoop 上目录 + 列式存储 没撒


    文件遍历统计就搞定, 不急的话一个单字一个单字来, 一个单子一个单子的来都行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:37 · PVG 08:37 · LAX 16:37 · JFK 19:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.