你的 Tecton 发票只显示一个数字,AWS 账单却悄悄承载了其余部分,而这两份文件都不会自称是特征服务的全部成本。这种拆分就是陷阱所在。Tecton 按消费量定价——为它运行的管道支付计算额度,再加上那些管道在你自己的账户内消耗的云资源——所以你从 Tecton 收到的发票永远只是支出的一部分。如果你的账只记了发票就到此为止,你的销货成本就被低估了,毛利率就被高估了,而你在这个毛利率之上做出的每一个定价决策,都建立在一个从未完整的数字上。
本文解释 Tecton 实际如何计量和计费,为什么生产环境的特征服务应计入销货成本,如何处理预付额度和消费承诺,以及如何在月末协调这一切,让每一美元都落到正确的科目中。
Tecton 的计量方式:按特征视图,而非席位
Tecton 是一个面向机器学习的托管特征平台。你把数据转换定义为特征视图,Tecton 在批处理或流式管道上计算它们,并把结果服务给你的模型——一个离线存储用于大规模训练检索,一个在线存储用于实时推理中的低延迟检索。没有按席位计算的许可证要清点。你为平台在计算、存储和服务你的特征时所消耗的资源付费。
这些消耗分为两类,分别在不同的地方计费,这是首先要内化的第一件事。
第一类是 Tecton 额度。它们覆盖 Tecton 代表你管理的计算资源:用于流特征视图的 Spark 流计算额度,用于批特征视图的 Spark 批计算额度。你对平台的使用转化为额度,这些额度出现在 Tecton 发票上。
第二类是基础设施本身,通过你自己的云账户计费。Tecton 在你的 AWS 或 GCP 环境中管理计算和存储资源,因此在线存储的读写、Spark 集群计算、在线存储存储空间和 S3 存储都落在你的云账单上——而不是 Tecton 的账单上。一个通过一种渠道采购、却通过另一种渠道对账的团队,总会发现缺口。一旦决定:一个特征视图的真实成本是两个类别之和,并确保你的月末取数同时覆盖 Tecton 发票和云账单上打了标签的行项目。
流式与批特征视图的消耗方式不同
成本构成因特征视图类型而异,知道你运行的是哪种,就能知道该关注哪些行项目。
流特征视图涉及在线存储读写、Spark 流集群计算、Tecton Spark 流计算额度、S3 存储和在线存储存储空间。批特征视图有类似的清单——在线存储读写、Spark 作业集群计算、Tecton Spark 批计算额度和 S3 存储——只是少了流式特有的部分。
推动账单变化的参数,是你的 ML 工程师每天做出的设计选择。持续流处理的检查点和写入频率远高于基于间隔的处理,所以成本更高。更大的聚合窗口需要更多计算。为迟到数据设置更长的水位线会提高内存需求。集群配置直接为每个作业定价。数据压缩降低存储成本并提升读取性能。这些都不是财务设置;它们是有财务后果的工程设置,这就是为什么这个平台的会计工作从两个团队之间的对话开始——讨论存在哪些特征视图,以及它们被调校成做什么。
成本层级告诉你的钱去了哪里
Tecton 自己的指南按从高到低排列成本影响,这个顺序值得记住,因为它能预测你的意外将从哪里来。
在线存储操作位居首位。对在线存储的写入通常是最大的基础设施成本,尤其是在回填期间——为新特征视图或变更后的特征视图重新计算历史特征——或在持续流处理下。回填是一次计划中的尖峰:数天或数周的历史计算和大量写入被压缩到一个窗口里。如果没人提前通知财务它要来了,它落地的那个月看起来就像成本超支,而不是一项投资。
计算资源排第二:用于流处理和批处理的 Spark 集群成本,随配置和工作负载变化。存储排第三:在线存储存储空间和读取,加上 S3,通常影响低于计算和写入。
实际后果是,你的账单由写入和计算事件驱动,而不是由多少人登录控制台决定。这里的容量规划意味着管控回填、处理模式和聚合窗口——而不是人员编制。
为什么生产特征服务属于销货成本
根据美国公认会计原则(US GAAP),SaaS 公司的销货成本——收入成本——包括交付客户付费服务的直接成本:托管基础设施、云计算和存储、嵌入产品的第三方软件,以及任何其他随用量扩展的东西。生产 ML 产品的特征服务轻松达到这个标准。当你的欺诈模型给一笔交易打分、你的推荐引擎给信息流排序、或你的定价模型报出一个费率时,在线存储的读取和保持这些特征新鲜的管道,就像它们背后的应用服务器一样,是直接的交付成本。
这种分类很重要,因为它直接影响毛利率——投资者、贷款机构和收购方用来判断你的产品经济性是否成立的那个数字。把服务成本放在线下计入一般运营费用会夸大毛利率,并掩盖规模化故事。尽职调查团队无论如何都会把你的总账重新映射到标准的 SaaS 销货成本定义上;从一开始就正确分类,意味着你自己的仪表盘讲述的故事,与外部人士计算出来的故事一致。
不过,并非每一美元的 Tecton 支出都属于销货成本。拆分遵循的是用途,而不是供应商:
- 生产环境服务是销货成本。 实时推理的在线存储读写、保持生产特征新鲜的流式和批处理管道,以及它们背后的存储,都在交付面向客户的服务。
- 实验和预发布环境是运营费用。 开发特征视图、离线实验和预发布环境支持研发,而不是交付。把它们记入研发费用。
- 仅用于训练的工作需要判断。 只为训练下一版模型而存在的离线特征计算,看起来更像研发而非交付;同一条管道如果为实时服务向在线存储供数,则是销货成本。当一个特征视图两者兼有时,按一个有依据的驱动因素来分摊——按环境打标签的云支出是大多数团队拥有的最干净的方式。
Tecton 按特征视图为计算实例和在线存储资源打标签,所以分摊数据存在于你的云成本管理工具中。会计任务是:一次性决定映射关系——哪些特征视图服务生产,哪些服务实验——然后每个月应用它,而不是在每次结账时重新争论。
购买 Tecton 是费用;自建同类平台可能资本化
还有一个值得弄对的分类:购买 Tecton 的团队按上述方式将消耗费用化,而基于开源软件自建特征存储的团队则面临资本化问题。为自己的运营开发的内部使用软件,一旦项目通过初步阶段,就可能符合资本化条件,这会把工程薪酬和基础设施变成一项摊销资产,而不是当期费用。
两种处理都不是可选的装饰。如果你运行 Tecton,不要像自建平台那样把它的发票资本化。如果你从自建存储迁移到 Tecton,旧的资本化资产继续摊销,而新的消耗计入销货成本——两条不同的线,两个不同的故事,同时都正确。
预付额度和承诺首先是资产,之后才是费用
消费平台通常出售预付额度或年度消费承诺,两者的会计处理都遵循配比原则:把付款记为资产,然后在利益被消耗时费用化。提前汇给供应商的一美元还不是任何东西的成本。当额度消耗于生产环境服务时,它变成销货成本;当消耗于实验时,它变成研发费用;如果未使用就过期,它变成损失。
在实践中,这意味着三笔分录,而不是一笔。当你购买额度时,借记预付资产,贷记现金。每个月,按实际消耗量冲减余额——生产消耗计入销货成本,预发布环境消耗计入研发费用。如果额度带过期日期,把它排进日程;过期余额是真实的损失,值得计划一次核销,而不是在明年的清理中才发现。
照付不议的最低消费会在其上增加一笔计提。如果你的合同承诺最低季度消费,你欠的是实际消耗与最低消费中的较大者。当接近期末时消耗低于承诺,就计提你无论如何都要欠的差额。发票以后才会来,但负债在资产负债表日就已存在,结账应当反映它。
月末对账:两张账单,一个真相
Tecton 发布计费用量日志——详细记录平台使用情况及其如何转化为额度的 CSV 记录,大约在用量发生后一两天落入你自己的对象存储。结合打了标签的云支出,这些日志就是你对账所依赖的抄表读数。把每月流程视为三个来源的相互匹配:用量日志、Tecton 发票和云账单。
一份可行的结账清单大致如下:
- 拉取整月的用量日志。 确认每个生产特征视图的额度和每个实验的额度都在,包括最后两天——日志延迟意味着在每月一号运行的结账会缺数据。要么等日志,要么按运行速率计提最后几天,下个月再调整。
- 计提未开票的 Tecton 部分。 像大多数消费计费一样,发票在所覆盖期间之后才到。按环境拆分,为当月估计的额度计提销货成本和研发费用,待发票到达时冲回并调整。
- 拉取打了标签的云支出。 在云成本管理工具中按同期特征视图标签筛选。这是第二类支出——Spark 集群、在线存储操作、存储——也必须同样按生产与预发布环境拆分。
- 将日志、发票和云账单相互对账。 用量日志应与 Tecton 发票勾稽;打了标签的云行项目应朝同一方向变动。回填的那个月两者都会激增。与日志出现偏差的发票是一个现在就该提出的计费问题,而不是等到续约时才提。
- 冲减预付款和承诺。 从预付资产中费用化已消耗的额度,计提任何承诺差额,确认剩余余额在过期前仍可使用。
最常见的失败是第三步——一丝不苟地对账 Tecton 发票,而云侧支出却藏在更大的基础设施账单里、归在笼统的托管费用下。如果你的云账单只显示一条混合计算行项目,先修正标签,再修正其他任何东西。未打标签的支出无法分摊,而未分摊的支出总会落到错误的地方。
账本中一个具体的月份
假设你的 ML 平台在一月份消耗了 Tecton 额度,生产环境服务计费 40,000 美元,实验计费 8,000 美元,另有 12,000 美元打了标签的云支出,其中生产 9,500 美元、预发布环境 2,500 美元。你还在季度初预付了 100,000 美元额度。一月份的记账如下:
2026-01-01 open Assets:Cash:Operating USD
2026-01-01 open Assets:Prepaid:Tecton-Credits USD
2026-01-01 open Expenses:CostOfSales:Feature-Serving USD
2026-01-01 open Expenses:Research:ML-Experimentation USD
2026-01-01 open Liabilities:Accrued:Tecton USD
2026-01-01 open Liabilities:Accrued:Cloud USD
2026-01-05 * "Tecton" "Prepay Q1 consumption credits"
Assets:Prepaid:Tecton-Credits 100000.00 USD
Assets:Cash:Operating -100000.00 USD
2026-01-31 * "Tecton" "January credit consumption, prod serving plus experimentation"
Expenses:CostOfSales:Feature-Serving 40000.00 USD
Expenses:Research:ML-Experimentation 8000.00 USD
Assets:Prepaid:Tecton-Credits -48000.00 USD
2026-01-31 * "Cloud" "January tagged feature-platform infra, prod plus staging"
Expenses:CostOfSales:Feature-Serving 9500.00 USD
Expenses:Research:ML-Experimentation 2500.00 USD
Liabilities:Accrued:Cloud -12000.00 USD这个模式可以推广:预付款是资产,消耗按环境把它转为费用,云侧则单独计提,因为它单独计费。如果你的团队用纯文本记账,文档中的成本追踪模式自然可以扩展到按特征视图拆分,而仪表盘视图让生产与预发布环境的趋势逐月可见。
会误报毛利率的错误
消费计费的 ML 基础设施团队反复出现四个错误。每一个都预防起来很便宜,而在重述多个期间后解开却很昂贵。
把 Tecton 发票当作全部成本。 发票只是一个类别。每个月云侧的计算、在线存储操作和存储会增加一个规模相当的第二类别,省略它会使销货成本低估大约一半。要么两者都对账,要么两者都不报。
在付款时就把预付款费用化。 一笔 100,000 美元的额度购买,不是汇款当月 100,000 美元的费用。它是一笔资产,随着额度消耗而转为费用。在付款时费用化会把成本前置到本季度,让后续月份失去其真实成本,并使消费趋势无法解读。
把预发布环境计入销货成本。 实验特征视图、用于模型研究的离线回填和预发布环境是研发。把它们混入服务成本会夸大销货成本,并因为从未接触客户的工作而惩罚毛利率。特征视图标签的存在正是为了保持这种拆分的诚实——使用它们。
跳过计提。 消费账单在事后开具,用量日志延迟一两天,云账单到得更晚。没有计提的结账会把不完整的月份记为完整月份,而缺失的那些天会作为下个月的神秘差异浮出水面。按运行速率计提,然后在文件到达时调整。
这个月最后一个有用的步骤很小:打开你的云成本管理工具,按特征视图标签筛选,确认你看到的数字就是你账本里的数字。如果两者从未相遇,你刚刚就找到了本文旨在弥合的缺口。





