使用 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 计数和总大小的输出屏幕截图。