2013-05-07 20 views
5

我需要將數據從postgreSQL移動到NoSQL數據庫,在此過程中,我們正在評估不同的NoSQL數據庫,並且Cassandra提出了一種可能性,但從文檔看來,Cassandra不支持將文本數組作爲列類型,這是正確的嗎?哪種NoSQL數據庫支持這種類型的列和支持這種類型的列的索引?哪些NoSQL數據庫支持像postgreSQL text []類型的文本數組列(以及此列上的索引)?

例如以存儲此和具有上的列的索引與該類型的數據:

City:['Washington','Washington DC'] 

提前感謝!

+1

MongoDB允許在數組字段上創建索引。但是爲什麼你需要**也將數據從postgreSQL移動到另一個數據庫技術? – Philipp 2013-05-08 08:21:13

+0

因爲現在數據庫很大,而且使其以單個(昂貴)服務器運行速度所需的成本遠遠超過使用較便宜的服務器爲數據庫設置NoSQL羣集的成本。 – 2013-05-08 16:43:55

+0

聽起來像你沒有充分利用memcache之類的內存緩存技術。 – 2013-05-22 04:17:10

回答

1

不完全是對您的問題的回答(沒有足夠的聲望來評論(?!?)),但瞭解您的問題是規模,並且您來自PostgreSQL,您是否嘗試過PostgresXC?這可能比NoSQL更容易轉換。正如我們所知,NoSQL數據庫具有非常不同的性能特徵和細微差別,可能實際上會造成更多的傷害而不是優點。 Postgres-XC是一個PostgreSQL的多主寫可伸縮分支,從PostgreSQL功能的角度來看,它位於9.1和9.2之間,它是一個活動項目。 9.2如果我記得正確,則本月或以後的一致性將被刪除。設置它的相對容易 - 您將構建2個GTM,一個作爲主要部分,另一個作爲故障轉移,爲他們提供足夠的內存。然後,您可以通過爲每個服務器添加一對協調器和數據節點,一個協調器和一個數據節點來進行水平伸縮。您的應用程序層可以與任何協調人交談,交易發送給相應的協調員,您可以按表指定數據的分佈情況 - 可以爲小型參考表複製,也可以爲大型參考表分發。如果您設計好查詢,則可以大幅提升性能,因爲可以在多個協調器/數據節點對上同時運行和執行查詢。

我知道你正在尋找NoSQL,但我提到這一點是因爲我們也有一個垂直VS水平尺度問題,最後我發現在關係系統中構建NoSQL功能比構建關係能力更容易進入NoSQL系統。當然,這一切都取決於你的數據,有時NoSQL絕對是最好的選擇。有時它也可能是一個令人頭痛的問題,例如一些NoSQL數據庫在文件系統增長方面存在問題,所以您認爲您購買了水平可伸縮性,因此您在室外和家中吃掉了SAN。

無論如何,希望有所幫助!我會留下它作爲評論,但stackoverflow有奇怪的聲譽的事情。

我忘了提及,使用Postgres-XC,您可以指定您希望分發哪些列以及使用何種算法。我通常通過散列進行分發,並確保兩件事情,首先可以在應用程序端生成散列,這樣我就不必在表中混合使用行數量的表,而且散列保持服務器之間的分佈級別正確,但同時也將相關信息保存在同一臺服務器上,以提高查詢的可出貨性。也就是說,如果您有一個客戶表和一個客戶訂單表,則將這兩個表分配到兩個表中的一些客戶唯一信息的散列表中,並確保您可以生成該應用程序端。我希望這是有道理的,我不知道我是否做得很好解釋。如果你想進一步澄清,請讓我知道,現在的文檔有點散落在XC上,所以我涉及的很多是OJT。

相關問題