原文链接: https://blog.csdn.net/weixin_44723724/article/details/125600165

场景

将不同渠道的api日志入库,方便日后分析和检查系统行为

挑战

  1. api返回数据格式多样。需要确定以什么样的形式呈现数据,定义表结构.
  2. json格式的嵌套问题.通过额外定义表进行关联.
    1. 单表形式
      • json字段就是表字段
    2. 多表详细存储
      • 关联字段通过外层表名拼接内层表名
      • 解析 json 的时候,需要把关联键和关联键的值传递进去,关联键的值传递的就是外层表当前行数据的 md5 值,这样就生成了多表之间行数据关联的依据
  3. 本地多种数据源(不同种数据库).
  4. 通过md5值解决幂等问题,如果导入同一批数据就只是更新导入时间

代码设计

  1. 工厂模式 : 适配不同种数据源
  2. 抽象sql构建模型 : 将构建sql时公共的代码进行抽象,定义抽象类.
    • 固定表名
    • 列信息
    • 关联键
    • 数据集合