調べて見ました。
ドキュメントから読み取れるのは以下でした。
- 1ストレージアカウントが処理できる最大トランザクション数は20,000です。
- 1テーブルパーティションが処理できる最大エンティティは2,000です。
- バッチ処理(エンティティ グループ トランザクション(EGT))は1回のトランザクションです。
- 1回のEGTで100操作まで可能です。
操作とエンティティは同じような概念であると思いました。
なので1操作=1エンティティ操作みたいな感じだと思います。
Azureの他のサービスを見ていると、やろうとしていることの制限の、いずれか低いひっかかったものが制限になることが多いです。
(ストレージアカウントで20,000回操作が可能でも、テーブルへの操作は2,000回が最大なので、20,000回操作することはできず、2,000回が制限値)
abeaさんがやろうとしているのは1テーブルに対する処理のように見えますので、最大で2,000エンティティ操作可能と思います。
テーブルを分ければ20,000トランザクションを使い切れると思います。
以前調べた時に、テーブルストレージの処理能力以上必要な場合は、CosmosDBを使うことというのが書いてあったと思うので、処理速度が必要な場合はCosmosDBにした方が良いのかもしれません。(すごく高くなりますが。)
以下、参照したドキュメントと文面
バッチ処理
Azure Storage では、バッチ トランザクションがエンティティ グループ トランザクションと呼ばれています。 エンティティ グループ トランザクションに含まれるすべての操作は、単一テーブル内の 1 つのパーティションを対象としている必要があります。 可能な場合は、エンティティ グループ トランザクションを使用して一括での挿入、更新、削除を実行してください。 エンティティ グループ トランザクションを使用することにより、クライアント アプリケーションとサーバーの間のラウンド トリップ数が減少し、課金対象のトランザクション数も少なくなります (1 つのエンティティ グループ トランザクションは課金対象の 1 回のトランザクションとしてカウントされ、最大 100 回のストレージ操作が含まれます)。さらに、アトミックな更新 (1 回のエンティティ グループ トランザクションですべての操作が成功するか、すべて失敗するかのいずれかになるような更新) も可能になります。 モバイル デバイスなどの待ち時間が長い環境では、エンティティ グループ トランザクションを使用することで大きなメリットが得られます。
バッチ処理は「エンティティ グループ トランザクション(EGT)」と呼ばれる
EGTは100エンティティ含めることができる。
EGTは100エンティティ操作しても1トランザクションである。
単一テーブル内の1つのパーティションを対象としている必要がある。
エンティティ グループ トランザクションのサイズ
トランザクションには最大で 100 個のエンティティを含めることができ、ペイロードは 4 MiB 未満にする必要があります。 エンティティ グループのトランザクションには、エンティティへの更新を 1 回だけ含めることができます。
ストレージ アカウントあたりの最大要求レート
毎秒 20,000 トランザクション (エンティティ サイズは 1 KiB を想定)
1 つのテーブル パーティションのターゲット スループット (1 KiB のエンティティ)
毎秒最大 2,000 エンティティ
EGTは最大4MiBである。
処理能力は以下の通り
- ストレージアカウントは最大で毎秒20,000トランザクション(エンティティ最大1kiB)
- テーブルパーティションは最大で2,000エンティティ(1kiB)
1 秒あたりのエンティティ (ストレージ アカウント)
テーブルに対するアクセスのスケーラビリティ限界は、1 アカウントにつき 1 秒あたり最大 20,000 エンティティ (各 1 KB) です。 一般に、挿入、更新、削除、スキャンされたエンティティがそれぞれ、このターゲットに対してカウントされます。 したがって、100 エンティティを含むバッチ挿入は 100 エンティティとカウントされます。 1 回のクエリで 1,000 エンティティをスキャンし、5 つが返された場合のカウントは、1,000 エンティティです。
1 秒あたりのエンティティ (パーティション)
単一パーティション内のテーブルに対するアクセスのスケーラビリティ ターゲットは、1 秒あたり 2,000 エンティティ (各 1 KB) です。カウント方法は前のセクションと同じです。
エンティティグループトランザクションの要件
エンティティ グループ トランザクションは、次の要件を満たしている必要があります。
トランザクションに含まれる操作の対象となるすべてのエンティティが、同じ PartitionKey 値を持っている必要があります。
エンティティはトランザクション内に 1 回だけ出現でき、それに対して 1 つの操作しか実行できません。
トランザクションには最大で100のエンティティを含めることができ、合計ペイロードのサイズは 4 MiB 以下にする必要があります。
すべてのエンティティには、「 Table Service データモデルについて」で説明されている制限が適用されます。
1 秒あたりのエンティティ (パーティション)
単一パーティション内のテーブルに対するアクセスのスケーラビリティ ターゲットは、1 秒あたり 2,000 エンティティ (各 1 KB) です。カウント方法は前のセクションと同じです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。