云存储目标的设置
您可以根据需要更改默认的数据湖登陆设置。
一般
更新方法
可以在两种不同的模式下登陆数据。一旦准备好数据湖登陆任务,就无法更改模式。
-
更改数据捕获 (CDC):数据湖登陆任务从满负载开始(在此期间,所有选定的表都将登陆)。然后使用 CDC(更改数据捕获)技术使登陆数据保持最新。
信息注释不支持 DDL 操作的 CDC(更改数据捕获)。使用 数据移动网关 时,几乎实时地从源捕获更改。不使用 数据移动网关 时,将根据调度程序设置捕获更改。有关更多信息,请参阅在不使用 数据移动网关 进行工作的情况下安排任务。
- 重新加载将数据从选定的源表完全加载到目标平台,并在必要时创建目标表。任务启动时会自动进行满负载,但也可以手动执行或根据需要安排定期进行。
要使用的文件夹
根据要将文件写入的存储段文件夹,选择以下选项之一:
- 默认文件夹:默认文件夹格式为 <your-project-name>/<your-task-name>
- 根文件夹:文件将直接写入存储段。
-
文件夹:输入文件夹名称。如果该文件夹不存在,将在数据湖登陆任务期间创建该文件夹。
信息注释 文件夹名称不能包含特殊字符(例如 @、#、 ! 等)。
更改数据分区
在标准登陆任务中,对目标的更改不按特定顺序登陆。更改数据分区可以用一致的方式处理来自多个表的更改数据。您可以定义分区的持续时间以及分区基准时间,从而确保分区数据的整体一致性(即不存在部分事务,不存在没有订单行的订单头等等。)
有关分区的信息记录在目标数据库的 attrep_cdc_partitions 控制表中。此信息可用于识别需要进一步处理的分区数据。
分区选项如下:
-
分区间隔 - 指定每个分区的长度(以小时和分钟为单位)。
信息注释建议指定的分区长度超过一小时。尽管指定小于一小时的分区长度可能会提高延迟,但在目标上创建许多分区也可能影响(目标)性能(尤其是在具有大量更改的系统中)。
如果在创建最后一个分区之前继续执行任务,则数据湖登陆任务将写入已关闭的分区。
- 分区基本时间 - 分区是在 24 小时内创建的,根据源数据库上指定的“分区基本时间”(UTC 时间)计算。例如,分区间隔为 8 小时,“分区基准时间”时间为 02:00,将创建以下分区:02:00-10:00、10:00-18:00、18:00-02:00,但不一定按此顺序。例如,如果一个任务在 01:00 开始,那么第一个分区的时间范围将是 18:00-02:00。此外,如果任务在分区中间启动(例如 04:00),则其更改数据将插入 02:00-10:00 分区,即使在 04:00 之前没有捕获任何更改。
数据上传
文件属性
格式
您可以选择以 CSV、JSON 或 Parquet 格式创建目标文件。
在 JSON 文件中,每条记录都由一行表示,如下例所示:
{ "book_id": 123, "title": "Alice in Wonderland", "price": 6.99, "is_hardcover": false }
{ "book_id": 456, "title": "Winnie the Pooh", "price": 6.49, "is_hardcover": true }
{ "book_id": 789, "title": "The Cat in the Hat", "price": 7.23, "is_hardcover": true }
另请参阅: 内容类型和内容编码属性
- 如果选择 JSON 或 Parquet 格式,以下字段将被隐藏,因为它们仅与 CSV 格式相关:字段分隔符、记录分隔符、Null 值、报价字符、报价转义符和添加元数据标头。
- 以下字段仅与 Parquet 格式相关:Parquet 版本、Parquet 时间戳单位和 Parquet 最大 LOB 大小 (KB)。
有关使用 Parquet 格式时的数据类型映射及其限制的信息,请参阅Mapping from Qlik Cloud data types to Parquet
字段分隔符
将用于分隔目标文件中的字段(列)的分隔符。默认值为逗号。
使用逗号作为分隔符的示例:
"mike","male"
分隔符可以是标准字符或十六进制 (hex) 值。请注意,前缀“0x
”必须用于表示十六进制分隔符(例如0x01 = SOH
)。在字段分隔符、记录分隔符和 Null 值字段中,分隔符可以由连接的十六进制值组成(例如 0x0102
= SOHSTX
),而在报价字符和报价转义符字段中,它只能是单个十六进制值。
不支持十六进制数字 0x00
(即仅支持 0x01
-0xFF
)。
空值
将用于指示目标文件中的 null 值的字符串。
示例(其中 \n 是记录分隔符,@ 是空值):
记录分隔符
将用于分隔目标文件中的记录(行)的分隔符。默认设置为新行 (\n
)。
示例:
引号字符
将在文本列的开头和结尾使用的字符。默认为双引号字符 (")。当包含列分隔符的列用双引号括起来时,列分隔符字符将被解释为实际数据,而不是列分隔符。
示例(其中 @ 是引号字符):
引号转义符
用于对实际数据中的引号字符进行转义的字符。默认为双引号字符 (")。
示例(其中 “ 是引号,\ 是转义符):
Parquet 版本
根据目标平台支持的版本选择要使用的版本。请注意,Parquet 1.0 版本仅支持 MICRO 时间戳单元,而 Parquet 2.6 版本同时支持 MICRO 和 NANO 时间戳单元。
Parquet 时间戳单位
当 Parquet 版本设置为2.6时,选择 MICRO 或 NANO。当 Parquet 版本设置为 1.0 时,仅支持 MICRO。
Parquet 最大 LOB 大小 (KB)
默认的最大 LOB 大小为 64 KB,您可以在此字段中输入的最大值为 10000 KB。处理 LOB 列需要更多的资源,这反过来又会影响性能。只有当您正在复制大于 64 KB 的 LOB 数据,并且需要将所有 LOB 数据复制到目标时,才能增大此值。
最大文件大小
文件在关闭之前可以达到的最大大小(可选择压缩)。
文件在关闭之前可以达到的最大大小。与并行执行选项结合使用时,较小的文件可能会上传得更快(取决于网络),并提高性能。然而,通常认为用小文件扰乱数据库是不好的做法。
压缩文件方式
选择其中一个压缩选项来压缩目标文件,或者选择 NONE(默认值)使其保持未压缩状态。请注意,可用的压缩选项由选定的文件格式决定。
添加元数据标头
您可以选择将标题行添加到数据文件中。标题行可以包含源列名和/或中间(即Qlik Talend Data Integration)数据类型。
当同时选择带列名和带数据类型时,具有标题行的目标文件示例:
Position:DECIMAL(38,0),Color:VARCHAR(10)
1,"BLUE"
2,"BROWN"
3,"RED"
...
更改处理
该部分介绍更改处理中的条件设置。
应用/存储更改场景
元数据文件
当选择在目标文件夹中创建元数据文件选项时,对于每个数据文件,将在指定的目标文件夹下创建一个扩展名为 .dfm 的匹配元数据文件。元数据文件提供了有关任务/数据的附加信息,如源连接器类型、源表名称、数据文件中的记录数等。
有关元数据文件的完整描述以及可能的用途,请参阅元数据文件描述
元数据
LOB 列
-
包括 LOB 列并将列大小限制为 (KB):
您可以选择在任务中包括 LOB 列,并设置最大 LOB 大小。大于最大大小的 LOB 将被截断。
控制表
选择要在目标平台上创建以下控制表中的哪一个:
- 复制状态:提供有关当前登录任务的详细信息,包括任务状态、任务消耗的内存量、尚未应用于数据平台的更改数量以及当前正在从中读取数据的数据源中的位置。
- 挂起的表提供挂起的表的列表,以及它们被挂起的原因。
- 复制历史记录:提供有关任务历史记录的信息,包括登陆任务期间处理的记录数量和卷、CDC 任务结束时的延迟等。
- 更改数据分区:提供由于更改数据分区在目标数据库上创建的分区的记录。您可以使用这些信息来标识需要进一步处理的分区数据。
有关每个控制表的详细说明,请参阅控制表
满负载
性能调整
- 并行加载的最大表数:输入一次要加载到目标中的最大表数。默认值为 5。
-
事务一致性超时(秒):输入在开始满负载操作之前等待打开的事务关闭的秒数。默认值为 600(10 分钟)。即使存在仍处于打开状态的事务,也会在达到超时值后开始满负载。
信息注释要复制在满负载开始时打开但在达到超时值后才提交的事务,需要重新加载目标表。 - 满负载期间的提交率:可以一起传输的最大事件数。默认值为 10000。
在满负载完成之后
创建主键或唯一索引:如果要将主键或唯一索引在数据平台上的创建延迟到满负载完成后,请选择此选项。
对于初始加载
当从 SaaS 应用程序源移动数据时,您可以设置如何执行初始满负载:
使用缓存数据 |
此选项允许您使用在选择完整数据扫描的情况下生成元数据时读取的缓存数据。 这减少了 API 使用和配额方面的开销,因为已经从源读取数据。自初始数据扫描以来的任何更改都可以通过更改数据捕获 (CDC) 获取。 |
从数据源加载 |
此选项从数据源执行新加载。此选项在以下情况下很有用:
|
存储更改处理
更改表头列提供有关更改处理操作的信息,如操作类型(例如插入)、提交时间等。如果不需要此信息,可以配置数据任务以创建没有部分或全部标题列的更改表,从而减少它们在目标数据库中的占用空间。为此,请清除要排除的标题列的复选框。
请注意,在任务运行时,不能删除其他列或还原列。要更改初始选择,首先需要停止任务,然后修改选择,最后重新加载目标表。
启用 更改数据分区后,名为“partition_name”的额外标题列将添加到“更改表”中,并在 UI 中自动选择。由于此列是必需的,因此不能排除。
有关表头列的说明,请参阅 使用更改表。
错误处理
数据错误
只有变更数据捕获 (CDC) 更新方法才支持数据错误处理。
数据截断错误
对于数据截断错误:选择在一个或多个特定记录中发生截断时要执行的操作。您可以从列表中选择以下选项之一:
- 忽略:任务将继续,并忽略该错误。
- 挂起表:任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
- 停止任务:任务已停止,需要手动干预。
其他数据错误
对于其他数据错误:选择在一个或多个特定记录中发生错误时要执行的操作。您可以从列表中选择以下选项之一:
- 忽略:任务将继续,并忽略该错误。
- 挂起表:任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
- 停止任务:任务已停止,需要手动干预。
升级数据错误处理
当其他数据错误达到时,升级错误处理(按表):选中此复选框可在非截断数据错误数(按表)达到指定数量时升级错误处理。有效值为 1-10,000。
升级操作:选择升级错误处理时应执行的操作。请注意,可用的操作取决于从上述针对其他数据错误下拉列表中选择的操作。
-
挂起表(默认值):任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会landed其数据。
- 停止任务:任务已停止,需要手动干预。
表格错误
遇到表格错误时:从下拉列表中选择以下选项之一:
- 挂起表(默认值):任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
- 停止任务:任务已停止,需要手动干预。
当表格错误达到时,升级错误处理(按表):选中此复选框可在表错误数(按表)达到指定数量时升级错误处理。有效值为 1-10,000。
升级操作:表错误的升级策略设置为停止任务,无法更改。
环境
-
最大重试数选择此选项,然后指定发生可恢复环境错误时重试任务的最大尝试次数。重试任务达到指定次数后,任务将停止,需要手动干预。
若要从不重试任务,请清除复选框或指定“0”。
要无限次重试任务,请指定“-1”
-
重试间隔(秒)使用计数器选择或键入系统在尝试重试任务之间等待的秒数。
有效值为 0-2000。
-
- 延长长时间停机的重试间隔选中此复选框可增加长时间停机的重试间隔。启用此选项后,每次重试之间的间隔将加倍,直到达到最大重试间隔(并根据指定的最大间隔继续重试)。
- 最大重试间隔(秒)使用计数器选择或键入在启用增加长时间中断的重试间隔选项时任务重试之间等待的秒数。有效值为 0-2000。
更改处理调谐
事务卸载调整
-
该条件下将正在进行的事务卸载到磁盘:
事务数据通常保存在内存中,直到它完全提交到源或目标。但是,大于分配内存或未在指定时间限制内提交的事务将被卸载到磁盘。
- 所有事务总内存大小超过 (MB):所有事务在卸载到磁盘之前可以在内存中占用的最大大小。默认值为 1024。
- 事务持续时间超过(秒):每个事务在卸载到磁盘之前可以在内存中停留的最长时间。持续时间是从 Qlik Talend Data Integration 开始捕获事务的时间开始计算的。默认值为 60。
批量调节
-
每笔交易的最小更改次数:每个事务中要包含的最小更改数。默认值为 1000。
信息注释当更改次数等于或大于每个事务的最小更改次数值时,或者当达到下面描述的应用前批处理事务的最长时间(秒)值时,将对目标应用更改,以先发生的为准。由于应用于目标的更改频率由这两个参数控制,因此对源记录的更改可能不会立即反映在目标记录中。
- 应用前批处理事务的最长时间(秒):在声明超时之前分批收集事务的最长时间。默认值为 1。
间隔
此选项仅在以下情况下可:
- 使用 数据移动网关
- 从 SaaS 应用程序源登陆数据
- 该任务使用更改数据捕获 (CDC) 更新方法定义
每(分钟)读取更改
设置从源读取更改的间隔(分钟)。有效范围为 1 到 1440。
其他调谐
- 语句缓存大小(语句数):要存储在服务器上以供以后执行(在对目标应用更改时)的最大准备语句数。默认值为 50。最大值为 200。
-
更新主键列时执行 DELETE 和 INSERT 操作:此选项要求在源数据库中打开完整的补充日志记录。
模式演变
字符替换
您可以替换或删除目标数据库中的源字符,和/或替换或删除所选字符集不支持的源字符。
-
所有字符都必须指定为 Unicode 代码点。
- 字符替换也将在控制表上执行。
-
无效值将由表格单元格右上角的红色三角形指示。将鼠标光标悬停在三角形上会显示错误消息。
-
为任务定义的任何表级或全局转换都将在字符替换完成后执行。
-
在替换或删除源字符表中定义的替换操作在替换或删除所选字符集不支持的源字符表格中定义的替代操作之前执行。
- 字符替换不支持 LOB 数据类型。
替换或删除源字符
使用替换或删除源字符表可以定义特定源字符的替换项。例如,当字符的 Unicode 表示在源平台和目标平台上不同时,这可能很有用。例如,在 Linux上,Shift_JIS 字符集中的减号字符表示为 U+2212,但在 Windows 上,它表示为 U+FF0D。
要 | 进行该操作 |
---|---|
定义替代操作 |
|
编辑指定的源或目标角色 |
单击行末尾的 并选择编辑。 |
从表中删除条目 |
单击行末尾的 并选择删除。 |
替换或删除所选字符集不支持的源字符
使用不支持的源字符(按字符集)表为所选字符集不支持的所有字符定义一个替换字符。
要 | 进行该操作 |
---|---|
定义或编辑替换操作。 |
|
禁用替换操作。 |
从字符集下拉列表中选择空白条目。 |
更多选项
这些选项不会在 UI 中公开,因为它们仅与特定版本或环境相关。因此,除非 Qlik 支持或产品文档明确指示,否则不要设置这些选项。
要设置选项,只需将该选项复制到添加功能名称字段中,然后单击添加。然后根据收到的说明设置该值或启用该选项。
在不使用 数据移动网关 进行工作的情况下安排任务
数据移动网关 不支持 Qlik Talend Cloud Starter 订阅,并且对于其他订阅级别是可选的。在没有 数据移动网关 的情况下工作时,不支持近乎实时的 CDC(更改数据捕获)。通过设置计划间隔,可以使目标数据保持最新。该计划决定了目标数据集随源数据集的更改而更新的频率。时间表决定了更新频率,而数据集类型决定了更新方法。如果源数据集支持 CDC(更改数据捕获),则只有对源数据的更改会被复制并应用到相应的目标表。如果源数据集不支持 CDC(例如,视图),则将通过将所有源数据重新加载到相应的目标表来应用更改。如果一些源数据集支持 CDC,而另一些不支持CDC,则将创建两个独立的子任务(假设选择了更改数据捕获 (CDC) 更新方法为):一个用于重新加载不支持 CDC 的数据集,另一个用于捕获对实际支持 CDC 的数据集的更改。在这种情况下,为了确保数据的一致性,强烈建议为两个子任务设置相同的计划。
更改计划:
-
打开数据项目,然后执行以下操作之一:
- 在任务视图中,单击数据任务上的 并选择计划。
- 在管道视图中,单击数据任务上的 并选择计划。
- 打开复制任务,然后单击计划工具栏按钮。
- 根据需要更改计划设置,然后单击确定。