配置复制方法

Replication方法和重新检查用于标识数据库表中的新数据或更新数据。 正确设置这些变量对于确保数据准确性和优化的更新时间至关重要。 本主题侧重于复制方法。

Data Warehouse管理器中同步新表时,将自动为该表选择复制方法。 通过了解各种复制方法、表的组织方式以及表数据的行为方式,可以为表选择最佳的复制方法。

复制方法有哪些?

Replication方法分为三组 — IncrementalFull TablePaused

Incremental Replication 意味着Commerce Intelligence在每次复制尝试时只复制新的或更新数据。 由于这些方法可显着减少延迟,因此Adobe建议尽可能使用它。

Full Table Replication 表示Commerce Intelligence在每次复制尝试时复制表的全部内容。 由于要复制的数据量可能很大,因此这些方法可能会增加延迟和更新时间。 如果表包含任何带时间戳的列或日期时间列,Adobe建议改用增量方法。

Paused ​表示表的复制已停止或暂停。 Commerce Intelligence不会在更新周期中检查新数据或更新数据;这意味着不会从将此作为复制方法的表中复制任何数据。

增量复制方法 incremental

修改于(最理想)

Modified At复制方法使用datetime列(在创建行时填充,并在数据更改时更新)来查找要复制的数据。 此方法旨在处理符合以下条件的表:

  • 包含datetime列,该列最初是在创建行时填充的,并在修改行时更新;
  • datetime列从不为null;
  • 不会从表中删除行

除了这些条件外,Adobe还建议为用于Modified At复制的datetime列​ 编制索引,因为这有助于优化复制速度。

当更新运行时,通过搜索在最近更新之后发生的datetime列中带有值的行来识别新数据或更改的数据。 当发现新行时,会将它们复制到您的Data Warehouse。 如果Data Warehouse管理器中存在任何行,则当前数据库值将覆盖这些行。

例如,一个表可能有一个名为modified\_at的列,它指示上次更改数据的时间。 如果最新更新在星期二中午运行,则该更新将搜索星期二中午具有modified\_at值大于星期二的所有行。 在星期二中午之后创建或修改的任何发现行都将复制到Data Warehouse。

您知道吗?
即使您的数据库当前不能支持Incremental复制方法,您也可以对您的数据库进行更改,以便能够使用Modified AtSingle Auto Incrementing PK

Modified At不仅是最理想的复制方法,也是最快的复制方法。 此方法不仅会在数据集较大时产生显着的速度提升,而且不需要配置重新检查选项。 其他方法需要遍历整个表以标识更改,即使一小部分数据发生了更改也是如此。 Modified At仅迭代该小子集。

单个自动递增主键

Auto Incrementing是按顺序将主键分配给行的行为。 如果某个表为Auto Incrementing,而该表中最高主键为1,000,则下一个主值为1,001或更高。 不使用Auto Incrementing行为的表可以分配小于1,000的主键值或跳转到更大的数字,但这不是常用的。

此方法旨在从满足以下条件的表中复制新数据:

  • single-column primary key;和
  • primary key数据类型是integer;并且
  • auto incrementing主键值。

当表使用Single Auto Incrementing Primary Key复制时,通过搜索高于Data Warehouse中当前最高值的主键值来发现新数据。 例如,如果Data Warehouse中的最高主键值为500,则下次更新运行时,它将搜索主键值为501或更高的行。

添加日期

Add Date方法的功能与Single Auto Incrementing Primary Key方法类似。 此方法使用timestamped列来检查新行,而不是使用整型作为表的主键。

当表使用Add Date复制时,通过搜索时间戳值来发现新数据,这些值大于与您的Data Warehouse同步的最新日期。 例如,如果更新上次运行时间为20/12/2015 09:00:00,则时间戳大于该时间戳的任何行都将标记为新数据并进行复制。

NOTE
Modified At方法不同,Add Date不检查现有行中是否有更新的信息 — 它只向前查找新行。

全表复制方法 fulltable

完整表

在检测到新行时,Full table复制会刷新整个表。 这显然是最不有效的复制方法,因为所有数据必须在每次更新期间重新处理(假定有新行)。

通过在同步过程开始时查询数据库并计算行数来检测新行。 如果本地数据库包含的行数超过Commerce Intelligence个,则表会被刷新。 如果行数相同,或者Commerce Intelligence包含的行数比本地数据库多​ ​行,则会跳过该表。

这会引出​ Full Table复制在以下情况下不兼容的重要点:

  • 在后续更新周期之间,删除的行数多于在本地数据库表中创建的行数,或者
  • 列值已更改,但未创建其他行

在上述任一情况下,Full Table复制不会检测到任何更改,并且您的数据会过时。 由于此复制方法效率低下,并且满足上述要求,因此,最后才建议使用Full Table复制。

主键批次

当表使用Primary Key Batch (PK批次)时,通过计数主键值的范围或批次中的行来发现新数据。 虽然您通常认为这可以与整数一起使用,但也可以通过允许系统定义常量范围的方式对文本值进行排序。

例如,假设更新运行并对从1到100的键范围执行行计数。 在此更新中,系统会查找并记录37行。 在下一次更新中,再次对1-100范围执行行计数,并找到41行。 由于与上次更新相比的行数存在差异,因此系统会更详细地检查该范围(或批次)。

此方法旨在从满足以下条件的表中复制数据:

  • 单列非整数;或
  • 组合键(包含主键的多个列) — 请注意,在组合主键中使用的列不能具有null值;或
  • 单列、整数、不自动增加主键值。

此方法并不理想,因为检查批次和查找更改时必须执行的处理量太大,所以速度非常慢。 Adobe建议不要使用此方法,除非无法进行必要的修改以支持其他复制方法。 如果必须使用此方法,则预计更新时间会增加。

设置复制方法

复制方法是逐表设置的。 要为表设置复制方法,您需要Admin权限才能访问Data Warehouse管理器。

  1. 进入Data Warehouse管理器后,从Synced Tables列表中选择表以显示表的架构。

  2. 当前复制方法列在表名下方。 要更改它,请单击链接。

  3. 在显示的弹出窗口中,单击IncrementalFull Table复制旁边的单选按钮以选择复制类型。

  4. 接下来,单击​ Replication Method ​下拉菜单以选择方法。 例如,PausedModified At

    note note
    NOTE
    某些增量方法需要您设置Replication Key。 Commerce Intelligence将使用此键来确定下一个更新周期的开始位置。
    例如,如果要为orders表使用modified at方法,则需要将date column设置为复制密钥。 可能存在多个复制密钥选项,但您选择了created at或创建订单的时间。 如果上一个更新周期在12/1/2015 00:10:00停止,则下一个周期将开始复制日期大于此日期的created at数据。
  5. 完成后,单击​ Save

看看整个过程:

正在结束

最后,您将此表放在一起,比较各种复制方法。 在为Data Warehouse中的表选择方法时,这种方法非常方便。

Method
Syncing New Data
Processing Rechecks on Large Data Sets
Handle Composite Keys?
Handle Non-Integer PKs?
Handle Non-Sequential PK Population?
Handle Row Deletion?
Auto-Incrementing Primary Key
更快
慢速
Primary Key Batch Monitoring
慢速
慢速
Modified At
更快
更快

相关文档

recommendation-more-help
e1f8a7e8-8cc7-4c99-9697-b1daa1d66dbc