23

かなりの話題です、BLOB対テーブル対SQL、これまでに読んだすべてにもかかわらず、私はまだ何のために適切な推論を見つけることができません。Azureストレージを使い始める:BLOB対テーブルSQL Azure

私たちはAzureに移動しようとしているマルチテナントのSaaS Webアプリケーションを持っています。私たちはSQL Server 2008データベースを使用します。私たちは文書を保管し、文書に属する情報を記録します。 Dropboxのようなものがあります。

フォーラムでは、「大きな」オブジェクトを検討しているときに、Azureテーブルを使用する方が良いと述べています。私たちは通常、ドキュメントのサイズが5kbから30MBに変わるユーザーあたりの数百のドキュメントを保存しますが、その大部分は約1MBです。

Blobs、Tables、Sqlの場合は、いくつかの基本ルールがありますか?私はすでに高すぎるので、私は自分の文書をSQLに保管すべきではないことをすでに知っていました。しかし、いつBlobsにドキュメントを格納するのが「有益」になるのですか?いつテーブルを使うのがよいでしょうか?私はAzureブロブストレージ(ないテーブル記憶)で文書自体を格納します

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

+1

同様の質問への私の2つの答えをチェックアウト: http://stackoverflow.com/questions/4930368/when-should-i-use-sql-azure-and-when-should-i-use-テーブルストレージ/ 4930557#4930557 http://stackoverflow.com/questions/11540516/azure-mvc-web-app-architecture-how-to-split-data-between-split-data-between-sql-azure-and-azure/11541394#11541394 – Igorek

+0

Heya、多くのありがとう(私は質問を投稿する前にそのうちの1つを見つけました)。それは多くの助けになりますが、私には究極の疑問が残ります。頻繁に取得され、平均サイズが1MB〜5MBのドキュメント用のテーブルを用意する必要がありますか?アプリケーションは「ドキュメントに関するもの」なので、頻繁に検索されます。しかし、私はあなたの取引の説明が適用されるかもしれないと思います。メタデータはより頻繁に検索されます。だから、あなたはSql Azureにメタデータを入れて文書をテーブルに保存することをお勧めしますか? – bas

+0

あなたの入力で少し質問を更新 – bas

答えて

18

私はIgorekがあなたのSQL Azureの問題を解決したと思います。あなたはテーブル対ブロブについてまだ疑問があるようです。

テーブルストレージを使用している場合は、迷惑でしょう。 ATSの各プロパティ/カラムは64KB以下にすることができるので、複数のプロパティに渡ってドキュメントを分割してから再アセンブリする必要があります。エンティティごとに4MBという制限もありますが、これは問題になります。ブロブストレージにはこれらの制限がありません。

多くのプロパティを持つ小さなエンティティを個別に保存して照会する必要がある場合は、Azureテーブルストレージを使用する傾向があります。したがって、格納されたオブジェクト、または多数のメタデータを持つ小さなドキュメントではうまく機能します。

ブロブストレージは、大量のメタデータがない場合に適しています。ファイルシステム上のファイルとしてうまくいくかもしれないものには良いことです。

8

:のような式のいくつかの種類があります。メガあたり1ペニー(またはボリュームに応じてより少ない)を課金するSQL Azureデータベースにドキュメントを格納するのはかなりコストがかかるという事実の外に、SQLデータベースは一般的にドキュメントのための良い場所ではありません。 SQLは、照会、結合などの機能を提供するリレーショナル・データベースです。SQLデータベースに大きなドキュメントやイメージを格納する利点はありません。特に、非常にスケーラブルな中央ストレージ・システム/アクセス。

文書自体を検索する必要がある場合は、Lucene.NETのようなものを使用して、文書ベースのリポジトリの検索機能を提供します。

HTH

+0

私はちょうどあなたが必要な場合は、メタデータのためにそれを追加しますさまざまな列に対して集約クエリまたはクエリを実行するSQLはおそらくあなたの最善の策です。他のすべてのケースでは、Azureテーブルがおそらく最も良いでしょう – knightpfhor

+0

ブロブのために移動するときとテーブルを移動するときに、基本ルールのセットを定義できますか?私は今一歩進んでいます。高価すぎるため、SQLに文書を保存したくありません。そのためのThx。意志決定のブロブ/テーブルのためのいくつかの基本ルールは高く評価されるだろう。 – bas

+0

基本ルールはありません。しかし、私はBlobストレージをスケーラブルなファイルシステムと考えています。従来のオンプレミスアプリでファイルシステムに保存するデータは、AzureでBlobストレージを使用します。 SQL Azureとテーブルストレージの選択肢の大部分は、規模を必要とすることがほとんどです。テーブルストレージは使いにくいです。従来のSQLよりも使用するのがずっと困難です。したがって、SQL Azureがボリュームまたはスケールを処理できない場合にのみ、それを使用します(TableStorage)。 – Igorek

関連する問題