需要复制或重新插入多个表中的数据集 MySQL的流程/同步到PostgreSQL表。
此复制可以基于时间(Sync)或事件,例如 表中的新插入(Stream)。
我尝试使用以下复制工具,但所有这些工具只能将表同步到表。它不允许从源数据库(MySQL)的不同表中选择列并插入目标中的不同表数据库(PostgreSQL的)。
现在我必须编写一个应用程序来查询MySQL中的数据 并作为cron作业插入PostgreSQL。 它很麻烦,容易出错,同步数据。 这无法为实时复制传输(基于事件)数据。
如果某些工具已经解决了这个问题,那将会很棒。 如果有开源库或工具可以为我做这件事,请告诉我。提前致谢。
答案 0 :(得分:1)
要使用您建议的工具之一实现复制,您可以执行以下操作:
在PostgreSQL中创建一个单独的模式并添加视图,以便它们完全复制MySQL的表结构。然后,您将向视图添加规则或触发器以处理插入/更新/删除,并将它们重定向到您选择的表。
通过这种方式,您可以完全自由地在复制过程中转换数据,但仍然使用常用工具。
答案 1 :(得分:1)
也许这个工具可以帮到你。 https://github.com/the4thdoctor/pg_chameleon
Pg_chameleon是从MySQL 2.7 / 3.5开发的从MySQL到PostgreSQL的复制工具。系统依赖于mysql-replication库从MySQL中提取更改并将其转换为jsonb对象。 plpgsql函数解码jsonb并将更改重放到PostgreSQL数据库中。
该工具可以初始化从MySQL中提取数据的副本,但这需要FLUSH TABLE WITH READ LOCK;工作正常。
当MySQL从站配置了log-slave-updates时,该工具可以从级联副本中提取数据。