2013-01-18 19 views
12

マルチテナントアプリケーションのためのAzureストレージ。我々は約1万人のテナントを持つAzureでマルチテナントアプリケーションを開発するために取り組んでおり、1テナントあたり約100 GB〜1 TBのデータストレージが必要です。アプリケーションは、ドキュメントとバイナリコンテンツをテナントごとのメタデータとともに個別に管理することです。私たちはAzure Block BLOBストレージにデータを格納することを考えています。テナントごとにデータを個別に管理する必要があるため、次のアプローチを採用しました。Azureブロブストレージの制限とフィルタ

  • テナントごとに別々のストレージアカウントを作成
  • 再び同様の請求に役立つ、利用テナント賢明を維持するのに役立ちます
  • カテゴリに基づいて を分離するために、各ストレージアカウント内の別々の容器を作成します。
  • ドキュメントをブロックブロブストレージにメタデータとともに格納します。

我々は我々のアプローチに対するクエリを次ています

  1. は、メタデータとともにブロックブロブ に文書またはバイナリコンテンツを保存することをお勧めますか?または、それを達成するためのよりよい方法がありますか(おそらく、メタデータにはSQL Azureを使用し、コンテンツにはBLOBを使用するか、 を使用します)。
  2. メタデータのフィルタ条件を使用してデータをクエリするにはどうすればよいですか?つまり、metadat1 = value1およびmetadata2 = value2のすべてのBLOBを取得します。
  3. 各テナントに個別のストレージアカウントを作成することをお勧めしますか? a。そうでなければ、Azureストレージとアプリケーションにテナント固有のデータを格納できるモデルはどれくらい効率的に使用できますか?
  4. スケーラビリティと高可用性の観点から、Blobストレージのデータの読み書きの要求数に帯域幅やその他の制限がありますか?
  5. 晴れのプライシングモデルによれば、ストレージのためにスラブ(最初は1 TB $ 0.095/GB、次に49 TB $ 0.08/GB)が充電されます。この費用は、ストレージアカウント単位またはサブスクリプション単位で適用されますか? a。同様に、トランザクションコストはストレージアカウントごとまたはサブスクリプションごとに適用されますか?

答えて

14
  1. メタデータとともにブロックブロブ内のドキュメントまたはバイナリコンテンツを保存することをお勧めますか?または、それを達成するためのよりよい方法がありますか(おそらくメタデータとBLOBのコンテンツとしてSQL Azureを使用する方が良いでしょうか?)
  2. メタデータのフィルタ条件を使用してデータをクエリするにはどうすればよいですか?すなわちmetadat1 = value1とメタデータ2 = value2のは

1及び2は、あなたがブロブストレージにメタデータを照会することはできません答えるために、すべてのブロブを取得します。ですから、SQL AzureまたはAzure Table Storageを使用するのが最善の選択だと思うのですが、どちらもクエリ機能を備えています。膨大な数のブロブ(そしてさらに多くのメタデータ)を格納することを考えれば、私はテーブルストレージにもっと傾いていますが、それは適切なパーティショニングのような特別な設計上の考慮が必要になります。

テナントごとに個別のストレージアカウントを作成することをお勧めしますか? a。そうでなければ、Azureストレージとアプリケーションにテナント固有のデータを格納できるモデルはどれくらい効率的に使用できますか?

  1. それはあなたの請求を簡素化:テナントごとに別々のストレージアカウントを持つ理由は、私は3つの理由を考えることができ

は良いアイデアです。

  • スケーラビリティの目標を維持するのに役立ちます。
  • 現在、各テナントは最大1TBのデータを格納できる可能性があると述べているため、現在のストレージアカウントの上限は200TBであるため、ストレージアカウントごとに最大200名のテナントしか維持できません。その後、別のストレージアカウントを見つけてそこにデータを格納する必要があります。
  • 全く別のストレージアカウント/テナントを維持する非常に洗練されたソリューションです。課題は、デフォルトの制限を20のストレージアカウント/サブスクリプションから増やすことです。あなたはそれをサポートするためにチャットをする必要があります。

    スケーラビリティと高可用性という観点から、Blobストレージの読み書きデータ要求の帯域幅やその他の制限はありますか?

    はい、WindowsのAzureブロブストレージチームからスケーラビリティの目標のブログを読んでください:紺碧の価格モデルを1としてhttp://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx

    を、彼らはストレージ用スラブ賢明を充電、すなわち最初の1 TB $ 0.095/GB 、次に49 TB $ 0.08/GB。この費用は、ストレージアカウント単位またはサブスクリプション単位で適用されますか? a。同様に、トランザクションコストはストレージアカウントごとまたはサブスクリプションごとに適用されますか?

    これはわかりませんが、ストレージアカウントごとに推測しています。これについては、サポートにお問い合わせください。

    これが役に立ちます。

    +0

    ありがとうGaurav。ちょっとしたことを明確にしたかったのです。まず、テーブルストレージにもっと傾いているので、これはメタデータ用で、コンテンツはまだBLOBになるでしょうか?第2に、ストレージアカウントの上限が200 TB、つまり100 TBと言われました。 200 TBはどこにも見つかりませんでした。 – Hitesh

    +1

    これは正しいです。コンテンツは実際にBLOBストレージに格納されますが、BLOBストレージはクエリをサポートしないため、クエリするメタデータはテーブルストレージ(またはSQL Azure)に移動します。ストレージアカウントの上限200 TBについてはこちらをご覧ください:http://blogs.msdn.com/b/windowsazurestorage/archive/2012/11/04/windows-azure-s-flat-network-storage-and-2012-scalability -targets.aspx。ただし、2012年6月7日以降に作成されたストレージアカウントにのみ適用されます。 –

    関連する問題