云存储目标的设置
您可以根据需要更改默认的数据湖登陆设置。
常规
更新方法
您可以通过两种不同的模式登陆数据。一旦准备好数据湖登陆任务,就无法更改模式。
-
使用变更表更改数据捕获 (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 格式相关:字段分隔符、记录分隔符、空值、引号字符、引号转义字符和添加元数据标头。
- 以下字段仅与 Parquet 格式相关:Parquet 版本、Parquet 时间戳单位和 Parquet 最大 LOB 大小 (KB)。
有关使用 Parquet 格式时的数据类型映射和限制的信息,请参阅 Mapping from Qlik Cloud data types to Parquet
字段分隔符
将用于分隔目标文件中的字段(列)的分隔符。默认值为逗号。
使用逗号作为分隔符的示例:
"mike","male"
分隔符可以是标准字符或十六进制 (hex) 值。请注意,必须使用“0x”前缀来表示十六进制分隔符(例如 0x01 = SOH)。在字段分隔符、记录分隔符和空值字段中,分隔符可以由串联的十六进制值组成(例如 0x0102 = SOHSTX),而在引号字符和引号转义字符字段中,它只能是单个十六进制值。
不支持十六进制数 0x00(即仅支持 0x01-0xFF)。
空值
将用于指示目标文件中的空值的字符串。
示例(其中 \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,您在此字段中可以输入的最大值为 10,000 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 将被截断。
JSON 列映射
将兼容的源 JSON 列映射到目标上的 JSON 列
-
如果您使用 数据移动网关 访问数据源,则需要版本 2024.11.70 或更高版本。
-
仅支持 SaaS 应用程序预览连接器。
选中此选项后,源上的 JSON 列将自动映射到目标上的 JSON 列。
此选项的状态和可见性由以下因素决定:
-
新任务:如果源和目标都支持 JSON 数据类型,则此选项将默认启用。
-
现有任务:即使源和目标都支持 JSON 数据类型,此选项也将默认禁用。这是为了保持与下游流程(例如转换)的向后兼容性,这些流程期望目标数据采用 STRING 格式(这是旧版行为)。您可以禁用该选项,也可编辑下游进程以兼容 JSON 格式,然后启用该选项。
-
新建和现有任务:如果只有源支持 JSON 数据类型,此选项将不可见。如果稍后在目标中添加 JSON 支持,该选项将变为可见,但仍处于禁用状态。这是为了保持与下游流程(例如转换)的向后兼容性,这些流程期望目标数据为 STRING 格式(这是传统行为)。
控制表
选择要在目标平台上创建以下哪些控制表:
- 复制状态:提供有关当前登陆任务的详细信息,包括任务状态、任务消耗的内存量、尚未应用到数据平台的更改数量以及当前正在从中读取数据的数据源中的位置。
- 挂起的表:提供挂起的表列表及其挂起的原因。
- 复制历史记录:提供有关任务历史记录的信息,包括在登陆任务期间处理的记录数量和容量、CDC 任务结束时的延迟等。
- 更改数据分区:提供由于 更改数据分区 而在目标数据库上创建的分区记录。您可以使用此信息来识别需要进一步处理的分区数据。
有关每个控制表的详细描述,请参阅 控制表
满负载
性能调优
- 并行加载的最大表数:输入一次加载到目标中的最大表数。默认值为 5。
-
事务一致性超时(秒):输入在开始满负载操作之前等待打开的事务关闭的秒数。默认值为 600(10 分钟)。即使仍有打开的事务,满负载也会在达到超时值后开始。
信息注释要复制在满负载开始时打开但仅在达到超时值之后才提交的事务,您需要重新加载目标表。 - 满负载期间的提交率:可以一起传输的最大事件数。默认值为 10000。
满负载完成后
创建主键或唯一键:如果您希望将数据平台上主键或唯一索引的创建延迟到满负载完成之后,请选择此选项。
对于初始加载
当从 SaaS 应用程序源移动数据时,您可以设置如何执行初始满负载:
| 使用缓存数据 |
此选项允许您使用在选择完整数据扫描的情况下生成元数据时读取的缓存数据。 这减少了 API 使用和配额方面的开销,因为已经从源读取数据。自初始数据扫描以来的任何更改都可以通过更改数据捕获 (CDC) 获取。 |
| 从数据源加载 |
此选项从数据源执行新加载。此选项在以下情况下很有用:
|
存储更改处理
更改表标头列提供有关更改处理操作的信息,例如操作类型(例如,INSERT)、提交时间等。如果您不需要此信息,则可以配置数据任务以创建不包含部分或全部标头列的更改表,从而减少它们在目标数据库中的占用空间。为此,请清除您希望排除的标头列的复选框。
请注意,在任务运行时,您无法删除其他列或恢复列。要更改您的初始选择,您首先需要停止任务,然后修改您的选择,最后重新加载目标表。
启用 更改数据分区 后,一个名为“partition_name”的额外标头列将添加到更改表中,并在 UI 中自动选择。由于此列是必需的,因此无法排除。
有关标头列的描述,请参阅 使用更改表。
错误处理
数据错误
仅变更数据捕获 (CDC) 更新方法支持数据错误处理。
数据截断错误
对于数据截断错误:选择在一个或多个特定记录中发生截断时要执行的操作。您可以从列表中选择以下选项之一:
- 忽略:任务将继续,并忽略该错误。
- 挂起表:任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
- 停止任务:任务已停止,需要手动干预。
其他数据错误
对于其他数据错误:选择在一个或多个特定记录中发生错误时要执行的操作。您可以从列表中选择以下选项之一:
- 忽略:任务将继续,并忽略该错误。
- 挂起表:任务继续进行,但带有错误记录的表中的数据会移动到错误状态,并且不会复制其数据
- 停止任务:任务已停止,需要手动干预。
升级数据错误处理
当其他数据错误达到时,升级错误处理(每个表):选中此复选框,当非截断数据错误(每个表)数量达到指定数量时,将错误处理升级。有效值为 1-10,000。
升级操作:选择升级错误处理时应执行的操作。请注意,可用的操作取决于从上述针对其他数据错误下拉列表中选择的操作。
-
挂起表(默认值):任务将继续,但带有错误记录的表中的数据将移动到错误状态,并且不会登陆其数据。
- 停止任务:任务已停止,需要手动干预。
表错误
返回表格错误前的重试次数
通过该选项可控制何时触发表格错误处理策略。默认情况下,遇到表格错误后,重试三次之后将暂停表格或停止任务(根据所选操作)。有时,由于 SaaS 应用程序的计划维护,会出现表格错误。在这些情况下,默认重试次数可能不足以在触发表格错误处理策略前完成维护。这也取决于任务调度间隔,因为每次任务运行时都会执行重试。因此,举例来说,如果您安排任务每小时运行一次,而就在任务开始运行时,SaaS 应用程序离线进行维护,那么默认三次重试将允许 SaaS 应用程序离线长达三小时,而不会触发表格错误处理策略。如果维护窗口较长,则需要增加重试次数(或更改调度),以防触发表格错误处理策略。
总之,如果您知道自己的 SaaS 应用程序要进行定期维护,最佳做法是根据调度增加重试次数,以便在不触发表错误处理策略的情况下完成维护。
-
该选项只显示在配置了精简版或标准版 SaaS 应用程序连接器的任务当中。
-
如果使用 数据移动网关 ,则需要 2024.11.70 或更高版本。
遇到表格错误时:从下拉列表中选择以下选项之一:
- 挂起表(默认):任务将继续,但带有错误记录的表中的数据将移动到错误状态,并且不会复制其数据。
- 停止任务:任务已停止,需要手动干预。
当表格错误达到时,升级错误处理(每个表):选中此复选框,当表格错误(每个表)数量达到指定数量时,将错误处理升级。有效值为 1-10,000。
升级操作:表错误的升级策略设置为停止任务,无法更改。
环境
-
最大重试数选择此选项,然后指定发生可恢复环境错误时重试任务的最大尝试次数。重试任务达到指定次数后,任务将停止,需要手动干预。
若要从不重试任务,请清除复选框或指定“0”。
要无限次重试任务,请指定“-1”
-
重试间隔(秒)使用计数器选择或键入系统在尝试重试任务之间等待的秒数。
有效值为 0-2000。
-
- 延长长时间停机的重试间隔选中此复选框可增加长时间停机的重试间隔。启用此选项后,每次重试之间的间隔将加倍,直到达到最大重试间隔(并根据指定的最大间隔继续重试)。
- 最大重试间隔(秒)使用计数器选择或键入在启用增加长时间中断的重试间隔选项时任务重试之间等待的秒数。有效值为 0-2000。
更改处理调优
事务卸载调优
-
在以下情况下将进行中的事务卸载到磁盘:
事务数据通常保存在内存中,直到完全提交到源或目标。但是,大于分配的内存或未在指定时间限制内提交的事务将被卸载到磁盘。
- 所有事务的总内存大小超过 (MB):所有事务在卸载到磁盘之前可以占用的最大内存大小。默认值为 1024。
- 事务持续时间超过(秒):每个事务在卸载到磁盘之前可以保留在内存中的最长时间。持续时间从 Qlik Talend Data Integration 开始捕获事务的时间算起。默认值为 60。
批处理调优
-
每笔交易的最小更改次数:每个事务中要包含的最小更改数。默认值为 1000。
信息注释当更改次数等于或大于每个事务的最小更改次数值时,或者当达到下面描述的应用前批处理事务的最长时间(秒)值时,将对目标应用更改,以先发生的为准。由于应用于目标的更改频率由这两个参数控制,因此对源记录的更改可能不会立即反映在目标记录中。
- 应用前批处理事务的最长时间(秒):在声明超时之前分批收集事务的最长时间。默认值为 1。
时间间隔
使用 SAP ODP 及 SaaS 应用程序(精简版)连接器时的设置
-
每(分钟)读取更改
从源读取更改的间隔(分钟)。有效范围为 1 至 1440。
使用 SAP OData 连接器时的设置
检查是否有更改
-
根据增量提取间隔:选中此选项后,数据任务会根据增量提取间隔来检查更改。
信息注释该间隔将在每个“轮次”后开始。一个轮次可以定义为数据任务从源表读取更改并将其发送至目标(作为单个事务)所需的时间。一个轮次的长度会根据表的数量及更改的数量而变化。因此,如果您指定 10 分钟的间隔,并且一个轮次需要 4 分钟,那么检查更改之间的实际时间将为 14 分钟。-
增量提取间隔:从您的系统之中提取增量的频率。默认值为每 60 秒一次。
-
-
按计划:选中此选项之后,数据任务将提取一次增量,然后停止。然后它将继续按计划运行。
信息注释仅当 CDC 周期之间的间隔为 24 小时或者更长时,此选项才相关。有关计划的信息:
-
要了解复制项目中的“将数据登陆到数据湖”任务,请参阅为湖登陆任务调度 CDC
-
杂项调优
- 语句缓存大小(语句数):存储在服务器上以供稍后执行(将更改应用到目标时)的准备语句的最大数量。默认值为 50。最大值为 200。
-
更新主键列时的 DELETE 和 INSERT:此选项要求在源数据库中打开完全补充日志记录。
架构演变
选择如何处理架构中的以下类型的 DDL 更改。更改架构演变设置后,必须再次准备任务。下表描述了支持的 DDL 更改可用的操作。
| DDL 更改 | 应用到目标 | 忽略 | 挂起表 | 停止任务 |
|---|---|---|---|---|
| 添加列 | 是 | 是 | 是 | 是 |
| 重命名列 | 否 | 否 | 是 | 是 |
| 重命名表 | 否 | 否 | 是 | 是 |
| 更改列数据类型 | 否 | 是 | 是 | 是 |
| 创建表
如果您使用选择规则添加匹配模式的数据集,则将检测并添加符合该模式的新表。 |
是 | 是 | 否 | 否 |
字符替换
您可以替换或删除目标数据库中的源字符,和/或替换或删除所选字符集不支持的源字符。
-
所有字符都必须指定为 Unicode 代码点。
- 字符替换也将在控制表上执行。
-
无效值将由表格单元格右上角的红色三角形指示。将鼠标光标悬停在三角形上会显示错误消息。
-
为任务定义的任何表级或全局转换都将在字符替换完成后执行。
-
在替换或删除源字符表中定义的替换操作在替换或删除所选字符集不支持的源字符表格中定义的替代操作之前执行。
- 字符替换不支持 LOB 数据类型。
替换或删除源字符
使用替换或删除源字符表可以定义特定源字符的替换项。例如,当字符的 Unicode 表示在源平台和目标平台上不同时,这可能很有用。例如,在 Linux上,Shift_JIS 字符集中的减号字符表示为 U+2212,但在 Windows 上,它表示为 U+FF0D。
| 要 | 进行该操作 |
|---|---|
|
定义替代操作 |
|
|
编辑指定的源或目标角色 |
单击行末尾的 |
|
从表中删除条目 |
单击行末尾的 |
替换或删除所选字符集不支持的源字符
使用不支持的源字符(按字符集)表为所选字符集不支持的所有字符定义一个替换字符。
| 要 | 进行该操作 |
|---|---|
|
定义或编辑替换操作。 |
|
|
禁用替换操作。 |
从字符集下拉列表中选择空白条目。 |
并行加载数据集段
在满负载期间,您可以通过将数据集拆分为多个段来加速大型数据集的加载,这些段将并行加载。表可以按数据范围、所有分区、所有子分区或特定分区进行拆分。
有关详细信息,请参阅 并行复制数据集片段。
更多选项
这些选项不会在 UI 中公开,因为它们仅与特定版本或环境相关。因此,除非 Qlik 支持或产品文档明确指示,否则不要设置这些选项。
要设置选项,只需将该选项复制到添加功能名称字段中,然后单击添加。然后根据收到的说明设置该值或启用该选项。
为湖登陆任务调度 CDC
在以下用例中,您必须定义调度时间间隔以保持目标数据最新:
- 访问没有 数据移动网关 的数据源
- 使用 SaaS 应用程序 预览连接器。要了解您的连接器是否处于预览状态,请参阅连接器帮助。
- 使用按计划选项从 SAP OData 源捕获更改时。
计划决定了目标数据集使用源数据集的更改进行更新的频率。计划决定更新频率,而数据集类型决定更新方法。如果源数据集支持 CDC(更改数据捕获),则只有对源数据的更改会被复制并应用到相应的目标表。如果源数据集不支持 CDC(例如,视图),则将通过将所有源数据重新加载到相应的目标表来应用更改。如果一些源数据集支持 CDC,而另一些不支持CDC,则将创建两个独立的子任务(假设选择了更改数据捕获 (CDC) 更新方法为):一个用于重新加载不支持 CDC 的数据集,另一个用于捕获对实际支持 CDC 的数据集的更改。 在这种情况下,为了确保数据一致性,强烈建议不要为这两个任务保持相同的调度时间间隔(如果您决定将来更改更新频率)。
要更改调度:
-
打开您的管道项目,然后执行以下操作之一:
- 在任务视图中,单击数据任务上的
,然后选择调度。
- 在管道视图中,单击数据任务上的
,然后选择调度。
- 打开复制任务,然后单击调度工具栏按钮。
- 在任务视图中,单击数据任务上的
- 根据需要更改调度设置,然后单击确定。
为基于 数据移动网关 的任务执行错过的运行
有时候,网络问题可能会导致与 数据移动网关 的连接中断。如果在下一次计划运行前没有恢复与 数据移动网关 的连接,数据任务将无法按计划运行。在这种情况下,您可以选择在连接恢复后是否立即执行一次运行。
所有 数据移动网关 的默认设置在 Administration 活动中心中定义。您可以如下所述覆盖各个任务的这些设置。
为此
-
打开您的项目,然后执行以下操作之一:
-
在任务视图中,单击数据任务上的
,然后选择调度。
-
在管道视图中,单击数据任务上的
,然后选择调度。
-
打开数据任务,然后单击调度工具栏按钮。
将打开调度 - <task>对话框。
-
-
开启为此任务使用自定义设置。
-
在对话框底部,选择以下运行错过的计划任务选项之一。
-
尽快,然后按计划(如果在下一个计划实例之前运行任务很重要)
-
按计划(在下一个计划实例运行任务)
-
-
保存您的设置。
另请参阅:执行错过的计划任务运行。
按钮指示。