大数据量快速处理的架构设计

2020/09/29 02:14

大数据量快速处理的架构设计

在业务数据的处理过程中,经常会遇到夜间批次处理大量的数据,而且会有时效的要求。特别是当应用系统跑了2年以上时,就会有大表或者特大表的操作了,数据量达到百万甚至上亿。 这时回顾前期的设计,就会发现好多问题。 可能是数据模型设计的时候没有考虑表的分区和及时归档、sql的设计没有考虑索引或全表扫描、数据的处理没有考虑及时的分批切分、并发处理的多线程可配置化等等, 为了以后的设计不要走相同的错路。这里暂时简要总结一下。

1 最初要考虑归档和分区。所有可能的大表设计,都要在最初的时候考虑归档和分区。

数据冲上高水位(HighWaterMark)后,即使有归档也不会降低高水位,性能可能也存在消耗,所以要及时归档转移数据。 最好是设置分区表,这样分区表可以进行及时的truncate或者drop再重新add分区。 可以灵活的控制存储。

2 sql条件精准定位。大的关联sql查询,一定要尽量的精准抽取数据范围,不要模糊抽取过多数据,含好多无用的后面再过滤,这很可能影响数据库的执行计划判断导致性能下降。

3 快速定位数据,分批支持流水并发。大批量数据处理,首先要用最简单的方式找到目标最小集群的数据,从大范围中抽出来,并进行切分。切分的目的是可以使用多线程并发处理数据,并且隔离各分区的数据不会重复,也不能有遗漏,这样并发时不会造成数据干扰。

4 流水线并发处理提升时效。

采用3的切分多批+多线程并发的方式,就可以针对有多个步骤的业务逻辑处理时,不用瀑布模式等待执行,而是可以流水线样的多条执行,实现了多并发,无时间和空间的浪费。 对于有高时效的任务处理,具有可观的价值。

免费直播

    精选课程 更多

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司