大数据查询解决方案

大数据查询

解决方案:分库分表、预统计、预查询 + 缓存、数据仓库+大数据计算

1. 分库分表

方案描述:查询较少和查询频率较多的数据按一定规则进行拆分存储。

挑战:

  • 冷热数据分组统计排序查询,可通过中间件sharding-jdbc/mycat解决
  • 合适的冷热数据拆分规则,可按时间、客户等进行拆分
  • 大数据量查询时会大量消耗CPU和内存

2. 预统计

方案描述:按日和月预先分组统计领料数据、补货数据。

预统计维度:年月日/年月、供应链、工厂、机器编号、商品编号、成本中心、销售类型、仓库编号

挑战:

  • 数据漂移问题,根据漂移数据更新已分组的统计数据
  • 修改价格和四位小数需要同步修改价格,如果按月统计不能修改价格,但可进行数量统计
  • 随着时间推移,数据量也会不断增加,最后需要再次聚合

预统计适用于记录不会被变更的场景

3. 预查询 + 缓存

方案描述:针对非实时统计接口使用预查询结合缓存,提前将交易数据进行统计查询并将结果放入缓存,同时采用定时任务定时去刷新缓存数据。

挑战:

  • 大数据量查询时会大量消耗CPU和内存
  • 若缓存数据量比较大,会影响redis读写并发能力(数据量越大,读写时间越长,redis单线程)

4. 数据仓库 + 大数据计算

方案描述:

  1. 将数据存入数据仓库,利用数据仓库的大数据查询能力实现快速分组统计查询。
  2. 使用大数据计算引擎,对数据进行加工(聚合、清洗)处理

特点:

  • 大数据查询快(毫秒级),适用于大数据数据分析、BI等数据、业务元数据存储
  • 适合查询频次少的业务
    原文作者:cn_hhaip
    原文地址: https://blog.csdn.net/cn_hhaip/article/details/120472198
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞