注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

增量更新

增量同步是有状态的同步,允许从同一表中进行追加式事务。提供以下类型的增量同步:

  • 单个字段: 当目标表/对象中的单个字段大于或等于已导入的最大值时,导入行。
  • 多个字段: 类似于单个字段,但支持使用 OR 运算符组合多个字段;例如,当表中同时存在“创建”和“最后更新”时间戳字段时可以使用。
  • 字段连接: 类似于多个字段,但不是用 OR 运算符组合字段,而是将字段连接在一起;例如,当表中有独立的“最后更新日期”和“最后更新时间字段”时可以使用。
  • 使用更改文档表: 基于 SAP 的更改文档表中的更新导入新行。警告:这是一个实验性功能,可能并不总是能捕捉到所有更改;谨慎使用。
  • 使用双表或双表合并: 当“双表”中的字段大于或等于已导入的最大值时,从目标表中导入新行。双表合并允许将目标表设置为多个表的合并。

下表显示了哪些 SAP 对象类型支持哪些增量类型。

对象类型单个字段多个字段字段连接使用更改文档表使用双表SAP 内置复制基于请求组合
XXXXXX
远程表XXXXXX
信息提供者XXX
远程信息提供者XXX
SLTX
提取器X

同步定义中的增量字段属性用于管理增量更新。在初始批量提取后,每次增量更新仅提取已更改的行。使用多个字段类型时,字段列表应以逗号分隔。

要启用增量更新功能,请将事务类型设置为追加

理想情况下,提供的增量字段应为单调递增的值;然而,这并不总是可能。最佳选择可能是一个日期字段(不带时间组件)。因此,系统使用“大于或等于”比较(而不是仅“更大”),以确保如果上次同步在某个日期的中途运行,不会遗漏数据。

由于使用“大于或等于”比较,可能会在 Foundry 的结果数据集中出现重复值。这些重复值应作为数据变换管道中的第一步被移除(例如,通过检查主键重复行)。

增量更新不支持 BEx 查询或函数;所有同步将为完整提取。

有关 SLT 增量更新的更多详情,请参阅配置 SLT 的文档

使用更改文档表

该实验性功能通过引用两个 SAP 更改文档表:CDHDR 和 CDPOS 来工作。如果您要导入的表缺少任何明显的更新时间戳字段或其他单调递增的值(如唯一行 ID),这种方法可能会有用。

请注意,对于某些 SAP 对象,行的更改会包含在更改文档表中,但插入可能不会出现。因此,我们建议谨慎进行并彻底测试此功能,以实现预期的应用案例结果。

使用双表

该实验性功能允许您为增量更新指定与您导入到 Foundry 的表不同的表中的一个或多个字段。这可能会有所帮助,例如,如果您正在导入的主表是一个缺少合适更新时间戳字段的项目表,但有一个包含此类字段的头表(且该字段在项目表发生更改时会更新)。

双表增量

在此示例中,成功的初始加载后,后续请求将仅从 VBAP 中提取数据行,其中 VBAK(头表)中的 UPD_TMSTMP 字段大于或等于上次成功同步中的最高 UPD_TMSTMP 值。

增量双表设置用于指明要使用的双表。

增量双映射设置用于定义主表和双表之间的合并条件。语法如下:

{PRIMARY_TABLE_NAME}-{FIELD_NAME}={TWIN_TABLE_NAME}-{FIELD_NAME}

这个格式通常用于表示两个表之间的字段映射关系。在数据库设计中,可能用于说明主表和关联表(或称为双生表)之间的字段对应关系。例如:

  • {PRIMARY_TABLE_NAME} 表示主表的名称。
  • {FIELD_NAME} 表示主表中的字段名称。
  • {TWIN_TABLE_NAME} 表示与主表关联的另一个表的名称。
  • {FIELD_NAME} 在关联表中的字段名称,通常与主表字段名称相同。

这种映射在数据建模和数据库关系设计中非常重要。 多个合并条件可以使用分号应用(代表AND运算符)。

基于请求的InfoProviders增量

在SAP BW中,DSOs和InfoCubes通过使用数据传输过程(DTPs)加载。每个DTP创建一个加载请求,Palantir Foundry Connector 2.0 for SAP Applications现在使用这些请求来捕获更改的数据。

此功能仅支持未压缩的请求。如果数据传输到Foundry,则请求可以被压缩。如果请求在加载到Foundry之前被压缩,数据同步将失败,必须重新进行初始加载。

基于请求的增量摄取示例配置(注意,您需要从同步配置的基本视图切换到高级视图):

Copied!
1 2 3 4 type: magritte-sap-source-adapter sapType: infoprovider obj: <technical-name-of-infoprovider> # 信息提供者的技术名称 incrementalType: REQUEST # 增量数据类型为请求

这是一个SAP源适配器的YAML配置文件,用于指定信息提供者的类型和增量数据的处理方式。

重置增量状态

要通过强制初始加载来重新初始化增量导入,请按照以下步骤操作:

  1. 在同步配置中切换到高级选项卡。
  2. 在YAML配置中添加 resetIncrementalState: true
  3. 切换事务类型为 SNAPSHOT(确保任何 incremental* 参数保持设置)。
  4. 运行同步;这将从SAP执行完整快照,替换数据集中所有文件。
  5. 在YAML配置中移除 resetIncrementalState: true
  6. 将事务类型切换回 APPEND

当下次运行同步时,将正常进行增量追加。