Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PostgreSQL中的数据库间通信_Python_Arrays_Postgresql_Database Connection - Fatal编程技术网

Python PostgreSQL中的数据库间通信

Python PostgreSQL中的数据库间通信,python,arrays,postgresql,database-connection,Python,Arrays,Postgresql,Database Connection,我正在使用PostgreSQL 8.4。我非常喜欢新的unnest()和array_agg()特性;是时候让他们认识到阵列的动态处理潜力了 不管怎么说,我正在开发大量使用长数组的web服务器后端。它们将是两个连续的过程,每个过程将发生在不同的物理机器上。每个这样的进程都是一个轻量级python应用程序,它“管理”每个机器上对数据库的SQL查询以及来自前端的请求 第一个进程将生成一个数组,该数组将被缓冲到SQL表中。每个这样生成的数组都可以通过主键访问。完成后,第一个python应用程序将密钥发送

我正在使用PostgreSQL 8.4。我非常喜欢新的unnest()和array_agg()特性;是时候让他们认识到阵列的动态处理潜力了

不管怎么说,我正在开发大量使用长数组的web服务器后端。它们将是两个连续的过程,每个过程将发生在不同的物理机器上。每个这样的进程都是一个轻量级python应用程序,它“管理”每个机器上对数据库的SQL查询以及来自前端的请求

第一个进程将生成一个数组,该数组将被缓冲到SQL表中。每个这样生成的数组都可以通过主键访问。完成后,第一个python应用程序将密钥发送到第二个python应用程序。然后,在另一台机器上运行的第二个python应用程序使用它来获取在第一台机器中找到的引用数组。然后它将其发送到自己的数据库以生成最终结果

我之所以发送密钥,是因为我认为这将使这两个进程更快。但我真正想要的是一种让第二个数据库向第一个数据库发送查询的方法,以期最小化序列化延迟等

如有任何帮助/建议,将不胜感激


谢谢

我不确定我是否完全理解,但你已经看了notify/listen

我想要么监听/通知,要么使用缓存,比如memcache。您可以将密钥发送到memcache,并让第二个python应用程序从那里检索它。你甚至可以用listen/notify。。。例如;发送密钥并通知您的第二个应用程序该密钥在memcache中等待检索。

听起来您想从contrib获得。这允许一些数据库间postgres通信。pg文档很棒,应该提供所需的示例。

我不确定。这是否有助于让一个运行在机器A上的邮局主管进程从运行在机器B上的邮局主管进程发送或接收数据,而不必将数据传递给python这样的中间人应用程序?嗨,Nicholas,嗯,这不完全是真的。像pgpool或其他复制PG数据的东西可能更符合您的喜好。Notify/listen将让您的(比如python)代码异步侦听数据库中的更改,然后您可以通过获取数据等方式对这些通知采取行动。您还可以查看触发器,因此在向表X插入/更新/删除时,将触发触发器,将数据导出到/数据(或任何位置)。然后你会有一个从/data中抓取文件的过程,这些只是你想做什么的几种方法,这不是我担心的关键。机器B使用该键从机器A中选择与其关联的数组。我希望让机器B中的邮局主管查询机器B中的邮局主管,以最小化进程间通信。基本上,我担心通过python,数组会浪费时间和资源。我想说的是:从machineA.db.table中选择,其中key=$1等。感谢您的关注,很抱歉不清楚;)