2015-02-24 129 views
5

我剛剛花了一些時間來試驗Crate - crate.io - 並且第一印象很好。如果我的理解是正確的Crate是一個NoSQL數據庫,它提供了一個相當整潔的SQL接口來操作和查詢數據庫。太好了!從MySQL遷移到Crate

但是,在這個階段,我有更多的問題,而不是答案。這裏有三個首發

  • 箱子管理控制檯很好。然而,除了設置IP表規則之外,我可以如何保護它?
  • MySQL索引如何轉換爲Crate。我沒有看到我可以繼續使用UNIQUE索引,然後依賴UPDATE ... ON DUPLICATE KEY ... SQL語句
  • 最後,如果我正確地假設一旦設置了集羣,Crate就會處理數據複製和同步,我沒有進一步的努力。因此,如果我的地理位置不同,Crate集羣節點會延遲與同步相關的問題,從而降低整個集羣的性能?我正在設想readng /寫入本地機箱實例,但可選擇在稍後能夠從另一個機箱實例恢復這些數據(同步無關)

這些問題可能不完全適合「SO格式,但考慮到年輕的箱子,我希望他們仍然被認爲是可以接受的。

回答

4

很高興喜歡它。

1)Crate中目前沒有ACL支持。所以管理界面以及HTTP端點都是打開的。總體思路是,箱子在私人網絡中運行,而不是直接暴露在外面。

請參閱this github issuethis blog post about how to create a read-only nginx proxy瞭解更多信息。

2)箱子不支持UNIQUE約束。 (除了主鍵,當然這是唯一的)。因此,如果主鍵已經存在,UPDATE .. ON DUPLICATE KEY將起作用。

其他UNIQUE約束很難做到,因爲數據可能駐留在不同的節點上,然後某種確保唯一性的機制非常昂貴。

3)是等待時間會減慢插入操作。還有更多關於Multi Zone Setup section in the Documentation