将不同远程源中的数据库同步到PostgreSQL数据库

时间:2018-03-05 07:20:04

标签: php json database postgresql

我在离线工作的不同地理位置有多个应用程序,因为这些地方没有互联网访问权限。所有应用程序都存储相同类型的信息,每个信息都将信息存储在自己的本地数据库中。

问题在于,每次给定时间我都需要将所有本地数据库中的信息复制到单个数据库中。我考虑过为每个应用程序生成一个JSON文件,然后将其加载到具有Internet访问权限的地方,并使用Web服务读取文件并存储信息。

我不知道这是否是最佳方法,因为文件可能包含数千条记录且信息敏感。我想知道是否有更好的方法来解决这个问题。

1 个答案:

答案 0 :(得分:0)

我对您的应用程序一无所知,所以我无法看到ID,唯一索引或类似内容是否存在严重冲突。

但从技术上讲,您可以通过使用分区简化从所有本地数据库到中央数据库的数据组合。分区充当具有独立索引的完全独立的表,因此即使使用相同的ID,也不会将数据导入分区。并且由于来自一个主要父表的继承,您将能够以简单的方式从所有这些表中进行选择。

与分区相同的解决方案(即每个本地数据库的单独分区后缀)可以用于所有表,因此您不必担心多主机复制等问题。这将需要一些导入部分的工作但它会节省你有一些“更复杂”的解决方案存在许多问题。

从数据库的角度来看,从本地数据库传输数据的方式并不那么重要。如果你喜欢JSON,为什么不呢。但是PostgreSQL如此胖不具备JSON导出/导入的原生支持 - 所以你必须编写自己的函数。另一方面,在PostgreSQL中,转储/恢复或CSV导出/导入工作本身非常好。