2013-05-07 6 views
0

我目前有兩個SOA應用程序(soa1和soa2),每個都有自己的數據庫。我想創建第三個應用程序(report1),它以某種方式合併這些數據庫並提供報告。我在想,如果我可以讓soa1和soa2使用WAL-E,那麼report1可能會成爲讀取的奴隸,我可以使用多租戶解決方案。如何讓一個heroku db實例跟隨多個父數據庫?

我想通過soa1和soa2加入數據,所以重要的是我可以在單個查詢中同時訪問這兩個數據。

有三種方式,我想我能做到這一點

  1. 把我的數據庫關閉的Heroku的,我自己的(益)設置三個數據庫
  2. 奇妙的是對Heroku的一個數據庫實例遵循SOA1和soa2
  3. 離開一切,因爲它是和注入數據的查詢,使用CTE(也ICK)

我甚至不知道我是否可以有兩個獨立的華爾茲讀入數據庫,不同的SCH下emas ...但是,如果我可以,我想我必須去選擇1,因爲我認爲heroku不支持我想要做的...

除了這一切,沒有任何人有任何關於如何完成這些的其他想法?

回答

3

你不能用PostgreSQL的內置二進制複製來做到這一點。它無法合併多個歸檔流,並且不可能永遠能夠這樣做。

我們正在研究可以做到這一點的邏輯複製(我現在正在測試它),但它需要PostgreSQL的補丁,並且在PostgreSQL 9.4之前不會提供未經修補的PostgreSQL(9.3即將到來出)。

同時,您可以使用Bucardo,Slony-I等基於觸發器的複製解決方案來實現此類任務。這可能對Heroku有挑戰性,因爲你不能直接在Heroku數據庫實例上運行你自己的進程;您可能必須從您自己的服務器遠程運行復制代理。