Существует два способа получения размера всех таблиц в вашей учетной записи хранилища.
Вариант 1: Время Потребляя Путь
Пожалуйста, обратитесь к этой прекрасной блоге по Avkash Чаухана о том, как размер объекта рассчитывается следующим образом: http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/30/how-the-size-of-an-entity-is-caclulated-in-windows-azure-table-storage.aspx. По существу формула:
4 байта + Len (PartitionKey + RowKey) * 2 байта + За-Каждое свойство (8 байт + Len (Название недвижимости) * 2 байта + Sizeof (.Net тип недвижимости))
Что вы можете сделать - это получить сущности из всех таблиц. Когда вы извлекаете сущности, вы вычисляете размер каждого объекта, а сумма размера всех объектов - это размер хранилища таблиц (плюс некоторый размер для хранения имен таблиц).
Обратите внимание, что в зависимости от количества таблиц в вашей учетной записи хранения и данных там может потребоваться некоторое время. Кроме того, при запуске этого приложения из-за пределов Azure вы понесете затраты на транзакцию хранения и затраты на исходящую пропускную способность.
Вариант 2: Easy Way
Это то, что мы используем в нашем приложении, где мы выводим общий размер счета для хранения (блобов, файлы, очереди и таблицы). По существу, мы используем Azure Billing/Usage API
. Используя этот API, вы можете получить размер учетной записи хранилища. Когда вы извлекаете данные из этого API, данные возвращаются в формате JSON. Для размера учетной записи хранилища обратите внимание, что эти данные являются кумулятивными, то есть значение, возвращаемое API, представляет собой размер учетной записи хранилища на значении даты/времени, указанном в записи.
Каждая запись содержит несколько вещей. Что интересно для вас в этом случае: Meter Category
(который будет Storage
), Meter Subcategory
(что будет зависеть от типа вашей учетной записи хранения) и Meter Name
. Имя счетчика, которое вас интересует, это Standard IO - Table/ Queue (GB)
. Что касается получения данных биллинга, вы можете получить эти данные с ежедневной или ежечасной детализацией. Если вы извлекаете данные с ежедневной детализацией, просто умножайте значение, которое вы получаете с 31
, чтобы получить общий размер в ГБ. Для ежечасной детализации умножьте значение, которое вы получаете с 744
, чтобы получить общий размер. В Github есть пример приложения о том, как использовать Billing/Usage API, который вы можете найти здесь: https://github.com/Azure/BillingCodeSamples.
Если вы хотите увидеть это в действии, не стесняйтесь попробовать приложение, которое я создаю. Вы можете узнать больше об этой конкретной функции в нашем сообщении в блоге по адресу http://blog.cloudportam.com/cloud-portam-updates-detailed-storage-account-usage-reports.
Привет, я проверю это. Я предполагаю, что он выполнит вариант 1 ответа Гаурава Мантри. –