1

ミラーリングされた複数のノードを持つ Azure ストレージ トポロジがありますが、どのリージョンのどのユーザーがどのコンテナー ノードを使用しているかに応じて異なるデータを持つことができます。

私の要件は、3 つのノード テーブルをマスター ノード テーブルに同期することです。たとえば、テーブルがユーザーの場合、3 つのノード (ノード A、ノード B、ノード C) は、重複を無視し、参照されなくなった行を削除して、3 つのノードの結合の結果をメインのユーザー テーブルに取り込みます。

「ビッグ ハンマー」アプローチ (SQL でこれを行っている場合) は、マスター テーブルからユーザーのリスト、ノードの 3 つのリストを取得し、ノードを新しいコレクションに結合し、そのコレクションをマスター コレクションと比較し、データのマージ/ユニオンを実行し、最終的にその新しいマージされ切り捨てられたコレクションをそのマスター ノードにプッシュします。

私の質問は次のとおりです。

  1. これを行う組み込みの Azure の方法はありますか?
  2. 上で説明したように C# でこれを行うことは良い習慣でしょうか?
  3. どのような種類の問題/リスクが発生する可能性があり、どのような考慮が必要ですか?
  4. この問題のより良い解決策を提案できますか? 実証済みの何か (おそらくデザイン パターン?)
  5. C# でこれを行うためのコード サンプルを提供できますか?

Azure にこの機能のサポートに役立つメカニズムがない場合、Azure を除外することができ、これは純粋な C# リスト操作の問題になると思います。

どうもありがとう。

4

1 に答える 1

1

1) いいえ、しかし舞台裏で Microsoft は azure テーブルをさらに 5 回 (合計 6 コピー) ジオレプリケート/ローカルにレプリケートします..彼らはこれのために明示的な API をリリースするかもしれません 2) データ/頻度のサイズに依存します仕事の... /トランザクションごとに料金が発生することを覚えておいてください..4時間ごとに数十億行を実行し始めると、これには多額の費用がかかり始めます3)ワーカーロールでこれを行うので、データはMS データ センターを離れる必要がなく、パフォーマンスが向上します。worker ロールでは、特定の間隔で実行するように「スケジュール」することもできます

Azure Table Storage は、これに対する優れたソリューションではありません。永続化されたストレージ間の同期は、データベース間の SQL Database で提供されます。ただし、データを抽出し、これらすべての操作をアトミックな方法で処理することは、Azure 固有の問題ではありません。

于 2013-10-04T02:14:31.450 に答える