【发布时间】:2017-09-29 16:21:52
【问题描述】:
在写入 azure 存储表期间我有大量数据传出,有什么原因吗?没有更多的存储操作,只有写入。 有一种操作会发生多次:
await keyRepository.InsertEntityAsync(new KeyEntity
{
PartitionKey = item.PartitionKey,
RowKey = item.RowKey
});
InsertEntityAsync 看起来像:
public async Task InsertEntityAsync(T entity)
{
if (entity == null) throw new ArgumentNullException(nameof(entity));
await _cloudTable.ExecuteAsync(TableOperation.Insert(entity));
}
_cloudTable的创建:
private readonly CloudTable _cloudTable;
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(storageConnectionString);
TableRequestOptions tableRequestOptions = new TableRequestOptions { RetryPolicy = retryPolicy };
CloudTableClient cloudTableClient = cloudStorageAccount.CreateCloudTableClient();
cloudTableClient.DefaultRequestOptions = tableRequestOptions;
_cloudTable = cloudTableClient.GetTableReference(tableName);
_cloudTable.CreateIfNotExists();
编辑 1
读取 - 45.5 GB
写入 - 39.4 GB
【问题讨论】:
-
如何定义“巨大”?您的图表不显示单位(我们也不知道您的插入频率,这是相关的,因为每个 REST 调用确实有某种类型的响应)。你怎么知道出站传输仅仅是从写入到表存储?
-
根据图表,我在过去 2 天花费了 3.96 美元用于数据传输。基于price 它是 45.5 GB
-
您要向表中写入多少数据?
-
Azure 中的指标目前存在问题,但根据价格,我写了大约 39.4 GB
-
忘了问:你的代码在哪里运行?与您的存储帐户相同的区域,还是不同的区域?
标签: c# azure azure-storage azure-table-storage