成本归因¶
组织可以将使用 Snowflake 的成本归因于组织内的逻辑单元(例如部门、环境和项目),以深入了解这些成本。这种 chargeback(按存储容量使用计费)或 showback(按存储容量使用显示)模式对于会计目的很有用,但它也允许组织确定哪些单位的支出最多。此洞察力有助于确定组织内可以从控制和优化中受益的领域,以降低成本。
各项资源的成本归因¶
要将成本归因到不同分组(如部门、环境或项目),最直接有效的方法是使用 对象标记 功能标记特定资源。在此策略中,管理员创建一个标签(例如 cost_center
),然后定义该标签的可能值列表(例如 sales
、 finance
)。在本例中,每个成本中心都有一个唯一的标签值。然后将标签/值组合分配给成本中心使用的资源。当这些资源使用 credit 时,您可以运行按标签值分组的报告。由于此标签值直接对应于组织内的特定分组,因此可以准确地将成本归因。
利用对象标记,可以基于账户等普通对象或基于表等特定对象将成本归因。请注意,并非所有 可标记对象 都会累积成本。从成本管理的角度来看,只有存在架构视图,且该视图包含与对象相关的使用情况或成本数据时,标记对象才有意义。有关 Snowflake 使用情况和成本视图的列表,请参阅 浏览总体成本。
归因工作流程¶
使用对象标签将成本归因包括三项基本任务:
设计标签策略并创建适当的标签。
使用正确的标签/值对标记资源。
根据使用情况和标签数据运行报告。
为了帮助说明此工作流程,考虑这样一个 Snowflake 账户:
有两个成本中心:销售和财务。
有三个仓库。销售部门使用仓库 1 和仓库 2,而财务部门使用仓库 3。
在本例中,目标是将与每个仓库关联的仓库成本归因到相应的部门。
备注
下面的示例假定已向 tag_admin
角色授予了适当的权限。组织可以使用粒度 标记权限 来开发安全标记策略。
- 任务 1:设计标记策略并创建适当的标签
对于本例,具有适当权限的管理员创建一个名为
cost_center
的标签。USE ROLE tag_admin; USE SCHEMA my_db.my_schema; CREATE TAG cost_center;
- 任务 2:使用正确的标签/值对标记对象
标签管理员将适当的标签/值对应用于仓库。例如,由于销售部门使用
warehouse1
和warehouse2
,因此将对这两个资源应用相同的标签/值组合。USE ROLE tag_admin; ALTER WAREHOUSE warehouse1 SET TAG cost_center='SALES'; ALTER WAREHOUSE warehouse2 SET TAG cost_center='SALES'; ALTER WAREHOUSE warehouse3 SET TAG cost_center='FINANCE';
备注
如果管理员希望控制可以在对象上设置的值,则可以在创建标签时使用可选的
allowed_values
参数。有关详细信息,请参阅 CREATE TAG。- 任务 3:根据使用情况和标签数据运行报告
可以根据具有
cost_center
标签的资源的使用情况生成报告,以将成本归因。该数据可以在 Snowsight 中获得,也可以通过查询SNOWFLAKE.ACCOUNT_USAGE
架构获得。- Snowsight:
切换到具有 :ref:` ACCOUNT_USAGE 架构访问权限 <label-enabling_usage_for_other_roles>` 的角色。
导航到 Admin » Cost Management。
选择 Consumption。
从 Tags 下拉列表中选择
cost_center
标签。要关注特定成本中心,请从标签的值列表中选择一个值。
选择 Apply。
有关在 Snowsight 中进行筛选的更多详细信息,请参阅 按标签筛选。
- SQL:
Account Usage 架构包含有关资源使用情况和架构中的标签的数据。通过对此架构中的视图执行查询,可将仓库使用的 credit 归因到正确的成本中心。
USE snowflake.account_usage; SELECT tag_value AS cost_center, SUM(credits_used) FROM warehouse_metering_history, tag_references WHERE warehouse_name=object_name AND tag_name='COST_CENTER' GROUP BY 1 ORDER BY 2 DESC;
查询返回一个报告,如下所示:
COST_CENTER
CREDITS_USED
SALES
17.173333333
FINANCE
8.14444444
有关使用对象标签的完整详细信息,请参阅 Object Tagging。