注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。
增量同步是有状态的同步,允许从同一表中进行追加式事务。提供以下类型的增量同步:
下表显示了哪些 SAP 对象类型支持哪些增量类型。
对象类型 | 单个字段 | 多个字段 | 字段连接 | 使用更改文档表 | 使用双表 | SAP 内置 | 复制 | 基于请求 | 组合 |
---|---|---|---|---|---|---|---|---|---|
表 | X | X | X | X | X | X | |||
远程表 | X | X | X | X | X | X | |||
信息提供者 | X | X | X | ||||||
远程信息提供者 | X | X | X | ||||||
SLT | X | ||||||||
提取器 | 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运算符)。
在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配置文件,用于指定信息提供者的类型和增量数据的处理方式。
要通过强制初始加载来重新初始化增量导入,请按照以下步骤操作:
resetIncrementalState: true
。SNAPSHOT
(确保任何 incremental*
参数保持设置)。resetIncrementalState: true
。APPEND
。当下次运行同步时,将正常进行增量追加。