簡體   English   中英

Azure存儲入門:Blobs vs Tables vs SQL Azure

[英]Getting started with Azure storage: Blobs vs Tables vs SQL Azure

這是一個相當大的話題, blobs vs tables vs SQL ,盡管我到目前為止所閱讀的內容還是找不到適當的推理。

我們有一個多租戶SaaS Web應用程序,我們即將遷移到Azure。 我們使用SQL Server 2008數據庫。 我們存儲屬於文檔的文檔和日志信息。 有點像Dropbox。

論壇聲明,在考慮“大型”對象時,最好使用Azure表。 我們通常每個用戶存儲數百個文檔,文檔大小從5kb到30mb不等,絕大多數都在1MB左右?

什么時候去Blob,Tables,Sql有什么基本規則? 我已經知道我不應該將文檔存儲在SQL中,因為它太貴了。 但是什么時候將文件存儲在Blob中變得“有益”,何時我會更好地使用表格? 是否有某種公式如:

if (objects * MB/object * objectrequested > y) then blobs, else tables

我認為Igorek解決了您對SQL Azure的擔憂。 不過,你似乎仍然對Tables vs Blobs有疑問。

在你的情況下使用表存儲會很煩人。 ATS中的每個屬性/列最多可以是64KB,因此您必須將文檔拆分為多個屬性,然后重新組合它們。 每個實體還有4MB的限制,這將是一個問題。 Blob存儲沒有這些限制。

當您的小實體具有許多需要單獨存儲和查詢的屬性時,我傾向於使用Azure表存儲。 因此它適用於存儲對象或具有大量元數據的小文檔。

對於沒有大量元數據的事物,Blob存儲更有效。 這對於可能作為文件系統上的文件運行良好的事情是有益的。

我會將文檔本身存儲在Azure Blob存儲(而不是表存儲)中。 除了在SQL Azure數據庫中存儲文檔相當昂貴之外,每個meg(或更少,取決於卷)收取一分錢,因此SQL數據庫通常不是文檔的好地方。 SQL是一種關系數據庫,它提供了執行查詢,連接等功能的好處。在SQL數據庫中存儲大型文檔或圖像通常沒有任何好處,特別是當存在高度可擴展的中央存儲系統時,存儲起來非常便宜/訪問。

現在,如果您需要通過文檔本身進行搜索,我會使用類似Lucene.NET的東西來為基於文檔的存儲庫提供搜索功能。

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM