Вычисление количества BLOB-объектов и общего размера для каждого контейнера с помощью инвентаризации служба хранилища Azure

В этой статье используется функция инвентаризации хранилища BLOB-объектов Azure и Azure Synapse для расчета числа BLOB-объектов и общего размера BLOB-объектов для контейнера. Эти значения будут полезны при оптимизации использования BLOB-объекта для контейнера.

Необходимые компоненты

нет

Включение отчетов инвентаризации

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

Получив отчет об инвентаризации для анализа, предоставьте себе доступ для чтения контейнера, в котором находится CSV-файл отчета, назначив себе роль Storage Blob Data Reader. Обязательно укажите адрес электронной почты учетной записи, которая используется для создания отчета. Чтобы узнать, как назначить роль Azure пользователю с помощью управления доступом на основе ролей Azure (Azure RBAC), следуйте инструкциям, приведенным в статье Назначение ролей Azure с помощью портала Azure.

Примечание.

Чтобы вычислить размер большого двоичного объекта из отчета инвентаризации, обязательно включите поле схемы Content-Length в определение правила.

создание рабочей области Azure Synapse;

Затем Создайте рабочую область Azure Synapse, в которой будет выполняться SQL-запрос, чтобы передать результаты инвентаризации.

Создание SQL-запроса

После создания рабочей области Azure Synapse выполните следующие действия.

  1. Перейдите к https://web.azuresynapse.net.

  2. Выберите вкладку Разработка на левом краю.

  3. Выберите крупный знак "плюс" (+), чтобы добавить элемент.

  4. Выберите Сценарий SQL.

    Снимок экрана: выбор скрипта SQL для создания нового запроса.

Запуск SQL-запроса

Выполните приведенные ниже действия:

  1. Добавьте следующий SQL-запрос в рабочую область Azure Synapse, чтобы считать CSV-файл инвентаризации.

    В качестве параметра bulk используйте URL-адрес файла CSV отчета об инвентаризации, который требуется проанализировать.

    SELECT LEFT([Name], CHARINDEX('/', [Name]) - 1) AS Container,
            COUNT(*) As TotalBlobCount,
            SUM([Content-Length]) As TotalBlobSize
    FROM OPENROWSET(
        bulk '<URL to your inventory CSV file>',
        format='csv', parser_version='2.0', header_row=true
    ) AS Source
    GROUP BY LEFT([Name], CHARINDEX('/', [Name]) - 1)
    
  2. Укажите имя SQL-запроса на панели свойств справа.

  3. Опубликуйте SQL-запрос, нажав сочетание клавиш CTRL + S или кнопку Опубликовать все.

  4. Нажмите кнопку Запустить, чтобы выполнить запрос. Количество BLOB-объектов и общий размер каждого контейнера отображаются в области результатов.

    Снимок экрана: выходные данные из запуска скрипта для вычисления количества BLOB-объектов и общего размера.