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

针对大规模数据集的频繁的定时任务处理。有什么高性能方案吗?

  •  
  •   dzdh · 123 天前 · 839 次点击
    这是一个创建于 123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如,某业务表有 2e 数据,每天凌晨整点要批量检查这些数据的某些状态进行对应操作。

    直接循环查然后挨个扔异步慢慢处理吗?

    有啥现成的解决方案吗?总觉得应该有啥工具是已经实现的。类似场景各场应该用到很多吧。

    蹲个高性能解决方案。怎么能尽快的、容错率高的、支持重复执行的、能应对频繁场景的处理这些数据呢?

    11 条回复    2024-08-20 13:41:44 +08:00
    liprais
        1
    liprais  
       123 天前
    批量检查不是给自己找不愉快么
    dzdh
        2
    dzdh  
    OP
       123 天前
    @liprais 现在需求是这样么得办法。 每天凌晨 0 点要检查。不是每天,不是凌晨也会有隔三差五的同步,这个需求是有的- -
    linauror
        3
    linauror  
       123 天前
    扔到延迟队列呢,或者直接就凌晨时查出来放到队列里,然后跑
    liprais
        4
    liprais  
       123 天前
    @dzdh 建议你再好好想想
    dzdh
        5
    dzdh  
    OP
       123 天前
    @linauror 那就是 limit 挨个查呗。。
    min
        6
    min  
       123 天前
    spark
    abcfyk
        7
    abcfyk  
       123 天前
    解决方案太多了。但是你提出要求比如“尽快的、容错率高的、支持重复执行的、能应对频繁场景” 全是废话, 如果想要别人给出可用的解决方案,那就在需求层面描述清楚比如:
    业务表的存储是什么? 读写频率是多少? 配置是什么?有类似主从、集群的配置吗?
    凌晨整点要批量检查这些数据的某些状态进行对应操作 的 [操作] 指的是表内数据操作 还是 关联业务表操作? 大概单条操作耗时是多少?
    数据分布情况是怎么样的?分批处理的可行性如何?对数据准确性的要求如何?
    abcfyk
        8
    abcfyk  
       123 天前
    大的解决方案路线分两种,
    一种是后端技术栈内实现, 比如 Java+MySQL (假设)。 关注点是 数据库性能、索引设计、程序设计
    一种是依赖大数据技术实现, 使用 6L 建议的 Spark/Flink 这种技术实现,关注点就是 数据同步(也可不同步)、数据准确性
    Sawyerhou
        9
    Sawyerhou  
       123 天前
    Azkaban ?
    dzdh
        10
    dzdh  
    OP
       122 天前
    @abcfyk #7

    比如一个真实产品:监控宝。

    先不管他怎么实现,数据有没有作假。

    假设他 10 万客户,每 5 分钟上报一次全国检测点的网络质量。10 秒内必须上报完成。

    那每 5 分钟,怎么在 10 秒内处理完所有客户域名在全国不同检测点的检测。任务怎么下发等等。
    abcfyk
        11
    abcfyk  
       122 天前
    @dzdh #10 那这太简单了,用 flink/spark streaming 统计结果, 批量更新数据库
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   972 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:29 · PVG 06:29 · LAX 14:29 · JFK 17:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.