pg数据库 利用 sharding jdbc 做不分库 只分表配置 遇到的几个问题

pg数据库 利用 sharding jdbc 做不分库 只分表配置 遇到的几个问题

简单介绍一下我的业务场景:

每分钟需要将传感器传回的数据入库,且要保留三年的历史数据,考虑到后来的查询效率问题,引入 Sharding JDBC 来做表的水平拆分,分担单表查询压力(为什么不做分库处理,是因为实际业务多少受到一些限制 )

问题一:

Springboot 的 autoconfiguration 中 datasource 与 shardingjdbc 的datasource 冲突,导致sharding jdbc 的datasource 注入失败

报错信息(大概是下面这样,具体记不清楚了)

cloud not registry the bean named "dataSource" defined in ["io/shardingjdbc/……"],cause there has already existed bean named “dataSource” defined in ["org.springboot.autoconfiguratioin.……"] ……

解决办法:
在配置文件(application.yml)中设置允许 重复名称 bean 覆盖,这样让后面配置的sharding jdbc 的datasource 覆盖掉 springboot 的 autoconfiguration的datasource
spring.main.allow-bean-definition-overriding: true,具体如下图红框
在这里插入图片描述


问题二

用记录的date字段中的分钟部分来做分片键,结果数据插入时候没有按照算法插入指定表

失败的解决办法:
在配置文件中,指定标准分片策略,将 precise-algorithm-class-name 属性 指向 自己重写的处理类
在这里插入图片描述
重写的分片策略实现:
在这里插入图片描述
但很可惜没有效果,没有按照策略插入指定的表,调了一会儿,时间问题,曲线救国了,以后再来拔草,也期待路过的朋友,帮我答疑解惑,感谢;

成功分片的办法:
直接人为在表中建立一个分片键(其实就是把date字段的分钟部分拆出来,单个放一个字段)
配置如下图(分片键是 shardingcolumn,分片策略是对 5 取模,因为一共拆分了 5 张表):
在这里插入图片描述
其实,最后的最后,在数据查询的时候出现了个低级问题,正常去查询逻辑表的时候,sql报错了。

一开始,我以为还是分片出的问题,结果后来 兜兜转转才发现,是本身sql 查询 where 条件那里 给的数据类型出错了。。。。

为了这个问题加班 不太值得。。。。


最后的最后的最后,来个三连吧,鼓励一下 工具人

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值