mysql 只读权限
postgresql 可写可读
mysql里面有个表
字段如下:
orderID<int>,itemID<int>,info<text>,lastUpdate<datetime>
其中lastUpdate是这个记录的最后修改时间
每个记录有可能随时被修改,随即这个记录的lastUpdate会更新
postgresql字段如下:
orderID<int>,itemID<int>,info<jsonb>,lastUpdate<datetime>
postgresql 和mysql 字段都对应,只是字段类型有些不同 ,比如info这个字段,在mysql里面字段类型是text,而在postgresql里面字段类型是jsonb
现在想让postgresql保持和mysql数据一致
当mysql里面变化,也要让postgresql里面变化, 可接受的延迟是10秒左右
请问大家,有什么好的方案吗
有现成的轮子吗?如果没有的话 用python来写,这个东东的大概思路该如何弄呢 多谢
1
qq2549112 OP 求大神指点一二
|
2
hging 2015-07-01 18:35:31 +08:00
...mysql只读为什么会有变化.
|
4
choury 2015-07-01 19:00:20 +08:00 1
你可以看下mysql的主从复制协议,然后接收mysql的binlog,然后自己解析……不过我感觉这个工作量有点大,你看有没有人干过这事吧
|
5
Septembers 2015-07-01 20:34:01 +08:00
|
6
gamexg 2015-07-01 20:38:20 +08:00 via Android
有 lastUpdate 字段,可接受10秒延时,直接定时获取最近更新的不就完了?
|
7
jiaojing 2015-07-01 20:46:02 +08:00
就是个etl吧
看看Kettle之类的行不行 |
8
cevincheung 2015-07-01 21:02:08 +08:00
postgresql有dblink
|
9
rming 2015-07-01 21:54:44 +08:00
@xiaotianhu CC
|
11
qq2549112 OP @Septembers 谢谢 SymmetricDS 好像不太适合我,这个东西好复杂,我想让 我的数据每隔1-10秒,postgresql 就和mysql保持一次更新同步,保证2个数据库里面的信息一致
|
14
qq2549112 OP @cevincheung dblink 我用的rds 无法安装软件 谢谢哦
|
15
Septembers 2015-07-01 22:28:21 +08:00 1
@qq2549112
必须要解决"数据发现"的问题 被动发现比较难实现实时一致 而且会给主数据库带来一定的负担 除非主动发现、思路如下: 可以考虑向上司申请建立个 从库 然后写个工具分析 从库 的binlog提取数据到PostgreSQL (另外从库还可以作为主库的备份,存在 |
16
qq2549112 OP @Septembers 非常感谢您的回答
我分别用的阿里云的 mysql rds 和 postgresql rds mysql rds 是别人提供给了我 一个 [只读权限] 的 帐号密码 postgresql rds 是我自己购买的 之前我自己写过一个python脚本,5秒同步一次 [首次很慢,因为要拉取历史数据,之后5秒一次没有问题] 目前不用担心给主数据库带来负担,并且数据量并不是特别大, 所以 不用担心给mysql rds [主数据库] 增加负担 关于您说的binlog,因为是rds,所以binlog这个方案实现起来 似乎有点麻烦 所以 可能我还是得用以前的方法 用python 去 mysql [发现数据] 然后 再插入到 新的postgresql里面 然后每隔 几秒 就去 [发现] 一次 |
17
msg7086 2015-07-01 23:33:45 +08:00 1
如果数据修改端自己能控制的话,用mysql proxy之类的玩意插一个代理。
不能的话当然只能不停刷了。 「首次」其实也可以分批拉的,按照时间排序然后每次limit一下数量就好了。 |
18
cevincheung 2015-07-02 02:01:12 +08:00 1
@qq2549112 阿里云的RDS For Postgresql是支持dblink的
|
19
qq2549112 OP @cevincheung 谢谢, 我网上搜了下 dklink 好像这个只是 创建一个链接, 数据还是在原始的mysql里, 但这样的话 就无法使用postgresql的某写特性了 比如jsonb特性
所以我像把数据 直接 增量同步到 postgresql里面 |
20
cevincheung 2015-07-02 23:22:13 +08:00 1
@qq2549112 那就只能试试触发器了或者自己解析binlog
|
21
dhysum 2017-03-06 10:23:40 +08:00
|
22
Chenamy2017 2018-11-22 17:40:17 +08:00
楼主问题是否解决了?
|