创建规则以转换数据集 | Qlik Cloud帮助
跳到主要内容 跳到补充内容

创建规则以转换数据集

您可以创建可重用的转换规则,以在 Replication登陆存储转换数据集市数据任务中对数据集执行全局转换。

信息注释由于模式演变而添加到任务中的数据集和列不支持全局转换。

选择数据集,单击转换规则,然后单击添加转换规则以创建新的转换规则。

  1. 选择转换类型并单击下一步

    您可以执行以下转换:

    • 重命名数据集

    • 覆盖数据消息发布

      信息注释
      • 仅适用于 Kafka 目标。

      • 如果您正在使用 Data Movement gateway(本地 Kafka 必需),则需要版本 2025.5.40 或更高版本。

    • 重命名列

    • 添加列

    • 放置列

    • 转换数据类型

    • 更换列值

  2. 选择转换范围并单击下一步

  3. 选择要执行的转换操作,然后单击下一步

  4. 为规则添加名称和说明,然后单击完成

运行数据任务时将应用该规则。如果添加了多个规则,则这些规则将按其列出的顺序执行。

提示注释可以在规则的表达式中使用变量,例如列名。有关更多信息,请参阅在表达式中包含元数据

转变类型

当多个转换应用于同一数据集或列时,范围始终在原始源名称上,而操作与应用前一规则后的值相关。例如,如果您有以下规则:

  1. 重命名所有以 Abc_ (Abc_%) 开头的数据集,将前缀更改为 ABC_

  2. 将后缀 _zzz 添加到以 ABC_ (ABC_%) 开头的数据集。

将规则应用于这些数据集将提供这些结果。请注意,在第二条规则之后, _zzz 后缀不会添加到 ABC_customers,因为作用域始终位于原始名称 (Abc_customers) 上。

初始数据集名称 规则 1 之后的数据集名称 规则 2 之后的数据集名称

Abc_customers

ABC_customers

ABC_customers

ABC_Suppliers

ABC_Suppliers

ABC_Suppliers_zzz

重命名数据集

  1. 选择重命名数据集,然后单击下一步

  2. 设置转换范围,即要重命名的数据集。您可以使用 % 作为通配符从一个或多个数据资产中选择多个数据集。

    单击下一步

  3. 设置转变操作。您可以执行以下操作:

    • 将数据集重命名为固定名称。

    • 添加前缀或后缀。

    • 删除前缀或后缀。

    • 替换前缀或后缀。

    • 将大小写更改为小写或大写。

    • 使用表达式替换数据集名称。

    • 使用字典替换数据集名称。

      有关更多信息,请参阅使用字典重命名数据集或列

    准备好后单击下一步

  4. 设置规则的名称,然后单击完成

自定义数据消息发布

信息注释仅适用于 Kafka 目标。
  1. 选择 自定义数据消息发布,然后点击 下一步

  2. 设置转换范围,即要覆盖数据消息发布设置的哪些数据集。您可以使用 % 作为通配符从一个或多个数据资产中选择多个数据集。

    单击下一步

  3. 设置转变操作。

    对于每个设置,当前任务设置由字段任务设置: <设置>指示(例如,任务设置: 特定主题)。

    有关这些设置的说明,请参阅数据消息发布

    您可以保留任务设置,或使用表达式构建器指定自定义主题、消息键或分区键。

    信息注释这些设置将覆盖任务设置,但不会覆盖为单个数据集配置的设置。

    要使用表达式构建器:

    1. 根据需要选择自定义主题自定义消息键自定义分区键字段,然后单击表达式图标

      信息注释自定义主题必须已经存在,或者必须配置代理以创建它们。

      表达式生成器已打开。

    2. 构建表达式。

      您可以使用函数、运算符和元数据来构建表达式。

      单击 右箭头图标 以将项目移动到表达式中。

      您还可以在表达式中使用 Kafka 支持的所有函数。

    3. 单击提取参数

      现在,您可以将测试值添加所有参数的要测试的值

    4. 单击测试表达式

      现在应该可以使用测试值看到表达式的结果。

    5. 准备好后,单击确定

      表达式已添加到字段。

    构建表达式

    您需要构建一个表达式来定义自定义值。您可以使用:

    • 函数

      字符串函数、数字函数、空校验函数、数据和时间函数以及逻辑函数。

    • 运算符

      数学和逻辑运算符表达式上方的工具栏中也提供了一些运算符。这也是查找字符串连接运算符的地方,||

    • 元数据

      以下元数据可用:

      • $Q_M_SCHEMA_NAME
      • $Q_M_SOURCE_SCHEMA_NAME
      • $Q_M_SOURCE_TABLE_NAME
      • $Q_M_TABLE_NAME

    单击 右箭头图标 以将项目移动到表达式中。

    您还可以在表达式中使用 Kafka 支持的所有函数。

    准备好后单击下一步

  4. 设置规则的名称,然后单击完成

重命名列

  1. 选择重命名列,然后单击下一步

  2. 设置转换范围,即要重命名的列。您可以使用 % 作为通配符从一个或多个数据任务和数据集中选择多个列。

    您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED,以对所有匹配列执行操作,而不考虑数据类型。

    单击下一步

    也可以将作用域限制为键或可为 null 的列。

  3. 设置转变操作。您可以执行以下操作:

    • 将列重命名为固定名称。

    • 添加前缀或后缀。

    • 删除前缀或后缀。

    • 替换前缀或后缀。

    • 将列大小写更改为小写或大写。

    • 使用表达式替换列名称。

    • 使用字典替换列名。

      有关更多信息,请参阅使用字典重命名数据集或列

    准备好后单击下一步

  4. 设置规则的名称,然后单击完成

添加列

  1. 选择添加列,然后单击下一步

  2. 设置转换范围,即要添加列的数据集。您可以使用 % 作为通配符将列添加到一个或多个数据集。

    单击下一步

  3. 设置新列的详细信息:

    • 列名称

    • 使用表达式生成器设置列的

    • 选择添加到主键以将此列用作主键。

    • 目标数据类型中设置数据类型。

    • 如果数据类型为 BYTESSTRINGWSTRING,请指定长度

      如果数据类型为 NUMERIC,请同时指定精确度比例

    准备好后单击下一步

  4. 设置规则的名称,然后单击完成

放置列

  1. 选择放置列,然后单击下一步

  2. 设置转换范围,即要放置的列。您可以使用 % 作为通配符从一个或多个数据资产和数据集中选择多个列。

    您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED,以对所有匹配列执行操作,而不考虑数据类型。

    单击下一步

    也可以将作用域限制为键或可为 null 的列。

  3. 设置规则的名称,然后单击完成

转换数据类型

  1. 选择转换数据类型,然后单击下一步

  2. 设置转换范围,即要转换数据类型的列。您可以使用 % 作为通配符从一个或多个数据资产和数据集中选择多个列。

    您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED,以对所有匹配列执行操作,而不考虑数据类型。

    单击下一步

    也可以将作用域限制为键或可为 null 的列。

  3. 设置转变操作。

    • 目标数据类型设置为要转换到的数据类型。

      • 如果数据类型是BYTESSTRINGWSTRING,请选择以下选项之一来更改其长度:

        • 固定值:指定一个长度。

        • 表达式: 创建表达式,具体描述见 创建表达式 下方。

      • 如果数据类型是数值日期时间,请为精度小数位数选择以下选项之一:

        • 固定值: 指定一个值。

        • 表达式: 创建表达式,具体描述见 创建表达式 下方。

  4. 准备好后单击下一步

  5. 设置规则的名称,然后单击完成

另请参阅:管理数据类型

创建表达式

创建表达式:

  1. 您可以使用 函数运算符元数据 来构建表达式。

    单击右箭头图标 以将项目移动到 构建表达式 区域。

    您还可以在表达式中使用云数据平台支持的所有函数。

  2. 单击提取参数

    现在,您可以将测试值添加所有参数的要测试的值

  3. 单击测试表达式

    现在应该可以使用测试值看到表达式的结果。

  4. 准备好后,单击确定

  5. 目标数据类型将根据您使用的表达式进行定义。

数据类型长度的示例表达式:

$Q_M_DATATYPE_LENGTH*2

更换列值

  1. 选择替换列值,然后单击下一步

  2. 设置转换范围,即要替换哪些列的值。您可以使用 % 作为通配符从一个或多个数据资产和数据集中选择多个列。

    您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED,以对所有匹配列执行操作,而不考虑数据类型。

    单击下一步

    也可以将作用域限制为键或可为 null 的列。

  3. 设置转变操作。

    • 设置表达式以定义目标值中的替换值。

    • 目标数据类型设置为替换列的数据类型。

    • 如果数据类型为 BYTESSTRINGWSTRING,请指定长度

      如果数据类型为 NUMERIC,请同时指定精确度比例

    准备好后单击下一步

  4. 设置规则的名称,然后单击完成

使用字典重命名数据集或列

您可以使用字典重命名数据集或列。当您处理大量使用模糊命名约定的对象时,这很有用。您可以在字典编辑器中添加翻译,也可以导入包含翻译的 CSV 文件。您还可以将字典导出为 CSV 文件,并在另一个数据资源中重复使用。

选择重命名数据集重命名列后,转换操作中可以使用按字典重命名。单击书籍 以打开字典编辑器。

  • 单击添加翻译并填写源名称已翻译名称以将翻译添加到词典中。

创建所需翻译后,单击确定关闭词典编辑器。

信息注释只有在字典中有与源名称的完全匹配时,才会替换该名称。不支持部分匹配。

导入翻译

您可以从包含字典的CSV文件导入翻译。文件每行应包含一个翻译。示例:

sourcename1,translatedname1 sourcename2,translatedname2 sourcename3,translatedname3
  • 单击从 CSV 附加并选择要导入的 CSV 文件。

导入的词典中的翻译将附加到词典中。

导出翻译

您可以将字典导出为 CSV 文件,以便在其他数据资产中重用。

  • 单击导出到 CSV

字典将导出为 CSV 文件。

在表达式中包含元数据

表达式编辑器中的元数据选项卡包含可以在转换规则中的表达式中使用的以下变量。

信息注释在数据移动过程中,原始源数据类型会映射到Qlik Talend Data Integration数据类型,然后选择性地进行转换并映射到目标。例如,MySQL 中的 BIT 数据类型映射到 Qlik Talend Data Integration 中的 BOOLEAN 数据类型。因此,名称中包含 DATATYPE 的变量要么指 Qlik Talend Data Integration 数据类型,要么指转换后的数据类型,而不是原始源数据类型。
可以在转换规则中使用的变量
变量 描述

$Q_D_COLUMN_DATA

源表中的列值。

$Q_M_COLUMN_NAME

修改后的列名。

$Q_M_DATATYPE_LENGTH

修改后的列的数据类型长度。

$Q_M_DATATYPE_NAME

修改后的列的数据类型。

$Q_M_DATATYPE_PRECISION

修改后的列的数据类型精度。

$Q_M_DATATYPE_SCALE

修改后的列的数据类型刻度。

$Q_M_SCHEMA_NAME

源模式的名称。

$Q_M_SOURCE_COLUMN_NAME

源表中列的名称。

$Q_M_SOURCE_DATATYPE_LENGTH

源表中列的数据类型长度。
$Q_M_SOURCE_DATATYPE_NAME 源表中列的数据类型。

$Q_M_SOURCE_DATATYPE_PRECISION

源表中列的数据类型精度。

$Q_M_SOURCE_DATATYPE_SCALE

源表中列的数据类型刻度。

$Q_M_SOURCE_TABLE_NAME

源表的名称。

$Q_M_TABLE_NAME

修改后的源表的名称。

可以重命名转换范围内的所有表,以使用以下表达式将架构名称添加为前缀:

${Q_M_SCHEMA_NAME}||'.'||${Q_M_SOURCE_TABLE_NAME}.

例如,这会将 dwprod 模式中的表 products 重命名为 dwprod.products

管理规则

您可以在规则窗格中管理规则。

  • 单击规则

您可以启用/禁用规则、删除规则和编辑规则。

本页面有帮助吗?

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