创建和提供在线特征¶
为延迟敏感的机器学习推理工作流程创建和提供在线特征。在您正在创建的特征视图上启用在线特征,或更新现有特征视图以启用在线服务。
重要
您必须拥有 Snowflake 版本 9.26 或更高版本以及 snowflake-ml-python 版本 1.18.0,才能使用在线特征服务。
在线特征服务具有以下优势:
用于实时推理的低延迟点查找
来自离线源的自动数据同步
完全托管的基础设施和维护
适用于要求苛刻的工作负载的弹性扩展
在线特征服务由 在线特征表 提供支持。
数据新鲜度¶
具有在线特征服务的特征视图会自动同步来自离线商店的数据。
使用 target_lag 参数来配置将数据同步到在线特征表的频率。您可以将此值设置为从最短 10 秒到最长 8 天。
在线功能表会在后台使用您指定的值进行刷新。如果连续五次刷新失败,则在线功能表将暂停。有关刷新失败故障排除的信息,请检查刷新历史记录。
刷新模式¶
Snowflake 使用以下刷新模式来更新数据:
增量刷新:这是首选且最有效的模式。Snowflake 跟踪源中的更改,并仅将新行或更新的行合并到在线商店中。这样可以最大限度地降低计算和 I/O 成本。
完整刷新:此模式会删除表中的所有现有数据,并从源重新加载所有内容。它更耗费资源,在无法进行增量刷新时使用。
您可以显式将刷新模式设置为 INCREMENTAL 或 FULL,也可以将其设置为 AUTO,让 Snowflake 确定最有效的可用刷新模式。
时间序列数据处理¶
为确保数据一致性,可以指定 timestamp_col。当在源中找到具有相同主键的多行时,Snowflake 仅引入具有最新时间戳的版本。如果未指定时间戳列,则最近处理的行优先。
提供创建和提供在线特征的访问权限¶
在开始使用在线特征商店之前,必须向相关角色提供必要的权限。
要提供权限,请使用 SQL 中的访问控制设置 中描述的访问控制脚本。运行脚本后,授予以下权限:
使用 Python API 管理和提供在线特征¶
以下示例展示了在创建新特征视图时如何配置在线特征服务。您可以使用 OnlineConfig 对象来指定在线服务设置,例如目标数据新鲜度滞后。
以下是 OnlineConfig 参数:
参数 |
类型 |
描述 |
默认值 |
|---|---|---|---|
启用 |
布尔,可选 |
指定是否应为特征视图启用在线特征服务。 |
默认值:None。False |
target_lag |
Str,可选 |
采用“<num> (seconds|minutes| hours|days| s|m| h|d)”格式的字符串,用于指定目标数据新鲜度滞后。 |
默认值:None。10 秒 |
备注
refresh_freq 和 OnlineConfig.target_lag 独立运作。在上面的示例中,从 my_df 表示的源数据到在线数据存储的有效目标数据传播延迟将是 refresh_freq + online_config.target_lag。
更新特征视图以启用/禁用在线特征服务¶
对于现有的特征视图,您可以使用 update_feature_view 方法更新在线特征服务配置。您可以使用此方法为现有特征视图启用在线特征服务。
使用以下代码启用在线特征服务。
使用以下代码禁用在线特征服务。
从在线存储中检索特征¶
要从在线存储中检索给定样本的特征值,请使用 read_feature_view 方法并传递特征名称列表以及样本的联接键:
暂停/恢复在线数据刷新¶
使用以下代码暂时暂停数据刷新。
使用以下代码恢复数据刷新。
这些操作会暂停/恢复离线特征视图(动态表和关联任务)和在线特征表(如果存在),以确保所有存储类型的状态一致。
手动刷新特征视图¶
store_type 实参指定是否刷新离线 (StoreType.OFFLINE) 或在线 (StoreType.ONLINE) 特征数据。
查看刷新历史记录¶
store_type 实参指定是否返回离线 (StoreType.OFFLINE) 或在线 (StoreType.ONLINE) 存储刷新历史记录。
了解成本¶
在线特征表在以下使用模式下会产生成本:
虚拟仓库计算:对混合表的查询通过虚拟仓库执行。键查找和数据引入操作都会按标准费率使用虚拟仓库 Credit。有关更多信息,请参阅 虚拟仓库 Credit 使用量。
云服务计算:Snowflake 架构的云服务层在执行身份验证、元数据管理和访问控制等后台任务时会消耗 credit 。需要识别底层基础对象中的变更,并确定何时需要刷新操作。有关更多信息,请参阅 云服务 Credit 使用量。
混合表存储:存储成本基于每 GB 的统一月费率。它比传统的 Snowflake 存储成本更高,但与存储混合表的成本相同。有关更多信息,请参阅 Credit 使用量表 中的表 3(b)。
混合表请求:截至 2026 年 3 月 1 日,混合表请求不再计费,并且在此定价变更生效后不久,计量功能被禁用。
小技巧
增量刷新有助于降低成本。增量更新通常比完全刷新更具成本效益,从而降低计算和数据引入成本。
成本监控¶
要监控成本,请使用以下视图: