美文网首页
一次线上应用使用单机mongodb升级为分片mongodb过程记

一次线上应用使用单机mongodb升级为分片mongodb过程记

作者: 星城天空 | 来源:发表于2021-08-09 22:13 被阅读0次

    近期在巡检线上环境mongodb服务时,发现有个400G容量的mongodb,使用容量超过200%,与DBA沟通,数据量快上TB,副本集数据量太大,节点宕机,维护比较麻烦,建议升级为分片mongodb。

    应用使用mongodb的场景是接收广告点击数据存储到mongodb保留30天。之后有转化数据会匹配归因查询存储到mongodb的点击数据。

    文档存储结构为:android_id,imei,oaid,idfa,caid,parter_code(媒体类型),ts(点击时间),ip等
    写入数据:
    安卓设备:android_id,imei,oaid,idfa,caid,parter_code(媒体类型),ts(点击时间),ip等,
    iphone设备:idfa,caid,parter_code(媒体类型),ts(点击时间),ip等
    查询数据
    安卓:根据android_id,imei,oaid匹配查询点击数据
    iphone:根据idfa(可能为多个)匹配查询点击数据

    在转为分片mongodb集群时,发现因存在多条件查询,分片键难以确定。最终决定将单表拆分为索引表和内容表(缺点:数据存在冗余)
    索引表:device_id,内容表的id(当安卓设备同时有android_id和imei时,存储为两条记录)
    内容表:id,android,imei,oaid,idfa,caid,parter_code(媒体类型),ts(点击时间),ip等

    写入数据:
    先写入点击内容表,在写入索引表
    查询数据:
    先查询索引表得到内容表id,在根据内容表id查询得到点击内容

    相关文章

      网友评论

          本文标题:一次线上应用使用单机mongodb升级为分片mongodb过程记

          本文链接:https://www.haomeiwen.com/subject/htwovltx.html