我是第一次处理那么大数据量,慌了来源,从kafka过来有3百万多1.把这百万数据存储
2.每天会有80多万数据从kafka继续过来
我要做同步更新操作。对比当前数据库有的修改,没有就新增,有的时候还会让其中的几万数据删除。那么做能让效率高一些,有数据同步框架吗(´;︵;`)
我该如何选择工具,存储是用mysql好些,还是db好些,我懵逼了。
求大佬能帮忙 应该如何来设计思路

解决方案 »

  1.   

    基本都是JAVA开发
      

  2.   

    你这同步是结构完全一样直接copy过来?还是要根据业务操作完数据再插入更新?
    另外这些数据是一次性全部过来的还是说不定时随机过来的?
      

  3.   

    可以试试ETL工具  kettle思路就是在内存中操作:预处理:从kafka读取数据,按特征分块,如订单时间,按日分块;批处理:处理每个分块数据,根据其特征(比如昨日数据),从数据库中读取相关数据到内存,分块数据和内存中数据比较,将结果写到  不处理/未匹配(待重新处理)/删除/更新/创建/数据的中间文件(按结果分),然后分别批量处理删除/更新/创建后处理:未匹配数据的特殊处理
      

  4.   

    我之前弄得跟你类似,不过没用什么工具,只是单纯的HTTP传输,然后处理数据,比较的简单
    唯一需要考虑的是,传输数据的时候,你一次性过来,带宽是否HOLD得住,考不考虑网络波动问题(这边我是分批次传,一次一小批数据)
    另外就是,接收到数据后(一般交给线程池去执行),这个时候线程池是否会大量占用服务器的资源,导致其他功能无法使用
    接着就是考虑一下,每次更新的一个连接数的问题,无论是你传输的时候跟应用服务器的连接数,还是应用服务器接收到后,跟数据库的连接数,别一下子占满了,导致其他功能不可用