質問

私は現在、Web サイト用の ASP.NET とサイト内の Silverlight を使用して Azure でホストされ、豊かなユーザー エクスペリエンスを実現する Web アプリケーションの計画段階にいます。アプリケーション データの保存には Azure Tables と SQL Azure を使用する必要がありますか?

役に立ちましたか?

解決

Azureテーブルストレージは、SQL Azureのよりも安価であるように思われます。また、SQL Azureのより高度にスケーラブルである。

SQL Azureでは、リレーショナルデータベースの多くの作業を行ってきた場合と作業が容易です。あなたは既にSQLデータベースを使用していたアプリケーションを移植された場合は、SQL Azureのに移動することは当然の選択であってもよいが、それは私がそれをお勧めします唯一の状況だでしょう。

Azureのテーブル上の主な制限は、二次インデックスの欠如です。これは、PDC '09で発表され、現在はすぐに来てと表示されているが、任意の時間枠の発表がなかったです。 ( HTTPを参照してください。 :?//windowsazure.uservoice.com/forums/34192-windows-azure-feature-voting/suggestions/396314-support-secondary-indexes REF =タイトルの)

私はあなたのデータの大部分をテーブルとBLOBストレージを使用するハイブリッドシステムの提案された使用を見てきましたが、検索やフィルタリング、インデックスのSQL Azureのを使用しています。しかし、私はその解決策はまだ自分を試す機会がありませんでした。

セカンダリインデックスは、テーブルストレージに追加されたら、

は、それが本質的に基づいて、クラウドであろうのNoSQLするシステムおよびそれが今よりもはるかに有用であろう。

他のヒント

SQL Azure テーブルとテーブル ストレージには、名前は似ていますが、共通点はほとんどありません。

役立つかもしれない 2 つのリンクを次に示します。

基本的に、最初に疑問に思うべきことは、 私のアプリは本当にスケールする必要があるのでしょうか? そうでない場合は、SQL Azure を選択してください。

二つの選択肢間で決定しようとしている方のために、式に因数報告要件に確認してください。 SQL Azureの報告と他のレポート製品は、箱から出してSQL Azureのをサポートしています。あなたは、複雑なまたは柔軟なレポートを生成する必要がある場合、あなたはおそらく表の記憶域を避けたいでしょう。

Azure テーブルは SQL Azure よりも安価でシンプルであり、拡張性に優れています。SQL Azure はマネージド SQL 環境であり、本質的にマルチテナントであるため、パフォーマンス要件が SQL Azure に適合しているかどうかを分析する必要があります。SQL Azure のプレミアム バージョンが発表され、この記事の執筆時点ではプレビュー段階にあります (「 ここ).

SQL Azure と Azure テーブルのどちらを選択するかを決める決め手は次のとおりだと思います。

  • 複雑な結合を実行し、セカンダリ インデックスを使用する必要がありますか?「はい」の場合、SQL Azure が最良の選択肢です。
  • ストアド プロシージャが必要ですか?「はい」の場合は、SQL Azure。
  • 自動スケーリング機能が必要ですか?Azure テーブルが最良の選択肢です。
  • Azure テーブル内の行のサイズは 4MB を超えることはできません。行内に大きなデータを保存する必要がある場合は、データを BLOB ストレージに保存し、テーブル行で BLOB の URI を参照することをお勧めします。
  • 大量の半構造化データを保存する必要がありますか?「はい」の場合、Azure テーブルが有利です。

Azure テーブルはシンプルさとコストの点で非常に有益ですが、考慮する必要がある制限がいくつかあります。参照してください ここ 最初のガイダンスとして。

もう 1 つの考慮事項は遅延です。以前は、Microsoft がテーブル ストアと SQL Azure を使用して、さまざまなオブジェクト サイズのスループットとレイテンシーに関するマイクロベンチマークを実行するサイトがありました。そのサイトはもう利用できないので、私の記憶に基づいて大まかに説明します。テーブル ストアは、SQL Azure よりもスループットがはるかに高い傾向があります。SQL Azure の遅延は (5 分の 1 まで) 低くなる傾向があります。

テーブル ストアはスケールしやすいことはすでに述べました。ただし、SQL Azure も同様に拡張できます。 連盟. 。フェデレーション (事実上、 シャーディング) アプリケーションに多くの複雑さが追加されます。フェデレーションがパフォーマンスにどの程度影響するかはわかりませんが、ある程度のオーバーヘッドがあると思います。

ビジネスの継続性が優先される場合は、Azure Storage の使用を検討してください。 安価な geo レプリケーションが得られます デフォルトでは。SQL Azure を使用すると、同様のことを実現できますが、次の場合はさらに労力がかかります。 SQLデータ同期. 。SQL データ同期では、データの変更を監視するためにすべてのテーブルのトリガーが必要となるため、パフォーマンスのオーバーヘッドも発生することに注意してください。

私は、これは古い質問が、それでも非常に有効なものであると認識ので、私はそれに私の返事を追加しています。

CoderDennisと他の人が事実のいくつかを指摘している - Azureのテーブルは安価であり、かつAzureのテーブルがはるかに大きくすることができ、より効率的ななど、あなたが100%であれば必ずアズールに固執し、テーブルに行きます。

しかし、これはあなたがすでにAzureの上で決定している前提としています。 Azureのテーブルを使用することで、Azureプラットフォームに自分自身をロックしています。それはちょうどアマゾンに上のポートに行くのではありませんAzureのテーブルに非常に特定のコードを書くことは、あなたのコードのそれらの領域を書き換える必要があります。他のクラウドサービスへのオーバーはるかに簡単にLINQの意志ポートとSQLデータベースの一方のプログラミングで。

あなたはすでにクラウドプラットフォーム上で決めた場合、これは問題ではないかもしれません。

私はAzureテーブルとの組み合わせでAzureのキャッシュを見てお勧めします。単独の表が大幅に応答時間/ UIの対話を遅くすることができ、より高い時折スパイクと200-300msの待ち時間を有しています。キャッシュ+表は私のために、当選役のようです。

あなたの質問については、私はロジックで決定する方法について話をしたいSQL表を選択し、どのAzureテーブルを使用する必要があります。

私たちが知っているようにSQL表は、リレーショナルデータベースエンジンです。あなたはSQLがビッグデータを取得するクエリので、SQL表は、適用されない一つのテーブルに大きなデータを持っている場合は遅います。

あなたはAzureテーブルを選択することができます。この時点では、Azureテーブルのクエリは、その後SQL表は、ビッグデータのための非常に高速である、例えば、当社のウェブサイトでは、誰かが多くの記事を購読、我々はユーザーへの供給物として、すべてのユーザーが持っている記事を作ります記事のタイトルと説明のコピーは、その記事のテーブルで、我々はSQL表を使用する場合、各クエリの実行は多分30秒以上かかる、大量のデータがあります。しかし、AzureテーブルでのPartitionKeyとのrowKeyにより、ユーザーの記事フィードは非常に高速で取得します。

この例から、あなたは、SQL表とAzureテーブルに間を選択する方法を知っていることがあります。

私たちはやがて、いくつかの「ベンダーの独立した」クラウドAPIライブラリで終わるしようとしているのだろうか?

私はあなたのアプリケーションの使用状況ファンネルが何であるかを定義する最初の持っていることと思います。データモデルは、頻繁な変化にさらされたり、安定したものですでしょうか?あなたは超高速挿入を実行できるようにする必要がありますし、読み取りそれほど複雑ではありませんか?あなたは、検索などのGoogleを進める必要があるのですか?保存BLOBS?

これらはあなたがより多くの可能性があなたのデータを保存するにはNOSQLまたはSQLアプローチを使用しようとしているかどうかを判断するために、自分自身を尋ねると、答えなければならないことを質問(だけではなく)されます。

両方のアプローチが簡単に共存できることを考慮してくださいし、同様にBLOBストレージを拡張することができます。

Azureのテーブルの両方とSQL Azureの2つの異なるbeasts.Both異なるシナリオのために意図されている、紺碧のテーブルに1 conが、あなたが、このようなシフトを扱うことができ、あなたのコード内のプロバイダを記述しない限り、あなたは、他のプラットフォームへ紺碧から移動することはできませんということですます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top