2013-04-26 44 views
1

我正在開發一個項目,這是一個分佈式數據庫的東西。跨多個異構數據庫執行連接PostgreSQL和MySQL

我從創建概念模式開始,並且對錶格進行了分區,以便我可能需要在MySQL和PostgreSQL中的表之間執行連接。

我知道我可以編寫一些中間件來分解SQL查詢併發出針對單個數據庫的子查詢,並且它們會合並結果,但是如果可能的話,我希望使用SQL來做這件事。

我的搜索到目前爲止已經得到this(聯合存儲引擎的MySQL),但它似乎適用於MySQL數據庫。

如果可能的話,我會很感激一些指針,看看怎麼看,最好用Python。

謝謝。

回答

0

從postgres方面,您可以嘗試使用foreign data wrapper,如mysql_ftwexample)。然後可以通過各種Postgres客戶端運行查詢,例如psql,pgAdmin,psycopg2(用於Python)等。

+0

謝謝!看起來很有希望。 – krm 2013-04-27 01:15:48

0

這不適用於SQL。

你的選擇是寫你自己的「中間件」,如你暗示的。要在Python中執行此操作,您可以爲這兩個數據庫使用標準DB-API驅動程序並編寫單個查詢;然後合併他們的結果。像sqlalchemy這樣的ORM將會有很大的幫助。

另一種選擇是使用集成層。這裏有很多選項,但是,我不知道那些是用Python編寫的。 mule esb,apache servicemix,wso2jboss metamatrix是一些比較流行的。

+0

Postgresql的外部數據包裝(請參閱Mike Toews的上述答案)似乎可以滿足我的要求。但它似乎並不穩定,所以如果遇到複雜情況,我可能會後悔實施自己的中間件。 – krm 2013-04-27 01:20:57