web-dev-qa-db-ja.com

AzureストレージテーブルとSQL

Azureの学習を始めたばかりで、SQLではなくAzureストレージテーブルに何かを入れたいと思うシナリオはあまり見られません。関連データが必要な環境での作業に慣れているのではないでしょうか?

Azure SQLデータベースのテーブルではなく、Azureストレージテーブルに何かを入れたほうがよいのはいつですか?

57
TheWommies

SQL Azureは、関係、インデックス、制約などを使用して構造化データを操作する場合に最適です。

Azureストレージテーブルは、リレーションシップがなく、通常は大量の集中化された構造化データを操作する必要がある場合に最適です。

価格:SQL Azure:5GBで月額25.98ドル

ストレージテーブル:175 GBで$ 21.88/m(トランザクションまたは帯域幅なし)したがって、大量のデータを保存する場合、ストレージテーブルの方がはるかに安価です。たとえば、ロギングを考えてみてください。

集中化:Windows Azureはサーバー用の分散環境であるため、1台のマシンに何かを保存しても他の人はそれを知らないため、ストレージテーブルは集中ログイン、セッション処理、設定などに適したソリューションです(覚えておいてください) 1つのデータセンターでも待ち時間があります)

速度:適切に設計すれば、多くの場合、ストレージテーブルはsql Azureより高速になりますが、おそらくユースケースに依存するため、実際にはテストしていません。

63
Ragnar

この投稿に遅れて追加している間、私はカバーされていないように見える1つのことを言及したかったです。 Azure SQLにはデータの制限があります(すぐに上がると思われます)。 Web Editionの場合は5 GB、Business Editionの場合は150 GB。一部のソリューションでは、これで十分です。しかし、他の人にとってはそうではないかもしれず、私は個人的にそれに遭遇しました。

Azureテーブルのディスクの上限ははるかに高くなっています。私はその100 TBを信じています。

また、NoSQLはその性質上非リレーショナルですが、必ずしも悪いことではありません。私たちは、実際に問題を別の方法で考える場合、実際にはそうではないかもしれませんが、実際には関係が必要だと思います。コード自体に関係を強制することができます。ほとんどの開発者は、彼らが本当に思っている以上に多くのことをしていると思います。

30

次の場合は、ずっと安いソリューションとしてAzureテーブルを常に使用します。

  • PKによるテーブル選択のみを実行します(プロパティの選択は、逆シリアル化全体のために低速です)
  • 限られたLinqセット( クエリ演算子(テーブルサービスサポート)
  • サーバーでテーブルを結合して複雑なクエリを実行する必要はありません
  • 私のデータの水平分割「シャーディング」が必要です(Sql Azure Federationsは、その方向で、テーブルが0日目からPartionKeyを持っていることによってその方向に進みます
10
Nikola Malovic

「NoSQL」の利点をお読みください http://en.wikipedia.org/wiki/NoSQL

非リレーショナルDB、スキーマなし、ビッグデータ、スケールをいくつか挙げてください!

0
user728584