使用 Azure 存储清单计算每个容器的 Blob 计数和总大小

本文使用 Azure Blob 存储清单功能和 Azure Synapse 来计算每个容器 blob 的 Blob 计数和总大小。 优化每个容器的 Blob 使用率时,这些值非常有用。

先决条件

启用清单报表

此方法中的第一步是对存储帐户 启用库存报告 。 在启用库存报告后,您可能需要等待最多 24 小时才能生成第一个报告。

如果有要分析的清单报表,请通过为自己分配 存储 Blob 数据读取者 角色来授予对报表 CSV 文件所在的容器的读取访问权限。 请务必使用用于运行报表的帐户的电子邮件地址。 若要了解如何使用 Azure 基于角色的访问控制(Azure RBAC)向用户分配 Azure 角色,请按照 使用 Azure 门户分配 Azure 角色中提供的说明进行作。

注释

若要计算清单报表中的 Blob 大小,请确保在规则定义中包含 Content-Length 架构字段。

创建 Azure Synapse 工作区

接下来, 创建一个 Azure Synapse 工作区 ,用于执行 SQL 查询来报告清单结果。

创建 SQL 查询

创建 Azure Synapse 工作区后,请执行以下步骤。

  1. 请导航至 https://web.azuresynapse.azure.cn

  2. 选择左侧边缘的“ 开发 ”选项卡。

  3. 选择大加号(+)以添加项。

  4. 选择 SQL 脚本

    选择 SQL 脚本以创建新查询的屏幕截图。

运行 SQL 查询

请按照以下步骤进行:

  1. 在 Azure Synapse 工作区中添加以下 SQL 查询, 以读取清单 CSV 文件

    bulk对于参数,请使用要分析的清单报表 CSV 文件的 URL。

    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. 按 Ctrl+S 或选择“ 全部发布 ”按钮发布 SQL 查询。

  4. 选择“ 运行 ”按钮以执行 SQL 查询。 “ 结果 ”窗格中报告每个容器的 Blob 计数和总大小。

    运行脚本以计算 Blob 计数和总大小的输出的屏幕截图。