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

使用标准、高级或企业订阅复制数据

设置复制任务:

  1. 数据集成 > 项目中,单击创建项目

  2. 新建项目对话框中,执行以下操作:

    1. 为您的项目提供名称
    2. 选择要在其中创建项目的空间
    3. 任选地,提供描述
    4. 选择复制作为用例
    5. 如果要创建一个空项目而不配置任何设置,请清除打开复选框(可选)。
    6. 单击创建

      将出现以下情况之一:

      • 如果选择了新建项目对话框中的打开复选框(默认值),则项目将打开。
      • 如果清除了新建项目对话框中的打开复选框,则该项目将添加到项目列表中。您可以稍后通过从项目的 菜单中选择打开来打开项目。
  3. 项目打开后,单击复制数据

    项目打开后,单击复制数据

  4. 常规选项卡中,指定复制任务的名称和说明。然后单击下一步

  5. 选择源连接选项卡中,选择到源数据的连接。从操作列中的菜单中选择编辑,可以选择编辑连接设置。

    如果尚未创建到数据源的连接,则需要通过单击选项卡右上角的创建连接来创建连接。

    您可以使用左侧的筛选器筛选连接列表。可以根据源类型、网关、空间和所有者筛选连接。连接列表上方的所有筛选器按钮显示当前筛选器的数量。您可以使用此按钮关闭或打开左侧的筛选器面板。当前活动的筛选器也显示在可用连接列表的上方。

    您也可以从右侧的下拉列表中选择上次修改时间上次创建时间按字母数字顺序来对列表进行排序。单击列表右侧的箭头可以更改排序顺序。

    选择数据源连接后,可以选择单击选项卡右上角的测试连接(推荐),然后单击下一步

  6. 选择数据集选项卡中,选择要包含在复制任务中的表和/或视图。您还可以使用通配符并创建选择规则,如从数据库选择数据中所述。

  7. 选择目标连接选项卡中,从可用连接列表中选择目标,然后单击下一步。在功能方面,该选项卡与前面描述的选择源连接选项卡相同。

  8. 设置选项卡中,可以选择更改以下设置,然后单击下一步

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

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

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

    使用 数据移动网关 时,几乎实时地从源捕获更改。当不使用 数据移动网关 时(通过在连接器设置中将数据网关设置为),将根据调度程序设置捕获更改。默认的更改捕获间隔为每六小时一次。有关更多信息,请参阅在不使用 数据移动网关 进行工作的情况下安排任务

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

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

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

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

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

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

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

    信息注释此设置仅在不使用 数据移动网关 访问数据源时才相关。有关 数据移动网关 的优势和需要它的用例的信息,请参阅Qlik 数据网关 - 数据移动
    • 复制数据间隔:您可以安排从数据源捕获更改的频率,并设置开始时间开始日期。 如果源数据集支持 CDC(更改数据捕获),则只有对源数据的更改会被复制并应用到相应的目标表。如果源数据集不支持 CDC(例如,视图),则将通过将所有源数据重新加载到相应的目标表来应用更改。如果一些源数据集支持 CDC,而另一些不支持CDC,则将创建两个独立的子任务(假设选择了应用更改存储更改复制选项):一个用于重新加载不支持 CDC 的数据集,另一个用于捕获对实际支持 CDC 的数据集的更改。

      任务设置向导允许您安排基本的每小时间隔。完成任务设置后,您可以探索不同的计划选项,如在不使用 数据移动网关 进行工作的情况下安排任务中所述。

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

  9. 摘要选项卡中,将显示数据管道的可视化信息。如果某些选定的数据集不支持 CDC,则将显示两个管道:一个用于 CDC 任务,另一个用于重新加载任务。选择是打开 <name> 数据任务还是什么都不做,然后单击创建

    根据您的选择,将打开任务或显示项目列表。

  10. 如果选择打开任务,数据集选项卡将显示所选源表格的结构和元数据。这包括所有显式列出的表以及与选择规则匹配的表。

    如果要从数据源中添加更多表,请单击选择源数据

  11. 可选择如 数据复制任务设置 中所述更改任务设置。

  12. 您可以对数据集执行转换、筛选数据或添加列。

    有关更多信息,请参阅管理数据集

  13. 添加所需的转换后,可以通过单击验证数据集来验证数据集。如果验证失败,请先解决错误,然后再继续。

    有关更多信息,请参阅验证和调整数据集

  14. 准备好后,单击准备对数据任务进行编目并准备好执行。

  15. 准备好数据任务后,单击运行

    有关恢复任务和运行任务的其他方法的信息,请参阅高级运行选项

  16. 复制任务现在应该开始了,您可以在监视器中看到进度。有关更多信息,请参阅监视单个数据任务

设置数据集的加载优先级

您可以通过为每个数据集指定加载优先级来控制数据任务中数据集的加载顺序。例如,如果您想先加载较小的数据集,然后再加载较大的数据集,这就很有用。

  1. 点击加载优先级

  2. 为每个数据集选择加载优先级。

    默认加载优先级为正常。数据集将按以下优先顺序加载:

    • 最高

    • 较高

    • 正常

    • 较低

    • 最低

    具有相同优先级的数据集不分先后加载。

  3. 单击确定

信息注释来自 SaaS 应用程序源的数据集可能包含加载顺序依赖关系。设置负载优先级时应考虑这一点。

正在刷新元数据

您可以刷新任务中的元数据,以与任务的设计视图中源元数据的更改保持一致。对于使用 Metadata manager 的 SaaS 应用程序,必须先刷新 Metadata manager,然后才能刷新数据任务中的元数据。

信息注释此操作仅影响任务的设计视图中的表。
  1. 您可以:

    • 单击 ...,然后刷新元数据以刷新任务中所有数据集的元数据。

    • 点击在数据集中的某个数据集上的 ...,然后刷新元数据以刷新单个数据集的元数据。

    您可以在屏幕下部的刷新元数据下查看元数据刷新的状态。通过将光标悬停在 信息按钮 上,您可以看到元数据上次刷新的时间。

  2. 准备数据任务才能应用更改。

    准备好数据任务并应用更改后,将从刷新元数据中删除这些更改。

您必须准备使用此任务的存储任务来传播更改。

如果删除列,则会添加一个具有 Null 值的转换,以确保存储不会丢失历史数据。

刷新元数据的限制

  • 如果数据类型和数据长度相同,则在此之前在同一时隙中具有删除列的重命名将被转换为删除列重命名。

    示例:  

    之前:a b c d

    之后:a c1 d

    在这个例子中,b 被删除,c 被重命名为 c1bc 具有相同的数据类型和数据长度。

    这将被识别为 bc1 并删除 c 的重命名。

  • 即使删除了最后一列,并且其前面的一列被重命名,也无法识别最后一列的重命名。

    示例:  

    之前:a b c d

    之后:a b c1

    在这个例子中,d 被删除,c 被重命名为 c1

    这将被识别为 cd 的删除,以及 c1 的添加。

  • 假设在末尾添加了新列。如果在中间添加与下一列具有相同数据类型的列,则可能会将其解释为删除和重命名。

模式演变

模式演化允许您轻松检测多个数据源的结构更改,然后控制这些更改将如何应用于您的任务。模式演化可用于检测对源数据模式所做的 DDL 更改。您还可以自动应用一些更改。

信息注释模式演化不适用于 web 应用程序源或 Qlik Talend Cloud Starter 订阅。

对于每种更改类型,您可以在任务设置的模式演变部分选择如何处理更改。您可以应用更改、忽略更改、挂起表或停止任务处理。

您可以设置用于处理每种更改类型的 DDL 更改的操作。某些操作并不适用于所有更改类型。

  • 应用于目标

    自动应用更改。

  • 忽略

    忽略更改。

  • 挂起表

    挂起表。监视器将显示表格错误。

  • 停止任务

    停止任务处理。如果您想手动处理所有模式更改,这很有用。这也将停止调度,即不会执行计划运行。

支持以下更改:

  • 添加列

  • 重命名列

  • 更改列数据类型

  • 删除表

  • 放置列

  • 添加符合选择模式的表格

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

有关任务设置的更多信息,请参阅模式演变

您还可以获得有关使用模式演进处理的变更的通知。有关更多信息,请参阅设置操作更改通知

模式演变的限制

模式演变有以下限制适用:

  • 只有使用 CDC 作为更新方法时,才支持模式演变。

  • 更改模式演变设置后,必须重新准备任务。

  • 如果重新命名表,则不支持模式演变。在这种情况下,您必须在准备任务前刷新元数据。

  • 如果您正在设计任务,则必须刷新浏览器才能接收模式演变更改。您可以设置通知,以便在更改时收到警报。

  • 在登陆任务中,不支持删除列。删除列和添加列会导致表格错误。

  • 在登陆任务中,删除表操作不会将表丢弃。如果删除一个表后再添加一个表,只会截断旧表,而不会添加新表。

  • 并非所有目标都能更改列的长度,这取决于目标数据库的支持情况。

  • 如果更改了列名,使用该列定义的显式转换将不会生效,因为这些转换是基于列名的。

  • 刷新元数据的限制也适用于模式演变。

捕获 DDL 更改时,会受到以下限制:

  • 当源数据库中发生一系列快速操作时(例如,DDL > DML > DDL),Qlik Talend Data Integration 可能会以错误的顺序解析日志,导致数据丢失或行为不可预测。为了尽量减少这种情况发生的可能性,最佳做法是等待更改应用于目标,然后再执行下一个操作。

    例如,在变更捕获过程中,如果源表被快速连续重命名多次(第二次操作将其重命名回原始名称),则可能会遇到该表已存在于目标数据库中的错误。

  • 如果更改任务中使用的表的名称,然后停止任务,则在任务恢复后 Qlik Talend Data Integration 将不会捕获对该表所做的任何更改。
  • 不支持在任务停止时重命名源表。

  • 不支持重新分配表的主键列(因此不会写入 DDL 历史控制表)。
  • 当一列的数据类型发生变化,并且任务停止时重命名了(相同的)列时,DDL 更改将在任务恢复时在 DDL 历史控制表中显示为“删除列”,然后显示为“添加列”。请注意,延迟延长也可能导致相同的行为。
  • 在任务停止时对源执行的 CREATE TABLE 操作将在任务恢复时应用于目标,但不会在 DDL 历史控制表中记录为 DDL。
  • 与元数据更改相关的操作(如 ALTER TABLE、reorg、重建聚集索引等)如果在以下情况下执行,可能会导致不可预测的行为:

    • 满负载期间

      -或者-

    • 开始处理更改自时间戳和当前时间之间(即用户在高级运行选项对话框中单击确定的时刻)。

      示例:

      IF:

      指定的开始处理更改自时间为上午 10:00。

      AND:

      上午 10:10 时,雇员表中添加了名为年龄的列。

      AND:

      上午 10:15,用户在高级运行选项对话框中单击确定

      THEN:

      10:00 至 10:10 之间发生的更改可能会导致 CDC 错误。

    信息注释

    在上述任何情况下,必须重新加载受影响的表,以便数据正确已移动到目标。

  • DDL 语句 ALTER TABLE ADD/MODIFY <column> <data_type> DEFAULT <> 不会将默认值复制到目标,并且新的/修改的列设置为 NULL。请注意,即使过去执行了添加/修改列的 DDL,也可能发生这种情况。如果新的/修改的列可以为空,则源端点会在记录 DDL 本身之前更新所有表行。因此,Qlik Talend Data Integration 会捕获更改,但不会更新目标。由于新列/修改列被设置为 NULL,如果目标表没有主键/唯一索引,后续更新将生成 "零行受影响 "消息。
  • 不会捕获对 TIMESTAMP 和 DATE 精确度列的修改。

处理未自动应用的更改

这描述了如何处理无法应用于目标的更改,即操作为“忽略”、“挂起”或“停止任务”时的更改。

DDL 更改 实施变更 保留当前状态
添加列 刷新元数据,准备任务,然后运行任务。 无需操作
创建表格 刷新元数据,准备任务,然后运行任务。 无需操作
更改列数据类型

如果没有限制适用,则检查限制:

刷新元数据,准备任务,然后运行任务。

并不总是支持当前状态的保留。可能的解决方法

  • 手动更改列数据类型这需要在下游任务中重复进行。

  • 创建一个新列,将旧列导向新列,然后手动创建一个视图,将两列合并。

重命名表格

如果没有限制适用,则检查限制:

准备任务,然后运行任务。

为旧名称定义显式重命名规则。
重命名列

如果没有限制适用,则检查限制:

刷新元数据,准备任务,然后运行任务。

刷新元数据,然后为旧名称定义显式重命名规则。

复制数据时的限制和考虑事项

转换受以下限制:

  • 语序为从右向左的语言的列不支持转换。
  • 无法对名称中包含特殊字符(例如 #、\、/、-)的列执行转换。

  • LOB/CLOB 数据类型唯一支持的转换是删除目标上的列。
  • 不支持使用转换重命名列,然后添加同名的新列。

移动的列不支持更改可空性,无论是直接更改还是使用转换规则。但是,默认情况下,任务中创建的新列可以为空。

本页面有帮助吗?

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