从数据源登陆数据
引入时传输数据的第一步是登陆数据。这涉及将数据从本地数据源连续传输到登陆区域。
您可以通过源连接从多个数据源获取数据。
登陆区域是在创建项目时定义的。
-
Qlik Cloud(经由 Amazon S3)
将数据登陆到 Qlik Cloud(经由 Amazon S3)中,可以用其生成可供在 Qlik Cloud 中分析的 QVD 表。
-
云数据仓库
如果将数据放入云数据仓库,例如 Snowflake 或 Azure Synapse Analytics,则可以在同一个云数据仓库中存储表。
创建和配置登陆数据任务
这里介绍如何创建登陆数据任务。创建数据管道的最快方法是录入数据,由此创建登陆数据任务和存储数据任务,这些资产会准备就绪并可直接运行。有关更多信息,请参阅录入数据。
-
在您的项目中,单击新增,然后选择登陆数据。
-
在登陆数据对话框中,输入数据任务的名称和描述。
选择打开可在创建登陆数据任务时打开它。
单击创建。
-
单击选择源数据。
-
选择与源数据的连接,然后单击下一步。
您可以使用左侧面板中的筛选器来筛选源类型、空间和所有者的连接列表。
如果尚未建立到源数据的连接,则需要通过单击添加连接先创建一个:
有关设置与支持的源的连接的详细信息,请参阅设置与数据源的连接。
信息注释在下一步中选择表后,无法将源连接从本地数据源更改为云数据源,反之亦然。您只能更改与同一类型的其他数据源的连接。 -
选择要包含在数据任务中的数据集。根据所连接的源的类型,选择对话框会有所不同。
选择了表格后,单击保存。
即会显示数据集。
-
您可以更改登陆的设置。这并非必需。
-
单击设置。
有关更多信息,请参阅登陆设置。
-
-
您现在可以预览所选数据资产表的结构和元数据。这包括所有显式列出的表以及与选择规则匹配的表。
如果要从数据源中添加更多表,请单击选择源数据。
-
您可以对数据集执行基本转换,例如筛选数据或添加列。这并非必需。
有关更多信息,请参阅管理数据集。
-
添加所需的转换后,可以通过单击验证数据集来验证数据集。如果验证发现错误,请在继续之前修复错误。
有关更多信息,请参阅验证和调整数据集。
-
准备好后,单击准备对数据任务进行编目并准备好执行。
您可以按照屏幕下部准备进度下的进度进行操作。
-
当数据任务准备就绪,并且您准备好开始复制数据时,单击运行。
复制现在应该开始了,您可以在监视器中看到进度。有关更多信息,请参阅监视单个数据任务。
从数据库选择数据
可以选择特定的表格或视图,或使用选择规则包括或排除表格组。
使用 % 作为通配符来定义架构和表的选择条件。
-
%.% 定义所有架构中的所有表。
-
Public.% 定义所有架构 Public 中的所有表。
选择条件根据您的选择提供预览。
您现在可以:
-
根据选择条件创建规则以包含或排除一组表。
单击从选择标准添加规则以创建规则,然后选择包含或排除。
您可以在选择规则下查看规则。
-
选择一个或多个数据集,然后单击添加选定的数据集。
您可以在显式选择的数据集下查看添加的数据集。
选择规则仅适用于当前的表和视图集,而不适用于将来添加的表和视图。
使用更改数据捕获 (CDC) 运行登陆任务
准备好后,您可以运行登陆任务。这将启动复制,该任务将本地数据源中的数据传输到登陆区域。
-
单击运行以启动登陆数据。
复制现在应该开始,数据任务的状态将为正在运行。首先,复制整个数据源,然后跟踪更改。这意味着,在发现更改时,会不断跟踪和传输更改。这使登陆区域中的登陆数据保持最新。
在 Qlik Talend Data Integration 主页中,您可以查看登陆数据更新的状态、日期和时间,以及出错的表数。您还可以打开数据任务并选择表标签来查看表的基本元数据信息。
您可以通过打开监视器选项卡来详细监控进度。有关更多信息,请参阅监视单个数据任务。
如果创建了所有表并且处理了第一组更改,则当数据任务中存在截至该时间的源更改时,数据任务卡上显示数据更新为。
重新加载表
您可以从源重新加载数据。
重新加载单个表
您可以手动重新加载特定表,而不会干扰更改数据捕获。当一个或多个表出现 CDC 问题时,这很有用。
-
打开登陆数据任务,然后选择监视器选项卡。
-
选择要重新加载的表。
-
单击重新加载表。
如果无法通过重新加载表来解决问题,或者这些问题影响到整个任务,则可以将所有表重新加载到目标。这将重新启动更改数据捕获。
将所有表重新加载到目标。
如果遇到无法通过重新加载特定表来解决的 CDC 问题,则可以将所有表重新加载到目标。问题的示例包括丢失事件、源数据库重组引起的问题或读取源数据库事件时失败。
- 停止数据任务和所有使用它的任务。
-
打开数据任务,然后选择监视器选项卡。
-
点击 ...,然后重新加载目标。
这将使用 Drop-Create 将所有表重新加载到目标,并将从现在起重新启动所有更改数据捕获。
-
消耗登陆数据任务的存储任务将通过比较重新加载,并在下次运行时应用以保持同步。现有历史将被保留。类型 2 历史记录将更新,以反映执行重新加载和比较进程后的变化。
类型 2 历史记录中的起始日期的时间戳将反映重新加载日期,而不一定是源中发生更改的日期。
-
在重新加载目标操作期间以及在存储同步之前,存储实时视图将不可靠。存储将在以下情况下完全同步:
-
使用比较和应用重新加载所有表,
-
每个表执行一个更改周期。
-
通过满负载和比较运行登陆数据任务
数据准备好后,可以使用登陆数据任务复制数据。
-
单击运行以开始满负载。
现在将开始复制数据,数据任务的状态为正在运行。复制完整数据源时,状态为完成。
在 Qlik Talend Data Integration 主页中,您可以查看登陆数据更新的状态、日期和时间,以及出错的表数。您还可以打开数据任务并选择表标签来查看表的基本元数据信息。
您可以通过打开监视器选项卡来详细监控进度。有关更多信息,请参阅监视单个数据任务。
如果加载了所有表,则当数据任务中存在截至该时间的源更改时,数据资产卡上显示数据更新为。但是,数据任务的某些表可以在以后更新,具体取决于它们开始加载的时间。这意味着无法保证数据的一致性。例如,如果加载从08:00开始,耗时4小时,则加载完成时,数据更新为显示 08:00。但是,在 11:30 开始重新加载的表将包括 08:00 到 11:30 之间发生的源更改。
数据更新为仅反映成功加载的表。它并不表示表的重新加载失败。在云目标中,如果重新加载完成且所有表都出错,则该字段将为空。
使用重新加载和比较时重新加载数据
使用重新加载和比较作为更新方法时,需要重新加载数据以使其与数据源保持同步。
-
单击重新加载以手动重新加载所有表。
-
设置计划的重新加载。
重新加载单个表
您可以手动重新加载特定表。当一个或多个表出现问题时,这很有用。
-
打开登陆数据任务,然后选择监视器选项卡。
-
选择要重新加载的表。
-
单击重新加载表。
- 此选项将在登陆任务至少运行一次后,且仅在任务未运行时可用。
- 不支持元数据更改。如果源中有元数据更改,则在重新加载数据时会将其传播到登陆位置,但不会正确处理。这可能会导致消耗的存储发生故障。
安排重新加载和比较登陆数据任务
如果在数据任务空间中具有可以操作角色,则可以为登陆数据任务安排定期重新加载。数据任务状态必须至少准备好,计划才能处于活动状态。
-
单击数据任务上的 ...,然后选择计划。
您可以设置基于时间的计划。
有关根据数据源类型和订阅层的最小调度间隔的信息,请参阅允许的最小调度间隔。
设置数据集的加载优先级
您可以通过为每个数据集指定加载优先级来控制数据任务中数据集的加载顺序。例如,如果您想先加载较小的数据集,然后再加载较大的数据集,这就很有用。
-
点击加载优先级。
-
为每个数据集选择加载优先级。
默认加载优先级为正常。数据集将按以下优先顺序加载:
-
最高
-
较高
-
高
-
正常
-
低
-
较低
-
最低
具有相同优先级的数据集不分先后加载。
-
-
单击确定。
对登陆数据任务的操作
您可以从任务菜单对登陆数据任务执行以下操作。
-
打开
这将打开登陆数据任务。您可以查看表结构和有关数据任务的详细信息。
-
编辑
您可以编辑任务的名称和描述。
-
删除
您可以删除数据任务。
以下对象未被删除,需要手动删除:
-
登陆区中的数据。
-
-
运行
您可以运行数据任务以开始复制数据。
-
停止
您可以停止正在运行的数据任务的操作。登陆区域不会使用更改的数据进行更新。
使用重新加载计划停止满负载数据任务时,仅停止当前重新加载。如果数据任务状态为停止,并且有活动的重新加载计划,它将在下一个计划时间再次重新加载。必须在计划重新加载中关闭重新加载计划。
-
重新加载
您可以在重新加载和比较更新模式下手动重新加载数据任务。
- 准备
此操作将为任务的执行做好准备。相关准备包括:
-
验证设计是否有效。
-
创建或更改物理表和视图以匹配设计。
-
为数据任务生成 SQL 代码。
-
为任务输出数据集创建或更改目录条目。
您可以按照屏幕下部准备进度下的进度进行操作。
-
-
重新创建表
这将从源重新创建数据集。
-
计划
可以在满负载模式下为登陆数据任务设置计划重新加载。您可以设置可以自定义的基于时间的计划。
您还可以打开或关闭计划的重新加载。
您必须在数据任务的空间上具有可以运算角色才能计划重新加载。
-
存储数据
您可以创建使用此登陆数据任务中的数据的存储数据任务。
正在刷新元数据
您可以刷新任务中的元数据,以与任务的设计视图中源元数据的更改保持一致。对于使用 Metadata manager 的 SaaS 应用程序,必须先刷新 Metadata manager,然后才能刷新数据任务中的元数据。
-
您可以:
-
单击 ...,然后刷新元数据以刷新任务中所有数据集的元数据。
-
点击在数据集中的某个数据集上的 ...,然后刷新元数据以刷新单个数据集的元数据。
您可以在屏幕下部的刷新元数据下查看元数据刷新的状态。通过将光标悬停在 上,您可以看到元数据上次刷新的时间。
-
-
准备数据任务才能应用更改。
准备好数据任务并应用更改后,将从刷新元数据中删除这些更改。
您必须准备使用此任务的存储任务来传播更改。
如果删除列,则会添加一个具有 Null 值的转换,以确保存储不会丢失历史数据。
限制
-
如果数据类型和数据长度相同,则在此之前在同一时隙中具有删除列的重命名将被转换为删除列重命名。
示例:
之前:a b c d
之后:a c1 d
在这个例子中,b 被删除,c 被重命名为 c1,b 和 c 具有相同的数据类型和数据长度。
这将被识别为 b 到 c1 并删除 c 的重命名。
-
即使删除了最后一列,并且其前面的一列被重命名,也无法识别最后一列的重命名。
示例:
之前:a b c d
之后:a b c1
在这个例子中,d 被删除,c 被重命名为 c1。
这将被识别为 c 和 d 的删除,以及 c1 的添加。
-
假设在末尾添加了新列。如果在中间添加与下一列具有相同数据类型的列,则可能会将其解释为删除和重命名。
删除列
如果删除由启用了历史记录的存储数据任务使用的列,则需要遵循以下步骤来保留历史记录并避免可能的数据丢失。
停止登陆数据任务。
运行存储数据任务,确保所有登陆数据都被读取。
删除登陆中的列。
运行登陆数据任务。
在存储中,添加带有默认表达式(Null 或默认值)的列,或者删除该列。
登陆区域维护
不支持自动清理登陆区域。这可能影响性能。
我们建议您手动清除登陆区域中旧的满负载数据。
Qlik Cloud(经由 Amazon S3)
如果有多个满负载数据的文件夹,则可以删除最新文件夹以外的所有文件夹。还可以删除已处理的更改数据分区。
云数据仓库
您可以删除满负载并更改已处理的更改表记录。
建议
如果可以更新源表中的主键,请在更改处理调整中启用更新主键列选项时 DELETE 和 INSERT 选项。
限制
不支持复制长度超过 8000 字节的 varchar 数据或长度超过 4000 字节的 Nvarchar 数据。
移动的列不支持更改可空性,无论是直接更改还是使用转换规则。但是,默认情况下,任务中创建的新列可以为空。
转换受以下限制:
- 语序为从右向左的语言的列不支持转换。
无法对名称中包含特殊字符(例如 #、\、/、-)的列执行转换。
- LOB/CLOB 数据类型唯一支持的转换是删除目标上的列。
- 不支持使用转换重命名列,然后添加同名的新列。