V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Int100
V2EX  ›  程序员

请问一下,数据处理需求频繁变更时,如何提高数据处理的效率?

  •  
  •   Int100 · 11 天前 · 1167 次点击

    请问一下,数据处理需求频繁变更时,各位是怎么做的?

    公司会产生很多 json 格式的数据,任务是需要对这些 json 数据进行数据处理,提取/重组其中的一些 key: value ,按照甲方的要求生成特定的数据集(也是 json 格式)。

    之前一直是编写 python 脚本直接处理数据,但是费时费力,甲方有时候一些小要求,代码就需要改动很多。有没有什么办法可以更加标准化/便捷的做这件事?比如能否利用某些数据库去完成这个任务?

    非常感谢🙏

    11 条回复    2024-05-09 18:09:17 +08:00
    Livid
        1
    Livid  
    MOD
       11 天前   ❤️ 1
    导入 MongoDB 或者 ElasticSearch 然后试试用查询?
    yuanmomo
        2
    yuanmomo  
       11 天前 via iPhone   ❤️ 1
    这种你找找身边做大叔的,或者做数仓的,他们天天就干这个。

    大数据一般分成很多段来处理数据。数据采集,清洗,规整,然后导出。我不是专业做大数据,在大数据团队待了一年,所以就见过一些。

    把数据处理,分成一段一段,每一段只完成一件事情,然后最终把数据导入到一些支持查询的数据库里面,然后再用 SQL 之类的语言去查询。
    ke1e
        3
    ke1e  
       10 天前 via Android
    数仓正解,如果数据量不大或者对时效性和 qps 不敏感可以看看 MongoDB
    netnr
        4
    netnr  
       10 天前 via Android
    用 nodejs

    每种处理单元为一个类或方法,对应一个 js 文件
    根据配置动态加载执行 js 文件

    后续有新的处理方式,拷贝一份 js 文件微调,再更新一下配置参数
    vivisidea
        5
    vivisidea  
       10 天前
    耗时主要在哪呢? json 解析可以试试 jsonpath 这个工具,我觉得还挺好用,https://github.com/json-path/JsonPath python 应该也有对应的实现
    yinmin
        6
    yinmin  
       10 天前 via Android
    用 ai 试试,把原来的代码和新的需求都发给 ai ,让 ai 修改代码。你可以试试 gpt4 、claude3 opus 、mistral large 、gemini 1.5 、deepseek code 这几个模型。
    yjhatfdu2
        7
    yjhatfdu2  
       10 天前   ❤️ 1
    使用 postgresql 的 jsonb ,可以使用 copy 快速导入,可以使用 jsonpath 快速查询,可以使用各种 json 相关函数和 json 聚合函数快速编辑和处理,而这些都只需要 SQL
    Joker520
        8
    Joker520  
       10 天前
    可以试下用 MongoDB 来存
    noahlias
        9
    noahlias  
       10 天前
    不怎么复杂的 我觉得 jq 就可以完成你说的功能
    https://github.com/jqlang/jq
    写个 shell 脚本批处理下就搞定了 反正你是从 json 到 json
    Int100
        10
    Int100  
    OP
       10 天前
    @yinmin #6
    谢谢建议!有尝试过,可以减轻一部分工作量,但是数据之间的关联太复杂,最后主体还是要靠自己写。😄
    wxf666
        11
    wxf666  
       10 天前   ❤️ 1
    @Int100 #10 要不,你模拟几个场景出来看看?比如:

    10GB 的 A.json (格式是 [{"a": xxx, "b": yyy, ...}, ...],约一亿条),
    100GB 的 B.json (格式是 [{"c": xxx, "d": yyy, ...}, ...],约十亿条),

    需求一:A 里的 a, b 字段去 B 里的 c, d 查,保留结果是 xxx 的,再分组取前一万,再分季度汇总,。。。
    需求二:。。。

    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   876 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:29 · PVG 06:29 · LAX 15:29 · JFK 18:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.