2014-09-26 40 views
0

有兩個應用程序(PHP - Symfony的2 - 學說2)他們每個人都有自己的PostgreSQL數據庫。搜索兩個獨立的PostgreSQL數據庫

  • 第一個是位於我們的地方的中央服務器(S)。它包含來自客戶的匿名數據。

  • 第二部分(P)位於其他地方 - 通常在客戶的公司 - 而且包含了一些私人數據。該應用程序可以將這些私人數據分配給來自服務器的匿名數據。

我們需要搜索,並根據其存儲無論在P和S的問題是,我們不能私有數據發送到服務器列中的數據進行排序。數據綁定不是1:1。 (P)部分上的一行可以分配給服務器(S)上的一行或多行。

我們可以:

  • 搜索上(P)
  • 發送的ID爲(S)
  • (P),不能發送數據,因爲是私人(僅標識),因此(S)部分不能對結果集進行排序,並且必須返回所有相關數據,不僅需要顯示N個結果。
  • 完成結果在P部分設置和返回N個結果。

有什麼辦法如何在兩個數據庫執行一個查詢?數據庫鏈接不是一個選項 - 它對我們來說不夠穩定。

有什麼辦法如何從S同步搜索數據實時在P到一個地方進行搜索? (S上的數據可能會從不同的地方改變)。

有沒有更好的辦法解決這個問題?

回答

1

不知道爲什麼dblink不夠穩定,但我可以想到其他幾種可能的解決方案,其中一種可能是postgresql_fdw - http://www.postgresql.org/docs/current/static/postgres-fdw.html,基本上只是創建指向其他服務器的外表。

類似於dblink的其他選擇是使用類似plproxy的東西,它應該是相當穩定的,因爲它已被Skype使用。

或者,你可以用londiste或slony複製你想要的特定數據。