Azure Table Storage の大幅な改善を考えています。「[PartitionKey=somestingPK] と [RowKey=somethingRK] の [value] でエンティティ フィールド [name] をインクリメント」」などの特定の操作で Table Storage にクエリを送信することはできますか?
@smarx この機能は利用可能になりますか?
Azure Table Storage の大幅な改善を考えています。「[PartitionKey=somestingPK] と [RowKey=somethingRK] の [value] でエンティティ フィールド [name] をインクリメント」」などの特定の操作で Table Storage にクエリを送信することはできますか?
@smarx この機能は利用可能になりますか?
これは、ETAG 追跡が有効になっているテーブルまたはページ ストレージで実現できます。この手法を使用して、Azure テーブルの各エントリの ID 値を作成します。アイデアは次のようになります。
ページ ブロブから値を読み取り、ETAG トラッキングを有効のままにします
取得した値をインクリメントする
取得した値を POST し、ETAG の競合がある場合は、操作全体を再試行します。おそらく、ここで指数バックオフ アルゴリズムを使用して、ターゲット コンテナーまたはパーティションの過負荷を防ぎます。
はい、これは可能ですが、あなたが考えている通りではないかもしれません。MERGE 操作を探しています。これを使用するには、対象のエンティティ (つまり、エンティティのパーティション キーと行キー) を知っている必要があります。エンティティを取得して更新する必要はありませんが、REST 呼び出しごとに、またはバッチ機能 (いくつかの制限があります) を使用して、各エンティティに具体的に対処する必要があります。
これはMySQLのクエリに似てUPDATE
おり、現在AzureTableStorageで実行することはできません。このようなデータベースタイプでこれを実現できるかどうかはわかりません。最初にエンティティ全体を取得し、必要なフィールドを更新して、データベースに保存する必要があるためです。