使用PostgreSQL表/表同步/流式传输MySQL表/表(连接表)

时间:2016-08-18 17:20:51

标签: mysql database postgresql replication database-replication

  1. 我有一台MySQL服务器和一台PostgreSQL服务器。
  2. 需要复制或重新插入多个表中的数据集       MySQL的流程/同步到PostgreSQL表。

  3. 此复制可以基于时间(Sync)或事件,例如       表中的新插入(Stream)。

    我尝试使用以下复制工具,但所有这些工具只能将表同步到表。它不允许从源数据库(MySQL)的不同表中选择列并插入目标中的不同表数据库(PostgreSQL的)。

    • Symmetricds
    • dbconvert
    • pgloader
    • Postgresql FDW

    现在我必须编写一个应用程序来查询MySQL中的数据 并作为cron作业插入PostgreSQL。 它很麻烦,容易出错,同步数据。 这无法为实时复制传输(基于事件)数据。

    如果某些工具已经解决了这个问题,那将会很棒。 如果有开源库或工具可以为我做这件事,请告诉我。

    提前致谢。

2 个答案:

答案 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时,该工具可以从级联副本中提取数据。