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

数据复制任务设置

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

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

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

一般

在此选项卡中,您可以更改复制模式、暂存设置(如果可用)以及将更改应用于目标的模式。

Replication 模式

有以下复制模式可用:

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

  • 存储更改:将对源表的更改存储在“更改表”中(每个源表一个)。

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

使用 数据移动网关 时,几乎实时地从源捕获更改。当不使用 数据移动网关 工作时(例如,使用 Qlik Talend Cloud Starter 订阅或选择时),将根据调度程序设置捕获更改。有关更多信息,请参阅在不使用 数据移动网关 进行工作的情况下安排任务

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

连接到暂存区域

当复制到下面列出的数据仓库时,您需要设置一个暂存区域。数据在转移到仓库之前在暂存区进行处理和准备。

选择现有暂存区域,或单击新建以定义新的暂存区域,然后按照连接至云存储中的说明进行操作。

要编辑连接设置,请单击编辑。要测试连接(推荐),请单击测试连接

有关哪些数据仓库支持哪些暂存区域的信息,请参阅目标平台用例和支持的版本中的支持作为暂存区列。

应用更改模式

信息注释在复制到数据仓库目标或使用 Qlik Talend Cloud Starter 订阅工作时,您无法选择要使用的应用更改模式。更改将始终应用于批量优化模式,以获得最大效率。

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

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

数据上传

信息注释此选项卡仅在复制到数据仓库目标时显示。

最大文件大小

文件在关闭之前可以达到的最大大小。与并行执行选项结合使用时,较小的文件可能会上传得更快(取决于网络),并提高性能。然而,通常认为用小文件扰乱数据库是不好的做法。

元数据

基本

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

    信息注释当复制到 Oracle 目标时,默认的目标表架构是“系统”。还要注意,如果将此字段留空(在这种情况下将使用源架构),则必须确保源架构已存在于目标上。否则,任务将失败。
    信息注释模式名称允许的最大长度为 128 个字符。

LOB 设置

可用的 LOB 设置因所选复制目标而异。由于数据仓库目标不支持无限制的 LOB 列大小,因此在复制到数据仓库时,此选项将不可用。

  • 不包括 LOB 列:如果不希望复制源 LOB 列,请选择此选项。
  • 将 LOB 列大小限制为 (KB):这是默认设置。如果您只需要复制小型 LOB,或者目标平台不支持无限制的 LOB 大小,请选择此选项。此字段允许的最大值为 102400 KB (100 MB)。

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

    该限制适用于从源终结点读取的 LOB 字节数。对于 BLOB 列,目标 BLOB 大小将完全依据指定的限制。对于 CLOB 和 NCLOB 列,如果源和目标 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 等)的复制可能会失败。

  • 包括 LOB 列并将列大小限制为 (KB):

    您可以选择在任务中包括 LOB 列,并设置最大 LOB 大小。大于最大大小的 LOB 将被截断。

高级

控制表设置

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

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

控制表选择

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

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

attrep_ddl_history

信息注释

DDL 历史记录表仅受以下目标平台的支持:

  • Databricks

  • Microsoft Fabric

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

满负载

基本

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

信息注释

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

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

    信息注释

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

  • 加载前 TRUNCATE:在不影响表元数据的情况下截断数据。请注意,如果选择此选项,启用在满负载完成后创建主键或唯一索引选项将无效。

    信息注释当 Microsoft Fabric 是目标平台时不受支持。
  • 忽略目标表的现有数据和元数据不会受到影响。新数据将添加到表中。

高级

性能调整

如果数据复制速度过慢,调整以下参数可能会提高性能。

  • 表的最大数量:立刻输入要加载到目标中的最大表数。默认值为 5
  • 事务一致性超时(秒):输入在开始满负载操作之前复制任务应当等待打开的事务关闭的秒数。默认值为 600(10 分钟)。即使存在打开的事务,复制任务也将在达到超时值后开始满负载。

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

在满负载完成之后

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

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

  • 创建主键或唯一索引如果要将目标上的主键或唯一索引创建延迟到满负载完成后,请选择此选项。
  • 停止任务
    信息注释

    以下情况下,这些设置不可用:

    • 从 SaaS 应用程序源复制(因为没有缓存的事件)
    • 复制到数据仓库目标
    • 应用缓存的更改之前选择此选项可在满负载完成后停止任务。

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

    信息注释

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

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

对于初始加载

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

信息注释 如果您使用 数据移动网关 访问数据源,则这些设置需要 2022.11.74 或更高版本。
使用缓存数据

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

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

从数据源加载

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

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

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

应用更改

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

基本

将 DDL 更改应用于目标表

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

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

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

    信息注释当 Microsoft Fabric 是目标平台时不受支持。
  • 修改表:选择此项可在修改源表时修改目标表。

更改处理调谐

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

    信息注释

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

    • 应用更改模式设置为批量优化。有关更多信息,请参阅 一般
    • 复制目标不是 MySQL、PostgreSQL、Oracle 和 Google BigQuery。
    • 表格最大数目:要同时应用批处理更改的最大表数。默认值为 5,最大值为 50,最小值为 2。

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

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

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

        信息注释这与 Snowflake 目标无关(因为 Snowflake 不支持主键)。
      • 更新:忽略记录
    • 升级操作:
      • 不支持针对数据错误和应用冲突升级操作
    • attrep_apply_exception 控制表不受支持。
    • 对于数据错误:
      • 将记录记载到异常表选项仅适用于数据截断错误。
      • 没有忽略选项。
    • 对于应用冲突:
      • 将记录记载到异常表选项不可用。
      • 忽略选项仅适用于未找到应用 UPDATE 的记录应用冲突。

另请参阅:错误处理

  • 将每个更改处理语句应用的更改数限制为:要限制单个更改处理语句中应用的更改数量,请选中此复选框,然后可以选择更改默认值。默认值为 10,000。

    信息注释仅以下目标支持此选项:MySQL、PostgreSQL、Oracle 和 Google BigQuery。

高级

请参阅更改处理调谐

存储更改

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

基本

DDL 选项

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

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

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

高级

在更新

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

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

更改表创建

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

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

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

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

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

    信息注释当 Microsoft Fabric 是目标平台时不受支持。
  • 保留旧更改并将新更改存储在现有更改表中:现有更改表的数据和元数据不受影响。

表头列

更改表头列提供有关更改处理操作的信息,如操作类型(例如 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。

更改处理调谐

事务卸载调整

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

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

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

批量调节

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

信息注释在复制到数据仓库目标或不使用 数据移动网关 工作时,您无法选择要使用的应用更改模式。更改将始终应用于批量优化模式,以获得最大效率。
  • 在间隔中应用分批更改:
    • 大于:每次应用批量更改之间等待的最短时间。默认值为 1

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

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

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

间隔

  • 每(分钟)读取更改

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

    信息注释

    此选项仅在以下情况下可:

    • 使用 数据移动网关
    • 从 SaaS 应用程序源登陆数据
    • 该任务使用更改数据捕获 (CDC) 更新方法定义

其他调谐

语句缓存大小(语句数)

要存储在服务器上以供以后执行(在对目标应用更改时)的最大准备语句数。默认值为 50。最大值为 200。

将任务恢复数据存储在目标数据库中

信息注释当复制到数据仓库目标时,此选项不可用。

选择此选项可将特定于任务的恢复信息存储在目标数据库中。选择此选项后,复制任务将在目标数据库中创建一个名为 attrep_txn_state 的表。此表包含事务数据,这些数据可用于在 数据移动网关Data 文件夹中的文件损坏或包含 Data 文件夹的存储设备出现故障时恢复任务。

使用 SQL MERGE 应用更改

信息注释此选项仅在复制到某些数据仓库目标时可用(有关详细信息,请参阅下文)。

如果选择此选项,则复制任务将为“净变化”表中的每个不同更改类型执行单独的批量 INSERT、UPDATE 和 DELETE 语句。

提示注释在批处理优化应用模式下工作时,会在目标上创建“净变化”表,其中包含在源上更改的记录。每次将源更改应用于目标时,它都会被截断。有关“净变化”表的详细信息,请参阅Net Changes table

虽然此方法效率很高,但在使用支持此选项的端点时,启用使用 SQL MERGE 应用更改选项的效率甚至更高。

原因如下:

  • 它将每个表运行的 SQL 语句数从三个减少到一个。在大型、不可变、基于文件的云数据库(如 Google Cloud BigQuery)中,大多数 UPDATE 操作都涉及重写受影响的文件。对于此类操作,每个表的 SQL 语句从三个减少到一个效果非常显著。
  • 目标数据库只需扫描“净变化”表一次,即可显著减少 I/O。

如果将使用 SQL MERGE 应用更改优化插入选项一起选中,并且更改仅由 INSERT 组成,则复制任务将执行 INSERT,而不是使用 SQL MERGE。注意,虽然这通常会提高性能,从而降低成本,但也可能导致目标数据库中出现重复记录。

信息注释
  • 使用 SQL MERGE 应用更改优化插入选项仅适用于配置有以下目标端点的任务:
    • Google Cloud BigQuery
    • Databricks
    • Snowflake
  • 使用 SQL MERGE 应用更改优化插入选项不支持以下源端点:
    • Salesforce
    • Oracle
  • 启用了使用S QL MERGE 应用更改选项时:

    • 非致命数据错误或无法恢复的数据错误将作为表错误处理。
    • 对于以下设置,应用冲突错误处理策略将不可编辑。
      • 找不到应用 DELETE 的记录:忽略记录
      • 应用 INSERT 时出现复制键:将现有目标记录 UPDATE

        信息注释如果还选择了优化插入选项,则应用 INSERT 时出现复制键选项将设置为允许在目标中重复
      • 找不到应用 UPDATE 的记录:INSERT 丢失的目标记录
      • 升级操作:将记录记录到异常表
    • 以下针对其他数据错误数据错误处理策略选项将不可用:
      • 忽略记录
      • 将记录记录到异常表
    • 实际的 SQL MERGE 操作将仅在最终目标表上执行。INSERT 操作将在中间更改表上执行(当启用了应用更改存储更改复制模式时)。

事务性应用

信息注释当复制到数据仓库目标时,或在不使用 数据移动网关 工作时,这些选项并不相关,因为应用模式始终是批量优化的

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

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

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

模式演变

选择如何处理架构中以下类型的 DDL 更改。更改模式演变设置后,必须重新准备任务。选择如何处理架构中以下类型的 DDL 更改。

DDL 更改 应用于目标 忽略 挂起表 停止任务
添加列 支持 支持 支持 支持
更改列数据类型 支持 支持 支持 支持
重命名列 支持 不支持 支持 支持
重命名表格 不支持 不支持 支持 支持
放置列 支持 支持 支持 支持
删除表 支持 支持 支持 支持
创建表格

如果使用选择规则添加与模式匹配的数据集,则将检测并添加符合模式的新表。

支持 支持 不支持 不支持

字符替换

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

信息注释
  • 所有字符都必须指定为 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 支持或产品文档明确指示,否则不要设置这些选项。

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

在不使用 数据移动网关 进行工作的情况下安排任务

数据移动网关 不支持 Qlik Talend Cloud Starter 订阅,并且对于其他订阅级别是可选的。在没有 数据移动网关 的情况下工作时,不支持近乎实时的 CDC(更改数据捕获)。通过设置计划间隔,可以使目标数据保持最新。该计划决定了目标数据集随源数据集的更改而更新的频率。时间表决定了更新频率,而数据集类型决定了更新方法。如果源数据集支持 CDC,则只有对源数据的更改会被复制并应用到相应的目标表。如果源数据集不支持 CDC(例如,视图),则将通过将所有源数据重新加载到相应的目标表来应用更改。如果一些源数据集支持 CDC,而另一些不支持CDC,则将创建两个独立的子任务(假设选择了应用更改存储更改复制选项):一个用于重新加载不支持 CDC 的数据集,另一个用于捕获对实际支持 CDC 的数据集的更改。在这种情况下,为了确保数据的一致性,强烈建议为两个子任务设置相同的计划。

有关根据数据源类型和订阅层的最小调度间隔的信息,请参阅允许的最小调度间隔

更改计划:

  1. 打开项目,然后执行以下操作之一:

    • 在任务视图中,单击复制任务上的 菜单按钮由 3 个水平点组成。 并选择计划
    • 在管道视图中,单击复制任务上的 菜单按钮由 3 个垂直点组成。 并选择计划
    • 打开复制任务,然后单击计划工具栏按钮。
  2. 根据需要更改计划设置,然后单击确定
信息注释如果下一个计划运行即将开始时复制任务仍在运行,则将跳过下一个或多个计划运行,直到任务完成。

本页面有帮助吗?

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