Azure関数では、一部のデータを集計して集計をテーブルに書き込もうとしています。Azureテーブルストレージ(Azure関数付き)に集計を書き込む際に「Entity already exists」エラーが発生する
私はデータをまとめたもので、クエリがあります。
var query = recs
.GroupBy(r => new { r.Category, r.Account, r.Record })
.Select(r => new ts_webhitaggregate_account
{
PartitionKey = partition, // Constant
RowKey = $"{r.Key.Category}:{r.Key.Account}:{r.Key.Record}", // Group By
rawDate = intervaldate, // Constant
epochDate = intervalepoch, // Constant
Category = r.Key.Category, // Group By
Account = r.Key.Account, // Group By
Record = r.Key.Record, // Group By
Hits = r.Count(), // Aggregate
Users = r.Select(t => t.User).Distinct().Count(), // Aggregate
Devices = r.Select(t => t.Device).Distinct().Count() // Aggregate
});
を私はその後、私は頻繁に「エンティティが既に存在する」エラーが発生していICollectorバインド表
foreach (ts_webhitaggregate_account a in query.ToList())
{
webhitsAggAccount.Add(a);
}
にこれらのレコードを渡そうとしますlike:
呼び出しの対象によって例外がスローされました。 Microsoft.WindowsAzure.Storage:82:指定されたエンティティは既に存在します。
私がC#に匹敵するSQL文を書いていたのであれば、書き込まれるすべての値がキー、定数、または集約であるため、複合キーの複製が可能であるとは思っていませんでした。私はまた、紛争の原因となる可能性のある既存のデータをテーブルに持っていません。
クエリで重複を生成するにはどうしたらよいですか?
申し訳ありませんが、これは、Azure関数がそのメソッドをafaikのまま使用することはできないため、より多くのコードを書くことを意味します。私はコードを挿入するアイテムを生成する問題があると思う - それは私に挿入するユニークな行を生成する必要があるように見える –
また、fwiw ...私はバッチInsertOrReplaceメソッドを書いて、それは起こっている同じエラーがあっただから私は、挿入するものをどのように生成するのかという問題を考えました –