5

Azure Table Storage の大幅な改善を考えています。「[PartitionKey=somestingPK] と [RowKey=somethingRK] の [value] でエンティティ フィールド [name] をインクリメント」」などの特定の操作で Table Storage にクエリを送信することはできますか?

@smarx この機能は利用可能になりますか?

4

3 に答える 3

5

これは、ETAG 追跡が有効になっているテーブルまたはページ ストレージで実現できます。この手法を使用して、Azure テーブルの各エントリの ID 値を作成します。アイデアは次のようになります。

  • ページ ブロブから値を読み取り、ETAG トラッキングを有効のままにします

  • 取得した値をインクリメントする

  • 取得した値を POST し、ETAG の競合がある場合は、操作全体を再試行します。おそらく、ここで指数バックオフ アルゴリズムを使用して、ターゲット コンテナーまたはパーティションの過負荷を防ぎます。

于 2012-11-16T13:42:09.603 に答える
1

はい、これは可能ですが、あなたが考えている通りではないかもしれません。MERGE 操作を探しています。これを使用するには、対象のエンティティ (つまり、エンティティのパーティション キーと行キー) を知っている必要があります。エンティティを取得して更新する必要はありませんが、REST 呼び出しごとに、またはバッチ機能 (いくつかの制限があります) を使用して、各エンティティに具体的に対処する必要があります。

于 2012-11-15T17:30:35.087 に答える
0

これはMySQLのクエリに似てUPDATEおり、現在AzureTableStorageで実行することはできません。このようなデータベースタイプでこれを実現できるかどうかはわかりません。最初にエンティティ全体を取得し、必要なフィールドを更新して、データベースに保存する必要があるためです。

于 2012-11-15T14:12:52.977 に答える