转换数据
您可以创建可重用和基于规则的数据转换,作为数据管道的一部分。您可以将转换作为数据登录的一部分,或创建可重用的转换数据任务。您可以执行行级转换并创建数据集,这些数据集可以具体化为表,也可以创建为动态执行转换的视图。
-
您可以执行显式数据集转换,或者创建转换多个数据集的全局规则。您还可以过滤数据集以创建行的子集。
-
您可以添加 SQL 转换。SQL 转换允许您将 SQL SELECT 查询输入到管道中,以定义复杂或简单的转换。
-
您可以添加具有源、处理器和目标的可视化转换流,以定义复杂或简单的转换。
转换数据任务包含三个视图:
-
转换
此视图显示所有转换,以可视化从源数据集到目标数据集的流程。
-
数据集
此视图显示数据集上的所有基本转换,如筛选数据或添加列,以及执行全局转换的规则。
-
模型
此视图允许您创建包含数据集之间关系的数据模型。
创建转换数据任务
创建转换数据任务的最简单方法是单击存储数据任务上的 ...,然后选择转换数据。
也可以单击项目中的创建,然后选择转换数据。在这种情况下,您需要定义要使用的源数据任务。
-
在转换中定义源数据和目标。
您可以执行以下操作之一:
-
执行数据集转换
选择源数据集并单击添加到目标将其添加到目标。
您可以对数据集执行基本转换,例如在数据集中筛选数据或添加列。
有关更多信息,请参阅管理数据集。
-
添加 SQL 转换
选择源数据集,然后单击添加 SQL 转换。
SQL 转换允许您将 SQL SELECT 查询输入到管道中,以定义复杂或简单的转换。
有关更多信息,请参阅添加 SQL 转换。
-
添加转换流
选择源数据集,然后单击添加转换流。
流设计器允许您使用源、处理器和目标创建转换流,以定义复杂或简单的转换。
有关更多信息,请参阅添加转换流。
提示注释您还可以通过单击选择源数据从其他存储数据任务添加更多数据集。 -
-
添加所需的转换后,可以通过单击验证数据集来验证数据集。如果验证发现错误,请在继续之前修复错误。
有关更多信息,请参阅验证和调整数据集。
-
创建数据模型
单击模型以设置包含的数据集之间的关系。
有关更多信息,请参阅 创建数据模型。
-
单击准备以准备数据任务和所有必需的工件。这可能需要一点时间。
您可以按照屏幕下部准备进度下的进度进行操作。
-
当状态显示准备时,您可以运行数据任务。
单击 ... 然后单击运行。
数据任务现在将开始创建数据集来转换数据。
使用转换视图
在转换中,显示所有转换以可视化从源数据集到目标数据集的流程。
-
选择一个转换以查看使用了哪些源数据集,以及创建了哪些目标数据集。
-
选择一个源以查看使用它的所有转换以及所有生成的目标。
-
选择一个目标以查看哪些是源数据集,以及哪个转换创建了此目标数据集。
您可以通过单击显示选项更改以下设置:
-
按转换类型筛选
仅显示一种或两种转换类型的转换。
-
筛选器
显示所有转换或仅显示选定的转换。您必须选择一个转换才能启用此选项。
-
密度
选择是使用紧凑布局显示变换,还是使用更多空间显示宽布局。
使用数据集视图
在数据集中,您可以查看和编辑转换任务中的所有目标数据集。
如需更多信息,另请参见管理数据集。
添加目标数据集
您可以将更多目标数据集添加到转换任务中。
-
单击添加数据集。
-
为数据集提供名称和描述(可选)。
-
从源数据集中的任务中可用的数据集中选择源数据集。
提示注释您可以选择无源数据集来创建未连接到任何源的空数据集。您可以在设计过程中向数据集添加列,但必须先连接到源数据集,然后才能准备任务。
目标数据集现在已添加。
更改源数据集
您可以更改目标数据集的源数据集。
-
在源之后单击 :[源数据集的名称]。
-
从另一个源数据集中的任务中可用的数据集中选择源数据集。
提示注释您可以选择无源数据集以断开目标数据集与源的连接。您可以在设计过程中编辑数据集,但必须先连接到源数据集,然后才能准备任务。
添加新的列
您可以向目标数据集添加新列。
-
从头开始添加列
单击 + 添加。
提供列名称,并设置表达式来定义列数据。
有关更多信息,请参阅向数据集添加列。
-
从源添加列
单击添加旁边的 ,然后选择从源添加列。
从源数据集中选择列。
对列重新排序
您可以更改列的序数位置。
-
选择列。
-
单击 ,然后单击重新排序。
-
使用箭头将列向上或向下移动。
-
准备就绪后关闭更改序数。
创建转换规则
您可以创建可重用的转换规则来对数据集执行全局转换。
有关创建规则的详细信息,请参阅创建规则以转换数据集。
筛选数据集
如果需要,可以筛选数据以创建行的子集。
-
单击 ,然后单击筛选。
有关筛选的详细信息,请参阅筛选数据集。
计划转换任务
您可以将转换任务计划为定期更新。您可以设置基于时间的计划,或将任务设置为在输入数据任务完成运行后运行。
单击数据任务上的 ...,然后选择计划以创建计划。默认计划设置继承自项目中的设置。有关默认设置的详细信息,请参阅转换默认值。
始终要将计划设置为打开才能启用计划。
基于时间的计划
无论何时更新不同的输入源,都可以使用基于时间的计划来运行任务。
-
在运行数据任务中选择在特定时间。
您可以设置每小时、每天、每周或每月计划。
基于事件的计划
当输入数据任务完成运行时,可以使用基于事件的计划来运行任务。
-
在运行数据任务中选择特定事件发生时。
您可以选择是否要在任何输入任务成功完成时运行该任务,或在任何选择的输入任务已成功完成时执行该任务。
监视转换任务
您可以通过单击监视来监视转换任务的状态和进度。
有关更多信息,请参阅监视单个数据任务。
重新加载数据
如果数据具体化为物理表,则可以手动重新加载表。当一个或多个表出现问题时,这很有用。
-
打开数据任务,然后选择监视器选项卡。
-
选择要重新加载的表。
-
单击重新加载表。
下次运行任务时将进行重新加载。根据每个数据集的历史设置和转换类型,重新加载过程的行为有所不同。这意味着数据任务中的数据集之间的重新加载过程可能不同。
-
数据集转换是通过截断和加载来重新加载的。
-
SQL 转换和转换流可以通过截断和加载,或者通过比较和应用来重新加载。最好的做法是进行比较和应用。
通过单击取消重新加载,可以取消正在等待重新加载的表的重新加载。这不会影响已经重新加载的表,并且当前正在运行的重新加载将完成。
将重新加载下游任务以应用更改并避免回溯。
下游的影响取决于执行的重新加载操作的类型和直接下游数据集的类型。标准处理意味着数据集将使用特定数据集的配置方法对数据进行反应和处理。
示例: 通过截断和加载重新加载数据集
-
如果下一个数据集使用数据集转换,它将在下一次执行时通过截断和加载重新加载。
-
如果下一个数据集是 SQL 转换或转换流,则将使用比较和应用重新加载它。
重新加载没有历史记录的数据集
在这种情况下,没有历史可供考虑。为了减少对目标的处理,通过以下方式执行重新加载:
-
截断表。
-
正在从上游数据任务加载当前数据。
将重新加载下游任务以应用更改。
在启用历史记录的情况下重新加载数据集
重新加载由以下人员执行:
-
截断当前表、先前表和更改表。
-
从上游数据任务加载数据,包括以前的表。
基于 SQL 转换或转换流重新加载数据集
-
截断并重新加载
信息注释此选项可能会导致历史记录丢失。-
截断当前表和更改表。
-
运行查询并将其加载到当前表中。
-
-
重新加载并比较
-
运行查询并将其与当前表进行比较。
-
添加更改。
-
转换设置
可以设置转换数据任务的特性。
-
单击设置。
一般设置
-
数据库
要在数据源中使用的数据库。
-
任务模式
可以更改数据任务模式的名称。默认名称是任务的名称。
-
内部模式
可以更改内部存储模式的名称。默认名称是附加“__internal”的任务名称。
- 所有表格和视图的前缀
可以为使用此任务创建的所有表和视图设置前缀。
信息注释如果要在多个数据任务中使用数据库架构,则必须使用唯一的前缀。 -
具体化
您可以选择仅创建即时执行转换的视图(非实体化),或者同时创建表和视图(实体化)。
-
历史记录
您可以保留历史更改数据,以便于在特定时间点重新创建数据。您可以使用历史视图和实时历史视图查看历史数据。
运行时设置
-
平行执行
您可以将满负载的最大连接数设置为 1 到 5 之间的数字。
-
仓库
云数据仓库的名称。
目录设置
-
发布至目录
选择此选项可将此版本的数据作为数据集发布到目录。目录内容将在下次准备此任务时更新。
有关目录的更多信息,请参阅通过目录工具理解您的数据。
限制
-
选择非具体化选项时,无法更改转换数据任务中的数据类型。
-
字段级世系不适用于在 SQL 转换或转换流中创建的数据集。