2016-02-18 2 views
2

Кто-нибудь знает, как я могу определить, сколько данных я храню в каждой таблице в каждой моей учетной записи?Azure Table Storage - Сколько данных я использую?

Я знаю, что могу получить общие данные, используемые для всех учетных записей, но я пытаюсь определить, сколько используется каждая таблица.

Я не думаю, что Azure предлагает что-нибудь из коробки, но как я могу создать что-то, чтобы понять это?

ответ

1

Нет встроенного механизма для извлечения размера таблицы. Вам нужно будет вычислить его. Сегодняшний Storage Analytics metrics обеспечивает только объем памяти.

4

Существует два способа получения размера всех таблиц в вашей учетной записи хранилища.

Вариант 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.

0

Вы можете использовать инструмент Azure Storage Manager.

В диалоговом окне свойств таблицы нажмите кнопку «Calc».

+0

Привет, я проверю это. Я предполагаю, что он выполнит вариант 1 ответа Гаурава Мантри. –