Поделиться через


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

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

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

нет

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

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

Если у вас есть отчет об инвентаризации для анализа, назначьте себе роль Чтение данных хранилища Blob, чтобы предоставить себе доступ на чтение к контейнеру, где находится CSV-файл отчета. Обязательно используйте адрес электронной почты учетной записи, которую вы используете для запуска отчета. Чтобы узнать, как назначить роль 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. Нажмите кнопку "Выполнить ", чтобы выполнить SQL-запрос. Количество BLOB-объектов и общий размер каждого контейнера отображаются на панели результатов .

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