如何获取Azure Data Lake各容器存储成本及跨组织成本报告
跨组织Azure Data Lake容器存储成本报告方案
一、Azure Monitor 日志查询(精准关联资源与成本)
首先需要将Azure成本数据导出到Log Analytics工作区(在成本管理>导出中配置),之后可以用以下Kusto查询直接按容器汇总成本:
// 获取所有Data Lake存储容器资源 let storageContainers = Resources | where type == "microsoft.storage/storageaccounts/blobservices/containers" | project ContainerId = id, ContainerName = name, StorageAccountName = split(id, '/')[8], ResourceGroup = resourceGroup, SubscriptionId = subscriptionId; // 获取对应存储成本数据 let costData = Usage | where MeterCategory == "Storage" and MeterSubcategory contains "Data Lake" | project SubscriptionId, ResourceId, TotalCost = Cost, UsageDate = startofday(UsageStart); // 关联并汇总 storageContainers | join kind=inner (costData) on $left.SubscriptionId == $right.SubscriptionId and $left.ContainerId == $right.ResourceId | summarize TotalCost = sum(TotalCost) by ContainerName, StorageAccountName, ResourceGroup, SubscriptionId | sort by TotalCost desc
该查询会直接输出每个容器的总成本,按存储账户、资源组和订阅分组排序。
二、Azure 工作簿自定义可视化报告
- 进入Azure门户的「工作簿」服务,新建空白工作簿
- 添加「成本管理」数据源组件,配置:
- 时间范围:按需选择(比如过去30天)
- 分组维度:
ResourceId、Resource group、Subscription - 聚合指标:
总成本
- 添加筛选器,仅保留
MeterSubcategory包含「Data Lake」的项,同时将ResourceId过滤为存储容器类型(匹配microsoft.storage/storageaccounts/blobservices/containers) - 可添加参数(订阅选择器、时间范围选择器)让报告支持跨组织灵活筛选,完成后可导出为CSV或PDF。
三、Power BI 跨组织成本报表
- 导入两个数据源:
- Azure成本管理:直接连接Power BI,获取成本明细数据
- Azure资源Graph:运行查询获取所有存储容器的元数据:
Resources | where type == "microsoft.storage/storageaccounts/blobservices/containers" | project ContainerId = id, ContainerName = name, StorageAccountName = split(id, '/')[8], ResourceGroup, SubscriptionId
- 在Power BI中通过
SubscriptionId和ContainerId(对应成本数据中的ResourceId)关联两个数据集 - 创建可视化矩阵,行字段选择
ContainerName、StorageAccountName,值字段选择总成本;添加切片器实现订阅、时间范围的跨组织筛选。
常见问题排查
如果之前用成本分析未得到预期结果,通常是以下原因:
- 未精准筛选资源类型为存储容器,默认可能只显示存储账户层级成本
- 未区分Data Lake专属计量项,需筛选
MeterSubcategory包含「Data Lake Storage Gen2」的记录 - 缺少跨订阅/资源组的成本查看权限,需确保拥有
Cost Management Reader或更高权限
内容的提问来源于stack exchange,提问作者Julian Cook
相关产品推荐
相关产品推荐

