You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Palantir Foundry增量转换报错“Differing start transactions for incrementality”求解决

解决Palantir Foundry中Fusion工作表作为增量Transform输入的事务不匹配错误

问题背景

使用Fusion工作表创建虚拟数据集,配置为增量模式Transform的输入。手动向数据集追加一行后重新运行Transform,预期执行增量转换,但实际触发SNAPSHOT模式并抛出错误:

transforms._errors.RequiredIncrementalTransform: View start transactions differ for input dataset ri.foundry.main.dataset....-e54b44db2243. Was ri.foundry.main.transaction....-b9b7d303518c, now ri.foundry.main.transaction....-7395d1f42b71

由于业务需要分配唯一ID,必须保证Transform始终以增量模式执行。

解决方案

该错误核心原因是:Fusion工作表的底层视图事务会在每次手动编辑后生成新版本,打破了增量Transform依赖的输入事务链,导致系统无法识别有效增量范围,强制切换到快照模式并触发校验错误。可通过以下方式解决:

1. 引入中间同步层(推荐方案)

  • 创建一个快照模式的Transform,将Fusion工作表的数据同步到常规Foundry数据集(如Parquet格式)。这个同步Transform可设置为定时自动刷新,或在Fusion工作表编辑完成后手动触发运行。
  • 将同步后的常规数据集作为增量Transform的输入,常规数据集的事务链稳定,不会因编辑操作产生视图事务变更,增量Transform可正常基于事务追踪执行增量处理。

2. 强制基于列值的增量追踪

如果必须直接使用Fusion工作表作为输入,修改Transform代码,显式指定增量追踪的业务列(而非依赖事务ID):

  • 在Transform函数上添加@incremental装饰器,指定incremental_key为数据中的唯一递增列(如时间戳列、自增ID列):
from transforms.api import transform, Input, Output, incremental

@incremental(incremental_key='record_create_time')
@transform(
    output=Output("ri.foundry.main.dataset.your-output-dataset"),
    input=Input("ri.foundry.main.dataset.your-fusion-dataset")
)
def compute(ctx, input, output):
    # 增量处理逻辑:仅处理record_create_time大于上次运行最大时间的行
    last_max_time = ctx.get_state().get('last_max_time', None)
    if last_max_time:
        df = input.dataframe().filter(f"record_create_time > '{last_max_time}'")
    else:
        df = input.dataframe()
    
    # 分配唯一ID等业务逻辑
    df = df.withColumn('unique_id', ...)
    
    output.write_dataframe(df)
    
    # 更新状态,记录本次处理的最大时间
    current_max_time = df.selectExpr("max(record_create_time)").collect()[0][0]
    ctx.get_state().set('last_max_time', current_max_time)
  • 这种方式绕过Foundry的事务追踪,直接基于业务列判断增量范围,不受Fusion视图事务变化的影响。

3. 禁用快照回退校验

在Transform的配置中,找到「增量设置」,禁用「如果增量不可用则允许快照运行」的选项,强制Transform仅以增量模式执行。此操作需结合项目权限,且前提是已通过上述两种方式确保增量范围可被正确识别。

内容的提问来源于stack exchange,提问作者Benji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:37:24