java吧 关注:1,255,815贴子:12,745,341
  • 16回复贴,共1

求大佬出一个方案

只看楼主收藏回复

mysql两亿多的数据,需要对个别字段加密,新建字段存放加密数据,等跑批数据都结束后再更改用新字段,多节点多线程跑,要求可以暂停可以启动,支持断点续传


IP属地:天津来自iPhone客户端1楼2025-04-17 17:43回复
    线程跑呗,加一些线程状态


    IP属地:河北来自Android客户端3楼2025-04-17 19:48
    回复
      不懂,顶一下


      IP属地:上海来自Android客户端4楼2025-04-17 19:58
      回复
        表有做分区吗,id分20个分区,每个分区内1000万分100个分片,一个分片10万数据一个任务,一个任务内更新时1000条一个事务.ssd的话很快就跑完了,走数据库aes我估计也就半个小时


        IP属地:山东来自Android客户端5楼2025-04-17 21:31
        收起回复
          一个中心节点去查,新字段没加密的id,对id切片分发。mq发消息到各个节点多线程执行。增加动态配置开关,跑完切换逻辑。因为更新加密字段是幂等的,部分id跑重了也没关系。增量部分id,跑完接着分发。最后一轮,先切换,再跑。也没必要做切换,直接兼容两种方式


          IP属地:广东来自Android客户端6楼2025-04-18 07:53
          收起回复
            这种任务直接kettle数据清洗一把梭 稳的一比 还整个新功能有啥必要么?这功能要整就得单独开一个项目整,不然开多线程跑吧,长期占用项目资源,增加你其他接口响应时间,你开单线程跑吧不会影响,稳定性高,但是速度捉急


            IP属地:湖南来自Android客户端7楼2025-04-18 08:37
            收起回复
              加密完老的字段不删除吗,那加密来干嘛,对应的明文还是在数据库里


              IP属地:美国来自Android客户端8楼2025-04-18 22:24
              收起回复
                唉,建个新表,双写,然后数据补到新表里,无锁更新在线切换表


                IP属地:上海来自iPhone客户端9楼2025-04-19 12:51
                收起回复