我的任务是在 Heroku 上托管的 PostgreSQL 9.1 数据库(我们可以称其为 Master)与另一个应用程序用途的数据副本之间编写 ETL(提取、转换、加载)过程Heroku (Cedar Stack) 托管 PostgreSQL 数据库。我们的主要开发堆栈是 Python 2.7.2、Django 1.3.3 和 PostgreSQL 9.1。你们中的许多人可能都知道,Heroku 中的文件系统的功能有限,我不确定我是否完全理解临时文件系统的规则。
所以,我想弄清楚我的选择是什么。显而易见的是,我可以只编写一个 Django 管理命令并拥有两个独立的数据库连接(以及一个目标和源模型集),然后通过这种方式泵送数据并在此过程中处理 ETL。虽然效果很好,但我最初的测试表明这是一种非常缓慢的方法。显然,更快的方法是使用 PostreSQL COPY 功能。但是,通常如果我这样做,我可以将它写到一个文件中,然后使用 psql 将其拉入。有人在 Heroku 上的两个专用 PostgreSQL 数据库之间做过类似的事情吗?任何建议或提示将不胜感激。