海量数据清洗方案
李怀宇 2017-08-03 12:32:32 在京东金融面试中有个面试官提了一个问题,在一个表中有亿级数据下进行数据清洗,从表中读取数据,使用程序按照规则进行计算,修改其中一个状态字段值,然后再插入到另外一个表中。
这两天上网各种看海量数据解决方案也没看出过所以然,求大神指导。
目前想到的办法是,先去索引,关闭日志,横向切表,切成10个表,每表1000万,用多线程处理,每个线程1000万。再以多线程插入,每处理100万交由一个线程去插入,每批量sql执行达到10万则提交一次。
不知道这样可不可行啊。经测试。macbook Pro顶配,纯插入1000万条到mysql用时不到1分钟。2000万4分钟,如果开嵌套循环线程应该会更快,由于硬盘空间不多就没有尝试更多数据插入。
只是想到了程序层面的解决方案,存储层面比较薄弱。。。求大神围观指导。。还有百亿级的数据清洗、迁移、优化等等。。