转换数据 | Qlik Cloud帮助
跳到主要内容 跳到补充内容

转换数据

您可以创建可重用的、基于规则的数据转换,作为数据管道的一部分。您可以在数据载入过程中执行转换,或者创建可重用的转换数据任务。您可以执行行级转换,包括 SQL 转换,并设计复杂的转换流。生成的数据集可以具体化为表,也可以创建为动态执行转换的视图。

信息注释高级转换可通过 Qlik Talend Cloud PremiumQlik Talend Cloud Enterprise 订阅获得。
  • 您可以执行显式数据集转换,或创建转换多个数据集的全局规则。您还可以过滤数据集以创建行的子集。

  • 您可以添加 SQL 转换。SQL 转换允许您将 SQL SELECT 查询输入到管道中,以定义复杂或简单的转换。

  • 您可以添加包含源、处理器和目标的视觉转换流,以定义复杂或简单的转换。

信息注释数据任务在其所属项目的所有者的上下文中运行。有关所需角色和权限的更多信息,请参阅数据空间角色和权限

转换数据任务包含三个视图:

  • 转换

    此视图显示所有转换,以可视化从源数据集到目标数据集的流。

  • 数据集

    此视图显示数据集上的所有基本转换(例如过滤数据或添加列),以及执行全局转换的规则。

  • 模型

    此视图允许您创建包含所包含数据集之间关系的数据模型。有关详细信息,请参阅 创建数据模型

除了在数据仓库中存储表外,您还可以将表存储为由数据平台管理的 Iceberg 表。此选项目前仅适用于 Snowflake 项目。在任务设置中的表类型下选择 Snowflake 托管的 Iceberg 表,就可以实现这一点。

创建转换数据任务

创建转换数据任务的最简单方法是单击存储数据任务上的 ...,然后选择 转换数据

您也可以在项目中单击 创建,然后选择 转换数据。在这种情况下,您需要定义要使用的源数据任务。

  1. 转换 中定义您的源数据和目标。

    您可以:

    • 选择源数据集并单击 添加到目标 将它们添加到 目标

      然后,您可以在 数据集 中对数据集执行基本转换,例如过滤数据或添加列。

      有关详细信息,请参阅 管理数据集

    • 选择源数据集并单击 添加 SQL 转换

      SQL 转换允许您将 SQL SELECT 查询输入到管道中,以定义复杂或简单的转换。

      有关详细信息,请参阅 添加 SQL 转换

    • 选择源数据集并单击 添加转换流

      流设计器允许您创建包含源、处理器和目标的转换流,以定义复杂或简单的转换。

      有关详细信息,请参阅 添加转换流

  2. 您还可以通过单击 选择源数据 从其他存储数据任务添加更多数据集。

    您可以从当前项目或从另一个项目添加数据集。要从另一个项目添加数据集:

    • 您必须在所使用项目的空间中至少具有 可使用 角色。

    • 两个项目必须位于同一数据平台上。

    如果所选项目处于版本控制之下,您可以选择要用作源的分支。有关跨项目管道的详细信息,请参阅 构建跨项目管道

  3. 添加所需的转换后,通过单击 验证数据集 来验证数据集。如果验证发现错误,请在继续之前修复错误。

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

  4. 创建数据模型

    单击 模型 以设置所包含数据集之间的关系。

    有关详细信息,请参阅 创建数据模型

  5. 单击 准备 以准备数据任务和所有必需的工件。这可能需要一点时间。

    您可以在屏幕下方的 准备进度 下关注进度。

    信息注释在准备任务之前,停止所有直接下游的任务。
  6. 当状态显示为 已准备 时,您可以运行数据任务。

    单击 ...,然后单击 运行

数据任务现在将开始创建数据集以转换数据。

信息注释开始生成数据集后,无法更改包含哪些数据集。

使用 转换 视图

转换 中,将显示所有转换,以可视化从源数据集到目标数据集的流。

  • 选择一个转换以查看使用了哪些源数据集,以及创建了哪些目标数据集。

  • 选择一个源以查看使用它的所有转换以及所有生成的目标。

  • 选择一个目标以查看哪些是源数据集,以及哪个转换创建了此目标数据集。

转换中的转换视图

转换中的转换视图

您可以通过单击 显示选项 来更改以下设置:

  • 按转换类型过滤

    仅显示一种或两种转换类型的转换。

  • 过滤器

    显示所有转换或仅显示选定的转换。您必须选择一个转换才能启用此选项。

  • 密度

    选择是要以紧凑布局显示转换,还是以使用更多空间的宽布局显示转换。

使用 数据集 视图

数据集 中,您可以查看和编辑转换任务中的所有目标数据集。

有关详细信息,另请参阅 管理数据集

添加目标数据集

您可以向转换任务添加更多目标数据集。

  1. 单击 添加数据集

  2. 提供数据集的 名称 和可选的 描述

  3. 源数据集 中从任务中可用的数据集选择一个源数据集。

    提示注释您可以选择 无源数据集 以创建一个空数据集,不连接到任何源。您可以在设计期间向数据集添加列,但在准备任务之前必须连接到源数据集。

目标数据集现已添加。

更改源数据集

您可以更改目标数据集的源数据集。

  1. 单击 源: [源数据集名称] 后面的 编辑

  2. 源数据集 中从任务中可用的数据集选择另一个源数据集。

    提示注释您可以选择 无源数据集 以断开目标数据集与源的连接。您可以在设计期间编辑数据集,但在准备任务之前必须连接到源数据集。

添加新列

您可以向目标数据集添加新列。

  • 单击 + 添加

    提供列的名称,并设置表达式以定义列数据。

    有关详细信息,请参阅 向数据集中添加列

  • 单击 添加 旁边的 向下,然后选择 从源添加列

    从源数据集中选择一列。

重新排序列

您可以更改列的顺序位置。

  1. 选择一列。

  2. 单击 更多,然后单击 重新排序

  3. 使用箭头向上或向下移动列。

  4. 准备就绪后关闭 更改顺序

创建转换规则

您可以创建可重用的转换规则,以对数据集执行全局转换。

有关创建规则的详细信息,请参阅 创建规则以转换数据集

提示注释您可以通过选择 显示规则效果 来查看规则的效果。启用 显示规则效果 时,无法对数据集进行更改。

过滤数据集

如果需要,您可以过滤数据以创建行的子集。

  • 单击 更多,然后单击 过滤器

有关过滤的详细信息,请参阅 筛选数据集

调度转换任务

您可以调度转换任务以定期更新。您可以设置基于时间的调度,或将任务设置为在输入数据任务完成运行时运行。

单击数据任务上的 ... 并选择 调度 以创建调度。默认调度设置继承自项目中的设置。有关默认设置的详细信息,请参阅 转换默认值

您始终需要将 调度 设置为 以启用调度。

信息注释如果任务中的所有数据集都是 非具体化 的,则无需运行任何内容,因为转换是使用视图动态执行的。您仍然可以为 非具体化 转换任务创建调度,以便在满足调度条件时运行。任务将立即完成,这可以触发下游任务,例如数据集市。这允许您构建包含非具体化转换的基于事件的管道调度,而不会中断管道流。

基于时间的调度

无论何时更新不同的输入源,您都可以使用基于时间的调度来运行任务。

  • 运行数据任务 中选择 在特定时间

您可以设置每小时、每天、每周或每月的调度。

基于事件的调度

当输入数据任务完成运行时,您可以使用基于事件的调度来运行任务。

  • 运行数据任务 中选择 在特定事件上

您可以选择是在任何输入任务成功完成时运行任务,还是在任何选定的输入任务成功完成时运行任务。

信息注释如果触发调度时任何输入任务或下游任务正在运行,则该任务将不会运行。该任务将被跳过,直到下一次调度的运行。

监控转换任务

您可以通过单击 监控 来监控转换任务的状态和进度。

有关详细信息,请参阅 监视单个数据任务

重新加载数据

如果数据具体化为物理表,您可以执行表的手动重新加载。当一个或多个表出现问题时,这很有用。

信息注释如果数据集是非具体化的,您必须重新加载上游数据任务中的源数据集以刷新数据。
  1. 打开数据任务并选择 监控 选项卡。

  2. 选择要重新加载的表。

  3. 单击 重新加载表

重新加载将在下次运行任务时发生。重新加载过程的行为因每个数据集的历史记录设置和转换类型而异。这意味着数据任务中数据集之间的重新加载过程可能会有所不同。

您可以通过单击 取消重新加载 来取消待定重新加载的表的重新加载。这不会影响已重新加载的表,并且当前正在运行的重新加载将完成。

下游任务将被重新加载以应用更改,并避免回溯。

重新加载转换数据任务后的下游影响

转换重新加载下游影响

下游影响取决于执行的重新加载操作的类型以及直接下游数据集的类型。标准处理意味着数据集将使用特定数据集的配置方法做出反应并处理数据。

示例: 通过截断和加载重新加载数据集

  • 如果下一个数据集使用数据集转换,它将在下次执行时通过截断和加载重新加载。

  • 如果下一个数据集是 SQL 转换或转换流,它将使用比较和应用重新加载。

重新加载没有历史记录的数据集

在这种情况下,没有要考虑的历史记录。为了减少目标上的处理,重新加载通过以下方式执行:

  1. 截断表。

  2. 从上游数据任务加载当前数据。

下游任务将被重新加载以应用更改。

重新加载启用了历史记录的数据集

重新加载通过以下方式执行:

  1. 截断当前、先前和更改表。

  2. 从上游数据任务加载数据,包括先前表。

重新加载基于 SQL 转换或转换流的数据集

  • 截断并重新加载

    信息注释此选项可能会导致历史记录丢失。
    1. 截断当前表和更改表。

    2. 运行查询并将其加载到当前表中。

  • 重新加载并比较

    1. 运行查询并将其与当前表进行比较。

    2. 添加更改。

信息注释当基于 SQL 转换或转换流的数据集由于上游任务重新加载而重新加载时,它始终通过比较和应用来重新加载。如果要截断并重新加载它,则必须对这些表发出特定的重新加载。在这种情况下,您还必须考虑对下游表的影响。

删除任务

如果数据任务未运行,并且同一项目中没有下游任务依赖项,则可以删除该数据任务。

  • 在项目的管道项目视图中,单击任务上的更多,然后选择删除

此任务创建的工件(表和视图)也将被删除,除非您选择保留它们。

信息注释请记住,您保留的工件将不再由该任务更新。

查看任务信息

点击菜单栏上的 信息 以查看任务信息,例如:

  • 所有者

  • 空间

  • 数据平台

  • 项目 ID

  • 数据任务运行时 ID

转换设置

您可以设置转换数据任务的属性。

  • 单击 设置

警告注释如果任务已经运行,更改除运行时设置之外的设置需要您重新创建数据集。

常规设置

  • 数据库

    要在数据源中使用的数据库。

  • 任务架构

    您可以更改数据任务架构的名称。默认名称是任务的名称。

  • 内部架构

    您可以更改内部存储架构的名称。默认名称是附加了“__internal”的任务名称。

  • 架构名称的默认大写

    您可以设置所有架构名称的默认大写。如果您的数据库配置为强制大写,则此选项将无效。

  • 所有表格和视图的前缀

    可以为使用此任务创建的所有表和视图设置前缀。

    信息注释如果要在多个数据任务中使用数据库架构,则必须使用唯一的前缀。
  • 具体化

    您可以选择仅创建动态执行转换的视图(非具体化),或同时创建表和视图(具体化)。

  • 历史数据存储(类型 2)

    您可以保留历史更改数据,以便轻松重新创建特定时间点的数据。您可以使用历史视图和实时历史视图来查看历史数据。

  • 发布至目录

    选择此选项可将此版本的数据作为数据集发布到目录。目录内容将在下次准备此任务时更新。

    有关目录的更多信息,请参阅通过目录工具理解您的数据

运行时设置

  • 并行执行

    您可以将满负载的最大连接数设置为 1 到 5 之间的数字。

  • 仓库

    云数据仓库的名称。

视图类型设置

视图类型设置仅适用于 Snowflake。

  • 标准视图

    在大多数情况下使用标准视图。

  • Snowflake 安全视图

    将 Snowflake 安全视图用于指定用于数据隐私或敏感信息保护的视图,例如为限制对不应向底层表的所有用户公开的敏感数据的访问而创建的视图。

    信息注释Snowflake 安全视图的执行速度可能比标准视图慢。

表类型设置

这些设置仅在以 Snowflake 为数据平台的项目中可用。

  • 表类型

    您可以选择使用哪种表格类型:

    • Snowflake 表格

    • Snowflake-托管 Iceberg 表格

      您必须在 Snowflake 外部卷中设置外部卷的默认名称。

  • 要使用的云存储文件夹

    选择将数据放置到暂存区时要使用的文件夹。

    • 默认文件夹

      这将创建具有该默认名称的文件夹:<project name>/<data task name>

    • 根文件夹

      将数据存储在存储的根文件夹中。

    • 文件夹

      指定要使用的文件夹名称。

  • 与 Snowflake 开放目录同步

    启用此选项可让 Snowflake 开放目录管理云文件存储中的文件。

最佳实践

  • 如果已添加事实和维度,则无法更改数据集市中数据集的源。如果您想保持灵活性,可以添加一个带有非具体化视图的前置转换任务,该任务可用于更改源,并为所有源任务提供模型。

限制

  • 选择 非具体化 选项时,无法在转换数据任务中更改数据类型。

  • 字段级世系不适用于在 SQL 转换或转换流中创建的数据集。

  • 不支持使用 添加到目标 从设置为 仅追加Qlik Open Lakehouse镜像 任务中读取。

    作为一种解决方法,您可以使用 SQL 转换或转换流读取数据。

了解详情

本页面有帮助吗?

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