关于Snowflake中两类计量历史表数据不符的技术问询
两个Snowflake计费表数据不匹配的核心原因
以下是导致SNOWFLAKE.ORGANIZATION_USAGE.METERING_DAILY_HISTORY和SNOWFLAKE.ORGANIZATION_USAGE.WAREHOUSE_METERING_HISTORY的credits_used求和结果不一致的关键原因:
服务覆盖范围差异
METERING_DAILY_HISTORY是全组织所有计费服务的日汇总表,包含传统虚拟仓库、服务器less仓库、管道运行、数据加载等多种服务的credits;而WAREHOUSE_METERING_HISTORY仅统计传统虚拟仓库的计算credits。即使按service_type过滤,需确认是否覆盖所有仓库相关类型:比如METERING_DAILY_HISTORY中服务器less仓库的credits归类为SERVERLESS_WAREHOUSE,若只过滤WAREHOUSE会漏算这部分数据。时间统计逻辑不一致
两个表的时间维度规则存在差异:WAREHOUSE_METERING_HISTORY的start_time是仓库任务实际启动时间,若你用本地时区转换date(start_time),会和METERING_DAILY_HISTORY默认的UTC日期(usage_date为UTC标准日期)产生错位,导致统计的日期范围不匹配。- 跨天运行的仓库任务,
WAREHOUSE_METERING_HISTORY会拆分为多条记录对应不同的start_time日期,而METERING_DAILY_HISTORY会按UTC当日实际运行时长拆分credits到对应usage_date,时区不统一会直接导致数据偏差。
数据刷新周期不同
两个表的更新频率有明显差异:WAREHOUSE_METERING_HISTORY延迟通常在15分钟到1小时内,属于近实时更新;METERING_DAILY_HISTORY是日维度汇总,当日数据需到次日凌晨才会完全同步完成,若查询当日数据,会出现daily表数据未更新完全的情况。
特殊场景的credits计算差异
部分边缘场景下的统计规则不同:比如仓库自动暂停/启动产生的微小credits、多集群仓库的闲置节点credits,WAREHOUSE_METERING_HISTORY会实时记录,而METERING_DAILY_HISTORY的汇总逻辑可能做四舍五入或合并处理,导致求和结果出现细微差异。
内容的提问来源于stack exchange,提问作者electric wish
相关产品推荐
相关产品推荐

