如何从AWS Athena中访问Cost Allocation Tag数据
解决方案
前置校验
先再次确认Cost and Usage Report(CUR)配置的「报告内容」模块已勾选包含成本分配标签,只有开启该选项的CUR报告才会投递标签数据。
1. 确认数据覆盖范围
成本分配标签数据不会回溯到你激活标签、开启CUR标签选项之前生成的账单数据,只有配置生效后新生成的CUR文件才会包含标签字段。你可以直接下载S3存储桶中配置生效后生成的CUR源文件,确认是否存在resource_tags_开头的字段。
2. 同步更新Athena表结构
该问题90%以上的场景都是Athena表为开启CUR标签选项之前创建,旧表结构没有同步新增的标签字段:
- 若你使用AWS官方提供的建表语句:删除原有CUR表,到CUR报告详情页复制最新的官方适配建表语句,在Athena中执行即可生成包含标签字段的新表。
- 若你使用Glue Crawler自动生成表结构:重新运行一次对应CUR路径的Crawler,即可自动识别新增的标签字段同步到表结构。
3. 标签字段查询语法
CUR中的成本分配标签不会生成独立顶层字段,存储规则和查询语法如下:
- 如果你使用的是CSV格式的CUR:标签会生成
resource_tags_<标签键>格式的独立字段,标签键中的特殊字符会自动替换为下划线,比如标签键app:project对应的字段名为resource_tags_app_project - 如果你使用的是Parquet格式的CUR:标签统一存储在
resource_tags嵌套结构体中,通过resource_tags['<标签键>']语法查询
查询示例:
-- CSV格式CUR查询示例,标签键为project SELECT line_item_usage_start_date, product_product_name, line_item_unblended_cost, resource_tags_project FROM your_cur_table_name WHERE line_item_usage_start_date >= date '2024-01-01' LIMIT 100; -- Parquet格式CUR查询示例,标签键为project SELECT line_item_usage_start_date, product_product_name, line_item_unblended_cost, resource_tags['project'] as project_tag FROM your_cur_table_name WHERE line_item_usage_start_date >= date '2024-01-01' LIMIT 100;
内容的提问来源于stack exchange,提问作者Daniel Szpisjak
相关产品推荐
相关产品推荐

