创建规则以转换数据集
您可以创建可重用的转换规则,以对 复制、落地、存储、转换和数据集市数据任务中的数据集执行全局转换。
选择 数据集,单击 转换规则,然后单击 添加转换规则 以创建新的转换规则。
-
选择转换类型,然后单击 下一步。
您可以执行以下转换:
-
重命名数据集
-
覆盖数据消息发布
信息注释-
仅适用于 Kafka 目标。
-
如果您使用的是 Data Movement gateway(本地 Kafka 所需),则需要 2025.5.40 或更高版本。
-
-
重命名列
-
添加列
-
删除列
-
转换数据类型
-
替换列值
-
-
选择转换范围,然后单击 下一步。
-
选择要执行的转换操作,然后单击 下一步。
-
为规则添加名称和描述,然后单击 完成。
该规则将在您运行数据任务时应用。如果您添加了多个规则,这些规则将按其列出的顺序执行。
转换范围
当多个转换应用于相同的数据集或列时,范围始终针对原始源名称,而操作则与应用前一个规则后的值相关。例如,如果您有以下规则:
-
将所有以 Abc_ 开头的数据集 (Abc_%) 重命名,以将前缀更改为 ABC_。
-
向以 ABC_ 开头的数据集 (ABC_%) 添加后缀 _zzz。
将这些规则应用于这些数据集将提供以下结果。请注意,在第二个规则之后,不会向 ABC_customers 添加 _zzz 后缀,因为范围始终针对原始名称 (Abc_customers)。
| 原始数据集名称 | 规则 1 后的数据集名称 | 规则 2 后的数据集名称 |
|---|---|---|
|
Abc_customers |
ABC_customers |
ABC_customers |
|
ABC_Suppliers |
ABC_Suppliers |
ABC_Suppliers_zzz |
重命名数据集
-
选择 重命名数据集,然后单击 下一步。
-
设置转换范围,即要重命名哪些数据集。您可以使用 % 作为通配符,从一个或多个数据资产中选择多个数据集。
单击 下一步。
-
设置转换操作。您可以执行以下操作:
-
将数据集重命名为固定名称。
-
添加前缀或后缀。
-
删除前缀或后缀。
-
替换前缀或后缀。
-
将大小写更改为小写或大写。
-
使用表达式替换数据集名称。
-
使用字典替换数据集名称。
有关详细信息,请参阅 使用字典重命名数据集或列。
准备就绪后,单击 下一步。
-
-
设置规则名称,然后单击 完成。
自定义数据消息发布
-
选择 自定义数据消息发布,然后单击 下一步。
-
设置转换范围,即要为哪些数据集覆盖数据消息发布设置。您可以使用 % 作为通配符,从一个或多个数据资产中选择多个数据集。
单击 下一步。
-
设置转换操作。
对于每个设置,当前任务设置由字段任务设置: <设置>指示(例如,任务设置: 特定主题)。
有关这些设置的说明,请参阅数据消息发布。
您可以保留任务设置,或使用表达式构建器指定自定义主题、消息键或分区键。
信息注释这些设置将覆盖任务设置,但不会覆盖为单个数据集配置的设置。要使用表达式构建器:
-
根据需要选择自定义主题、自定义消息键或自定义分区键字段,然后单击
。
信息注释自定义主题必须已经存在,或者必须配置代理以创建它们。表达式生成器已打开。
-
构建表达式。
您可以使用函数、运算符和元数据来构建表达式。
单击
以将项目移动到表达式中。
您还可以在表达式中使用 Kafka 支持的所有函数。
-
单击提取参数。
现在,您可以将测试值添加所有参数的要测试的值。
-
单击测试表达式。
现在应该可以使用测试值看到表达式的结果。
-
准备好后,单击确定。
表达式已添加到字段。
构建表达式
您需要构建一个表达式来定义自定义值。您可以使用:
-
函数
字符串函数、数字函数、空校验函数、数据和时间函数以及逻辑函数。
-
运算符
数学和逻辑运算符表达式上方的工具栏中也提供了一些运算符。这也是查找字符串连接运算符的地方,||。
-
元数据
以下元数据可用:
- $Q_M_SCHEMA_NAME
- $Q_M_SOURCE_SCHEMA_NAME
- $Q_M_SOURCE_TABLE_NAME
- $Q_M_TABLE_NAME
单击
以将项目移动到表达式中。
您还可以在表达式中使用 Kafka 支持的所有函数。
准备就绪后,单击 下一步。
-
-
设置规则名称,然后单击 完成。
重命名列
-
选择 重命名列,然后单击 下一步。
-
设置转换范围,即要重命名哪些列。您可以使用 % 作为通配符,从一个或多个数据任务和数据集中选择多个列。
您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED 以对所有匹配的列执行操作,无论其数据类型如何。
单击 下一步。
您还可以将范围限制为作为键或可为空的列。
-
设置转换操作。您可以执行以下操作:
-
将列重命名为固定名称。
-
添加前缀或后缀。
-
删除前缀或后缀。
-
替换前缀或后缀。
-
将列大小写更改为小写或大写。
-
使用表达式替换列名。
-
使用字典替换列名。
有关详细信息,请参阅 使用字典重命名数据集或列。
准备就绪后,单击 下一步。
-
-
设置规则名称,然后单击 完成。
添加列
-
选择 添加列,然后单击 下一步。
-
设置转换范围,即向哪个数据集添加列。您可以使用 % 作为通配符,将列添加到一个或多个数据集。
单击 下一步。
-
设置新列的详细信息:
-
列名。
-
使用表达式生成器为列设置 值。
-
选择 添加到主键 以将此列用作主键。
-
在 目标数据类型 中设置数据类型。
-
如果数据类型为 BYTES、STRING 或 WSTRING,请同时指定 长度。
如果数据类型为 NUMERIC,请同时指定 精确度 和 小数位数。
准备就绪后,单击 下一步。
-
-
设置规则名称,然后单击 完成。
删除列
-
选择 删除列,然后单击 下一步。
-
设置转换范围,即要删除哪些列。您可以使用 % 作为通配符,从一个或多个数据资产和数据集中选择多个列。
您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED 以对所有匹配的列执行操作,无论其数据类型如何。
单击 下一步。
您还可以将范围限制为作为键或可为空的列。
-
设置规则名称,然后单击 完成。
转换数据类型
-
选择 转换数据类型,然后单击 下一步。
-
设置转换范围,即要转换哪些列的数据类型。您可以使用 % 作为通配符,从一个或多个数据资产和数据集中选择多个列。
您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED 以对所有匹配的列执行操作,无论其数据类型如何。
单击 下一步。
您还可以将范围限制为作为键或可为空的列。
-
设置转换操作。
-
将 目标数据类型 设置为要转换成的数据类型。
-
如果数据类型为 BYTES、STRING 或 WSTRING,请同时指定 长度。
如果数据类型为 NUMERIC,请同时指定 精确度 和 小数位数。
准备就绪后,单击 下一步。
-
-
设置规则名称,然后单击 完成。
另请参阅:管理数据类型
替换列值
-
选择 替换列值,然后单击 下一步。
-
设置转换范围,即要替换哪些列的值。您可以使用 % 作为通配符,从一个或多个数据资产和数据集中选择多个列。
您还可以将操作限制为特定的数据类型。将数据类型设置为 UNSPECIFIED 以对所有匹配的列执行操作,无论其数据类型如何。
单击 下一步。
您还可以将范围限制为作为键或可为空的列。
-
设置转换操作。
-
设置一个表达式以在 目标值 中定义替换值。
-
将 目标数据类型 设置为替换列的数据类型。
-
如果数据类型为 BYTES、STRING 或 WSTRING,请同时指定 长度。
如果数据类型为 NUMERIC,请同时指定 精确度 和 小数位数。
准备就绪后,单击 下一步。
-
-
设置规则名称,然后单击 完成。
使用字典重命名数据集或列
您可以使用字典来重命名数据集或列。当您处理大量使用神秘命名约定的对象时,这非常有用。您可以在字典编辑器中添加翻译,或导入包含翻译的 CSV 文件。您还可以将字典导出为 CSV 文件,并在另一个数据资产中重复使用。
当您选择 重命名数据集 或 重命名列 时,按字典重命名 在 转换操作 中可用。单击 打开字典编辑器。
-
单击 添加翻译 并填写 源名称 和 翻译后的名称,以向字典中添加翻译。
创建所需的翻译后,单击 确定 关闭字典编辑器。
导入翻译
您可以从包含字典的 CSV 文件中导入翻译。该文件应每行包含一个翻译。示例:
-
单击 从 CSV 追加 并选择要导入的 CSV 文件。
导入字典中的翻译将追加到您的字典中。
导出翻译
您可以将字典导出为 CSV 文件,以便在其他数据资产中重复使用。
-
单击 导出到 CSV。
字典将导出为 CSV 文件。
在表达式中包含元数据
表达式编辑器中的 元数据 选项卡包含以下变量,您可以在转换规则的表达式中使用这些变量。
| 变量 | 描述 |
|---|---|
|
$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。
管理规则
您可以在 规则 窗格中管理规则。
-
单击 规则。
您可以启用/禁用规则、删除规则以及编辑规则。