2009-12-14 27 views
2

我現在正在評估Amazon SimpleDB。 SimpleDB非常靈活,它不必具有表(或域)模式。模式隨着創建/更新命令的流入而發展。所有這些都很好,但是當我使用建模工具(評估MindScape LightSpeed)時,爲了使工具能夠基於模式生成模型,我需要預先構建模式。我可以在SimpleDB中手工創建域,這確實有幫助,但爲此我必須在域上至少執行一次創建操作。我正在尋找只能創建域架構的功能。任何線索?我可以在Amazon SimpleDB中僅創建域模式(沒有任何數據)嗎?

回答

1

SimpleDB中沒有模式。

這就是爲什麼NoSQL人員建議在將範例轉移到這些非關係數據存儲之前「解除」關係數據庫的原因。

所以,你不能做你所描述的。沒有這些數據,就什麼都沒有了。

+1

非常真實......但如果我依賴LightSpeed等工具,我無法繼續使用新的範例。我一直在考慮使用Amazon RDS(MySQL),但不想掏腰包。你知道一個尊重這種範式的ORM嗎? – Kabeer 2009-12-14 11:45:10

+0

在LightSpeed Designer中,您應該可以使用「模型優先方法」。您不需要在模型之前擁有數據庫。 (http://www.mindscape.co.nz/products/lightspeed/features/designer.aspx)...或者我可能沒有完全理解你的問題? – 2009-12-14 11:55:28

+0

從我迄今爲止所經歷的情況來看,無法從模型中同步SimpleDB。這只是一種方式(DB模型)。對於其他RDBMS,它可以同時使用。 – Kabeer 2009-12-14 13:32:00

1

雖然SimpleDB確實沒有模式支持,但如果您對數字數據或日期*運行查詢,保留一些類型信息是至關重要的。大多數NoSQL產品都有查詢和類型,或者沒有查詢和無類型,但SimpleDB選擇了查詢和無類型。

結果,與主應用程序之外的任何工具整合將要求您可以:

在不同的地方
  1. 存儲重複類型信息
  2. 創建自己的簡單的模式系統來存儲類型信息

方案2看起來好多了,選擇它,儘管有人建議,但並不意味着你「沒有自己的想法」。

S3對於這些數據可以是一個很好的選擇,您可以將其保存在與您的域名同名的文件中,並且可以使用與SimpleDB帳戶相同的AWS憑據在任何地方訪問。

將數據存儲爲attributename = formatname列表是我需要做的範圍。實際上,您可以將所有這些內容存儲在域中的某個項目中。唯一的問題是,此特殊項目可能會無意中從您希望實時數據不是類型信息的域查詢返回。

我對MindScape LightSpeed並不熟悉,但是這是我在使用SimpleDB時發現有益的一般策略,並且如果產品能夠在S3中加載/存儲文件,那麼一切都會更好。

*注意:爲了清楚起見,我並不是說重新發明輪子或試圖將SimpleDB用作關係數據庫。我在談論的一個事實是,爲了使用SimpleDB的基於字符串的查詢語言,數字數據必須與零填充(根據您選擇的長度)和偏移值(取決於它是有符號還是無符號)一起存儲。一旦決定了應用程序中使用的格式或一組格式,在源代碼工具,查詢工具需要該信息的情況下,將這些信息隱藏並散佈在源文件中將是愚蠢的,報告工具或任何其他代碼。

相關問題