跳到主要内容 跳到补充内容

数据复制设置

可以配置复制数据任务的设置。

  • 打开复制任务,然后单击工具栏中的设置

设置:<任务名称> 对话框打开。可用设置如下所述。

任务模式

在此选项卡中,您可以设置复制模式并确定如何将更改应用于目标。

Replication 模式

有以下复制模式可用:

信息注释从 SaaS 应用程序源进行复制时,默认情况下会启用满负载复制模式,并且不能禁用。
  • 满负载:将选定源表中的数据加载到目标平台,并在必要时创建目标表。当任务启动时,满负载会自动发生,但如果需要,也可以手动执行。
  • 应用更改:使目标表持续更新对源表所做的任何更改。
  • 存储更改:将对源表的更改存储在“更改表”中(每个源表一个)。

    有关详细信息,请参阅存储更改

如果选择存储更改应用更改,并且源数据包含不支持 CDC 或视图的表,则将创建两个数据管道。一个管道用于支持 CDC 的表,另一个管道则用于所有其他仅支持满负载的表和视图。

信息注释当前不支持 ALTER TABLE DDL 操作。支持其他 DDL 操作,如 DROP TABLE 和 TRUNCATE TABLE。

应用更改模式

使用以下方法之一将更改应用于目标表:

  • 批量优化:这是默认设置。选择此选项后,将分批应用更改。进行预处理操作,以最有效的方式将事务分组为批。
  • 事务性:选择此选项可以按照提交的顺序单独应用每个事务。在这种情况下,可以确保所有表都具有严格的引用完整性。

元数据

基本

  • 目标表模式:如果不想使用源表模式(或者源数据库中没有模式),则为源表将复制到的目标上的模式。

    信息注释当复制到 Oracle 目标时,默认的目标表架构是“系统”。还要注意,如果将此字段留空(在这种情况下将使用源架构),则必须确保源架构已存在于目标上。否则,任务将失败。
    信息注释模式名称允许的最大长度为 128 个字符。
  • 不包括 LOB 列:如果不希望复制源 LOB 列,请选择此选项。
  • 将 LOB 列大小限制为 (KB):这是默认设置。如果您只需要复制小型 LOB,或者目标平台不支持无限制的 LOB 大小,请选择此选项。此字段允许的最大值为 102400 KB (100 MB)。

    在复制小型 LOB 时,此选项比不限制 LOB 列大小选项更高效,因为 LOB 是“内联”复制的,而不是通过从源“查找”来复制的。在更改处理过程中,通常通过从源“查找”来复制小型 LOB。

    由于限制 LOB 大小为的值以字节为单位,因此应根据以下公式计算大小:

    • BLOB:最大 LOB 的长度。
    • NCLOB:以字符为单位的最长 TEXT 的长度乘以 2(因为每个字符都作为双字节处理)。如果数据包含 4 字节字符,请将其乘以 4。
    • CLOB:以字符为单位的最长 TEXT 的长度(因为每个字符都作为 UTF8 字符处理)。如果数据包含 4 字节字符,请将其乘以 4。
    信息注释
    • 任何大于指定大小的 LOB 都将被截断。
    • 在 Oracle 源代码的更改处理过程中,内联 BLOB 会以内联方式复制。
    • 对此设置的更改只会在重新加载现有表后影响这些表。
  • 请勿限制 LOB 列大小:选择此选项时,将复制 LOB 列,无论大小为何。

    信息注释复制 LOB 列可能会影响性能。在大型 LOB 列需要 数据移动网关 从源表执行查找以检索源 LOB 值的情况下尤其如此。
    • 当 LOB 大小小于以下值时进行优化:当您需要同时复制小型和大型 LOB,并且大多数 LOB 都很小时,请选择此选项。

      信息注释

      仅以下源和目标支持此选项:

      • Oracle、Microsoft SQL server、MySQL、PostgreSQL 和 IBM DB2 for LUW

      • 目标 Oracle、Microsoft SQL Server、MySQL、PostgreSQL

      选择此选项后,在满负载期间,将“内联”复制小型 LOB(效率更高),而大型 LOB 将通过从源表执行查找来复制。但是,在更改处理期间,将通过从源表执行查找来复制小型和大型 LOB。

      信息注释

      选择此选项后,数据移动网关 将检查所有 LOB 大小,以确定要“内联”传输的 LOB 大小。将使用完整 LOB 模式复制大于指定大小的 LOB。

      因此,如果您知道大多数 LOB 都大于指定的设置,那么最好改为使用 复制不受限制的 LOB 列 选项。

    • 块大小 (KB):也可以更改将数据复制到目标时要使用的 LOB 块的大小。在大多数情况下,默认的区块大小应该足够,但如果遇到性能问题,调整大小可能会提高性能。

      信息注释

      对于某些数据库,在插入或更新数据时会进行数据类型验证。在这种情况下,如果数据大于指定的块大小,则结构化数据类型(例如 XML、JSON、GEOGRAPHY 等)的复制可能会失败。

高级

控制表设置

  • 控制表模式如果不希望在源模式(默认设置)或目标模式中创建控制表,请指定控制表的目标模式。

    信息注释模式名称允许的最大长度为 128 个字符。
  • 在表空间中创建目标控制表当目标 connector 是 Oracle 时,指定要在其中创建目标控制表的表空间。如果您没有在该字段中输入任何信息,那么表将在目标数据库的默认表空间中创建。
  • 为表空间中的目标控制表创建索引当目标 connector 是Oracle时,指定要在其中创建控制表索引的表空间。如果不在此字段中输入任何信息,则索引将在与控制表相同的表空间中创建。
  • 复制历史时隙(分钟):复制历史记录 控制表中每个时隙的长度。默认值为 5 分钟。

控制表选择

选择要在目标平台上创建的控制表:

逻辑名称 目标中名称
应用例外 attrep_apply_exceptions
复制状态 attrep_status
挂起的表 attrep_suspended_tables
复制历史记录 attrep_history

有关控制表的更多信息,请参阅控制表

满负载

基本

如果目标表已存在:从列表中选择以下选项之一,以确定在满负载启动时如何处理目标加载:

信息注释

只有当源端点支持删除或截断目标表的操作时,删除或截断这些表的选项才相关。

  • 放置和创建表格将删除该表,并在其位置创建一个新表。

    信息注释

    数据移动网关 不会删除控制表。但是,如果重新加载关联的任务,则也将从 attrep_suspended_tables 控制表中删除所放弃的任何挂起的表。

  • 加载前 TRUNCATE:在不影响表元数据的情况下截断数据。请注意,如果选择此选项,启用在满负载完成后创建主键或唯一索引选项将无效。
  • 忽略目标表的现有数据和元数据不会受到影响。新数据将添加到表中。

高级

性能调整

可以设置以下性能调整参数:

  • 表的最大数量:输入一次要加载到目标中的最大表数。默认值为 5
  • 事务一致性超时(秒):如果任务启动时事务处于打开状态,请输入在开始“满负载”操作之前 数据移动网关 等待事务关闭的秒数。默认值为 600(10 分钟)。数据移动网关 即使存在打开的事务,也将在达到超时值后开始满负载。

    信息注释要复制在满负载开始时打开但在达到超时值才提交的事务,需要重新加载目标表。
  • 满负载期间的提交率:可以一起传输的最大事件数。默认值为 10000

在满负载完成之后

您可以将任务设置为在满负载完成后自动停止。如果您需要在任务的“应用更改”(即 CDC)阶段开始之前对目标表执行 DBA 操作,这将非常有用。

在满负载期间,对源表执行的任何 DML 操作都会被缓存。当满负载完成时,缓存的更改将自动应用于目标表(只要以下所述的应用缓存更改之前/之后选项处于禁用状态)。

  • 创建主键或唯一索引如果要将目标上的主键或唯一索引创建延迟到满负载完成后,请选择此选项。
  • 停止任务
    信息注释从 SaaS 应用程序源复制时,这些设置不可用,因为没有缓存的事件。
    • 应用缓存的更改之前选择此选项可在满负载完成后停止任务。

    • 应用缓存的更改后选择此选项可在任务中所有表的数据一致后立即停止任务。

    信息注释

    将任务配置为在满负载完成后停止时,请注意以下事项:

    • 任务不会在满负载完成时停止。只有在捕捉到第一批更改后,它才会停止(因为这是触发任务停止的原因)。这可能需要一段时间,具体取决于源数据库的更新频率。任务停止后,在恢复任务之前,更改不会应用于目标。
    • 选择在应用缓存的更改之前可能会影响性能,因为缓存的更改将仅在最后一个表完成“满负载”之后应用于表(甚至是那些已经完成“满负载”的表)。
    • 如果选择此选项,并且在满负载过程中(在满负载和应用更高任务中)对其中一个源表执行 DDL,则 数据移动网关 会重新加载该表。这实际上意味着在源表上执行的任何 DML 操作都将在任务停止之前复制到目标。

应用更改

这些设置仅在启用应用更改复制模式时可用。

基本

将 DDL 更改应用于目标表

信息注释从 SaaS 应用程序源进行复制时,这些设置不可用。

以下选项确定对相应源表执行的 DDL 操作是否也将对目标表执行。

  • 删除表:选择此项可在删除源表时删除目标表。
  • 截断表:选择此项可在删除源表时截断目标表。
  • 修改表:选择此项可在修改源表时修改目标表。

更改处理调谐

  • 将批处理更改同时应用于多个表:在应用来自多个源表的更改时,选择此选项可能会提高性能。 

    信息注释

    只有在以下情况下才支持此选项:

    • 目标是 Microsoft SQL Server。
    • 应用更改模式设置为批量优化。有关更多信息,请参阅任务模式
    • 表格最大数目:要同时应用批处理更改的最大表数。默认值为 5,最大值为 50,最小值为 2。

启用同时对多个表应用批处理更改选项时,将应用以下限制:

  • 环境错误的任务错误处理策略默认值将保持不变,但数据错误和应用冲突错误的默认值如下:

    • 数据错误:
      • 数据截断错误:将记录记录到异常表
      • 其他数据错误:挂起表
    • 应用冲突错误
      • 删除:忽略记录
      • 插入:将现有目标记录 UPDATE

      • 更新:忽略记录
    • 升级操作:
      • 不支持针对数据错误和应用冲突升级操作
    • attrep_apply_exception 控制表不受支持。
    • 对于数据错误:
      • 将记录记载到异常表选项仅适用于数据截断错误。
      • 没有忽略选项。
    • 对于应用冲突:
      • 将记录记载到异常表选项不可用。
      • 忽略选项仅适用于未找到应用 UPDATE 的记录应用冲突。

另请参阅:错误处理

高级

参阅更改处理调谐

存储更改

只有在启用存储更改复制模式时,这些设置才可用。

基本

DDL 选项

信息注释从 SaaS 应用程序源进行复制时,这些设置不可用。

选择以下选项之一以确定如何处理源表上的 DDL 操作:

  • 应用于更改表:对源表的 DDL 操作(例如正在添加的列)将仅应用于相应的更改表。
  • 忽略:将忽略对源表的所有 DDL 操作。

高级

在更新

信息注释此设置与 SaaS 应用程序源无关,因为更改是作为 INSERT 操作应用的。

选择存储前后图像以存储 UPDATE 前数据和 UPDATE 后数据。如果未选中,则只存储更新后的数据。

更改表创建

以下部分介绍了在“更改表”中存储变更时可用的选项。

  • 后缀:指定一个字符串作为所有更改表的后缀。默认值为 __ct。更改表名称是附加了后缀的目标表的名称。例如,使用默认值,变更表的名称将为 HR__ct
  • 标题列前缀:指定一个字符串作为所有“更改表”标题列的前缀。默认值为 header__。例如,当使用默认值时,标题列 stream_position 将被称为 header__stream_position

有关更改表的详细信息,请参阅使用更改表

如果满负载启动时存在更改表:选择以下选项之一,以确定在开始满负载复制时如何加载更改表:

  • 放置和创建更改表格:将删除该表,并在其位置创建一个新表。
  • 删除旧更改并将新更改存储在现有更改表中:在不影响表元数据的情况下截断和添加数据。
  • 保留旧更改并将新更改存储在现有更改表中:现有更改表的数据和元数据不受影响。

表头列

更改表头列提供有关更改处理操作的信息,如操作类型(例如 INSERT)、提交时间等。如果不需要所有此类信息,可以配置 登陆 任务以创建具有选定表头列(或根本没有表头列)的更改表,从而减少它们在目标数据库中的占用空间。

信息注释在任务运行时,不能删除其他列或还原列。要更改初始选择,首先需要停止任务,然后修改选择,最后重新加载目标表。

有关表头列的说明,请参阅 更改表格

错误处理

基本

应用冲突

应用 INSERT 时出现复制键:选择与 INSERT 操作发生冲突时要采取的操作。

信息注释从 SaaS 应用程序源进行复制时,只支持将现有目标记录 UPDATE 操作。
  • 忽略:任务将继续,并忽略该错误。

     

  • 将现有目标记录 UPDATE:更新与 INSERTED 源记录具有相同主键的目标记录。

  • 将记录记录到异常表(默认值):任务将继续,错误将写入异常表。
  • 挂起表:任务将继续,但带有错误记录的表中的数据将移动到错误状态,并且不会复制其数据。

  • 停止任务:任务已停止,需要手动干预。

找不到应用 UPDATE 的记录:选择与 UPDATE 操作发生冲突时要采取的操作。

信息注释从 SaaS 应用程序源进行复制时,这些设置不可用。
  • 忽略:任务将继续,并忽略该错误。
  • 插入 (INSERT) 丢失的目标记录:丢失的目标记录将插入到目标表中。当源端点为 Oracle 时,选择此选项需要为所有源表列启用补充日志记录。

  • 将记录记录到异常表(默认值):任务将继续,错误将写入异常表。
  • 挂起表:任务将继续,但带有错误记录的表中的数据将移动到错误状态,并且不会复制其数据。

  • 停止任务:任务已停止,需要手动干预。

高级

信息注释

数据错误处理仅在“应用更改”复制模式下受支持(而不是“满负载”)。

数据错误

对于数据截断错误:选择在一个或多个特定记录中发生截断时要执行的操作。您可以从列表中选择以下选项之一:

  • 忽略:任务将继续,并忽略该错误。
  • 将记录记录到异常表(默认):任务继续进行,并将错误写入异常表。
  • 挂起表:任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
  • 停止任务:任务已停止,需要手动干预。

对于其他数据错误:选择在一个或多个特定记录中发生错误时要执行的操作。您可以从列表中选择以下选项之一:

  • 忽略:任务将继续,并忽略该错误。
  • 将记录记录到异常表(默认):任务继续进行,并将错误写入异常表。
  • 挂起表:任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
  • 停止任务:任务已停止,需要手动干预。

当其他数据错误达到时,升级错误处理(按表):选中此复选框可在非截断数据错误数(按表)达到指定数量时升级错误处理。有效值为 1-10,000。

升级操作:选择升级错误处理时应执行的操作。请注意,可用的操作取决于从上述针对其他数据错误下拉列表中选择的操作。

  • 挂起表(默认值):任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会已登陆其数据。

    信息注释

    行为因更改处理模式而异:

    • 事务应用模式中,不会已登陆上次的更改。

    • 批量优化应用模式中,可能会出现数据完全不已登陆或仅部分已登陆的情况。

  • 停止任务:任务已停止,需要手动干预。
  • 将记录记录到异常表:任务继续进行,并将记录写入异常表。

表格错误

遇到表格错误时:从下拉列表中选择以下选项之一:

  • 挂起表(默认值):任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
  • 停止任务:任务已停止,需要手动干预。

当表格错误达到时,升级错误处理(按表):选中此复选框可在表错误数(按表)达到指定数量时升级错误处理。有效值为 1-10,000。

升级操作:表错误的升级策略设置为停止任务,无法更改。

应用冲突

信息注释从 SaaS 应用程序源进行复制时,这些设置不可用。

找不到应用 DELETE 的记录:选择与 DELETE 操作发生冲突时要执行的操作。

  • 忽略:任务将继续,并忽略该错误。
  • 将记录记录到异常表:任务将继续,记录将写入异常表。
  • 挂起表:任务将继续,但带有错误记录的表中的数据将移动到错误状态,并且不会复制其数据。
  • 停止任务:任务已停止,需要手动干预。

应用冲突达到时升级错误处理(按表):选中此复选框可在应用冲突数(按表)达到指定数量时升级错误处理。有效值为 1-10,000。

升级操作: 选择升级错误处理时应执行的操作。

  • 将记录记录到异常表(默认值):任务将继续,错误将写入异常表。
  • 挂起表:任务将继续,但带有错误记录的表中的数据将移动到错误状态,并且不会复制其数据。

    信息注释

    行为因更改处理模式而异:

    • 事务应用模式中,不会复制最后的更改

    • 批处理优化应用模式中,可能出现没有数据复制或数据复制是部分复制的情况。

  • 停止任务:任务已停止,需要手动干预。

环境错误

  • 最大重试数选择此选项,然后指定发生可恢复环境错误时重试任务的最大尝试次数。重试任务达到指定次数后,任务将停止,需要手动干预。

    若要从不重试任务,请清除复选框或指定“0”。

    要无限次重试任务,请指定“-1”

    • 重试间隔(秒)使用计数器选择或键入系统在尝试重试任务之间等待的秒数。

      有效值为 0-2000。

  • 延长长时间停机的重试间隔选中此复选框可增加长时间停机的重试间隔。启用此选项后,每次重试之间的间隔将加倍,直到达到最大重试间隔(并根据指定的最大间隔继续重试)。
    • 最大重试间隔(秒)使用计数器选择或键入在启用增加长时间中断的重试间隔选项时任务重试之间等待的秒数。有效值为 0-2000。

更改处理调谐

事务卸载调整

无论选择了哪种更改处理模式,都可以使用以下调整选项:

  • 如果出现以下情况,则将正在进行的事务卸载到磁盘

    Qlik Cloud 数据集成 通常将事务数据保存在内存中,直到它完全提交到源和/或目标。但是,大于分配内存或未在指定时间限制内提交的事务将被卸载到磁盘。

    • 事务内存大小超过 (MB):所有事务在卸载到磁盘之前可以在内存中占用的最大大小。默认值为 1024
    • 事务持续时间超过(秒):每个事务在卸载到磁盘之前可以在内存中停留的最长时间。持续时间是从 Qlik Cloud 数据集成 开始捕获事务的时间开始计算的。默认值为 60

其他调谐

  • 语句缓存大小(语句数):要存储在服务器上以供以后执行(在对目标应用更改时)的最大准备语句数。默认值为 50。最大值为 200。
  • 将任务恢复数据存储在目标数据库中:选择此选项可将特定于任务的恢复信息存储在目标数据库中。选择此选项后,数据移动网关 将在目标数据库中创建一个名为 attrep_txn_state 的表。此表包含可用于在 数据移动网关Data 文件夹中的文件损坏或包含 Data 文件夹的存储设备出现故障时恢复任务的事务数据。

批量优化应用

以下设置仅在应用模式设置为仅批量优化时可用。

  • 在间隔中应用分批更改:
    • 大于:每次应用批量更改之间等待的最短时间。默认值为 1

      增大长于值会降低对目标应用更改的频率,同时增加批次的大小。当将更改应用于为处理大批量而优化的目标数据库时,这可以提高性能。

    • 少于:每次应用批量更改之间等待的最长时间(在声明超时之前)。换句话说,就是可接受的最大延迟。默认值为 30。该值确定在达到长于值之后应用更改之前等待的最长时间。
  • 处理内存超过该值时强制应用批次 (MB):在批处理优化应用模式下用于预处理的最大内存量。默认值为 500

    对于最大批处理大小,请将此值设置为可以分配至 数据移动网关 的最大内存量。当将更改应用于为处理大批量而优化的目标数据库时,这可以提高性能。

事务性应用

以下设置仅在应用模式设置为事务时可用。

  • 每笔交易的最小更改次数:每个事务中要包含的最小更改数。默认值为 1000

    信息注释当更改次数等于或大于每个事务的最小更改次数值时,或当达到批处理超时值时(见下文),数据移动网关 将更改应用于目标(以先发生的为准)。由于应用于目标的更改频率由这两个参数控制,因此对源记录的更改可能不会立即反映在目标记录中。
  • 应用前批处理事务的最长时间(秒):在声明超时之前分批收集事务的最长时间。默认值为 1

字符替换

您可以替换或删除目标数据库中的源字符,和/或替换或删除所选字符集不支持的源字符。

信息注释
  • 所有字符都必须指定为 Unicode 代码点。

  • 字符替换也将在控制表上执行。
  • 无效值将由表格单元格右上角的红色三角形指示。将鼠标光标悬停在三角形上会显示错误消息。

  • 为任务定义的任何表级或全局转换都将在字符替换完成后执行。

  • 替换或删除源字符表中定义的替换操作在替换或删除所选字符集不支持的源字符表格中定义的替代操作之前执行。

  • 字符替换不支持 LOB 数据类型。

替换或删除源字符

使用替换或删除源字符表可以定义特定源字符的替换项。例如,当字符的 Unicode 表示在源平台和目标平台上不同时,这可能很有用。例如,在 Linux上,Shift_JIS 字符集中的减号字符表示为 U+2212,但在 Windows 上,它表示为 U+FF0D

替换操作
进行该操作

定义替代操作

  1. 单击表上方的添加字符按钮。

  2. 源角色替换角色字段中分别指定源角色和目标角色。

    例如,要将字母“a”替换为字母“e”,请分别指定 00610065

    信息注释

    要删除指定的源字符,请在替换字符列中输入 0

  3. 重复步骤 1-2 以替换或删除其他字符。

编辑指定的源或目标角色

单击行末尾的 并选择编辑

从表中删除条目

单击行末尾的 并选择删除

替换或删除所选字符集不支持的源字符

使用不支持的源字符(按字符集)表为所选字符集不支持的所有字符定义一个替换字符。

不支持的字符替换操作
进行该操作

定义或编辑替换操作。

  1. 从表中的字符集下拉列表中选择一个字符集。

    所选字符集不支持的任何字符将在目标上替换为下面步骤 2 中指定的字符。

  2. 替换字符列中,单击列中的任意位置,然后指定替换字符。例如,要将所有不支持的字符替换为字母“a”,请输入0061

    信息注释

    要删除所有不支持的字符,请输入0

禁用替换操作。

字符集下拉列表中选择空白条目。

更多选项

这些选项不会在 UI 中公开,因为它们仅与特定版本或环境相关。因此,除非 Qlik 支持或产品文档明确指示,否则不要设置这些选项。

要设置选项,只需将该选项复制到添加功能名称字段中,然后单击添加。然后根据收到的说明设置该值或启用该选项。

SaaS 应用程序

信息注释仅从 SaaS 应用程序源进行复制时,这些设置是相关的。

对于初始加载

当从 SaaS 应用程序源移动数据时,您可以设置如何执行初始满负载:

信息注释这些设置需要 数据移动网关 版本 2022.11.74 或更高版本。
使用缓存数据

此选项允许您使用在选择完整数据扫描的情况下生成元数据时读取的缓存数据。

这减少了 API 使用和配额方面的开销,因为已经从源读取数据。自初始数据扫描以来的任何更改都可以通过更改数据捕获 (CDC) 获取。

从数据源加载

此选项从数据源执行新加载。此选项在以下情况下很有用:

  • 最近未执行元数据扫描。

  • 源数据集很小并且经常更改,而您不希望维护完整的更改历史记录。

每(分钟)读取更改

设置从源读取更改的间隔(分钟)。有效范围为 1 到 1440。

信息注释此选项仅适用于使用更改数据捕获 (CDC) 更新方法配置的数据任务。

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!