Azure表存储-我正在使用多少数据?

And*_*and 2 azure azure-storage azure-table-storage

任何人都知道如何确定每个存储帐户中每个表中存储的数据量吗?

我知道我可以获取用于所有存储帐户的整体数据,但是我试图确定每个表使用了多少数据。

我不认为Azure提供了开箱即用的功能,但是我将如何创建一些解决方案呢?

Gau*_*tri 5

您可以通过两种方式获取存储帐户中所有表的大小。

选项1:时间消耗方式

请参考Avkash Chauhan撰写的精彩博客文章,其中介绍了如何计算实体的大小:http//blogs.msdn.com/b/avkashchauhan/archive/2011/11/30/how-the-size-of- Windows azure-table-storage.aspx中已计算了一个实体。本质上,公式为:

4字节+ Len(分区键+行键)* 2字节+每个属性(8字节+ Len(属性名称)* 2字节+ Sizeof(.Net属性类型))

您可能要做的就是从所有表中获取实体。在获取实体时,您将计算每个实体的大小,所有实体的大小之和就是表存储的大小(加上一些用于存储表名的大小)。

请注意,根据存储帐户中表的数量和其中的数据,可能要花一些时间。此外,如果从Azure外部运行此应用程序,则将产生存储事务成本和出站带宽成本。

选项2:简便方法

这是我们在应用程序中使用的东西,我们在其中显示存储帐户的总大小(斑点,文件,队列和表)。本质上,我们使用Azure Billing/Usage API。使用此API,您可以获取存储帐户的大小。从此API获取数据时,数据以JSON格式返回。对于存储帐户的大小,请注意,此数据是累积的,即API返回的值代表记录中指示的日期/时间值上存储帐户的大小。

每个记录包含许多内容。在这种情况下,您感兴趣的是Meter Category(将是Storage),Meter Subcategory(将取决于存储帐户的类型)和Meter Name。您感兴趣的仪表名称是Standard IO - Table/ Queue (GB)。就获取计费数据而言,您可以按每日或每小时粒度获取该数据。如果您要以每日粒度获取数据,则只需将获得的值相乘31即可得出以GB为单位的总大小。对于小时粒度,将获得的值乘以744得到总大小。Github上有一个有关如何使用Billing / Usage API的示例应用程序,您可以在这里找到:https : //github.com/Azure/BillingCodeSamples

如果您希望实际操作,请随意尝试我正在构建的应用程序。您可以在我们的博客文章http://blog.cloudportam.com/cloud-portam-updates-detailed-storage-account-usage-reports上了解有关此特定功能的更多信息。