映射数据流中的有条件拆分转换

适用于:Azure 数据工厂 Azure Synapse Analytics

数据流在 Azure 数据工厂和 Azure Synapse 管道中均可用。 本文适用于映射数据流。 如果不熟悉转换,请参阅介绍性文章使用映射数据流转换数据

有条件拆分转换根据匹配条件将数据行路由到不同的流。 有条件拆分转换类似于编程语言中的 CASE 决策结构。 转换计算表达式,并根据结果将数据行定向到指定的流。

配置

“拆分依据”设置可确定数据行是流向第一个匹配流还是其匹配的每个流。

使用数据流表达式生成器为拆分条件输入表达式。 若要添加新条件,请单击现有行中的加号图标。 还可以为与任何条件都不匹配的行添加默认流。

显示带有上述选择的条件拆分 UI。

数据流脚本

语法

<incomingStream>
    split(
        <conditionalExpression1>
        <conditionalExpression2>
        ...
        disjoint: {true | false}
    ) ~> <splitTx>@(stream1, stream2, ..., <defaultStream>)

示例

下面的示例是一个名为 SplitByYear 的有条件拆分转换,它采用传入流 CleanData。 此转换有两个拆分条件,即 year < 1960year > 1980disjoint 为 false,因为数据会转到第一个匹配条件而不是所有匹配条件。 每个匹配第一个条件的行都会转到输出流 moviesBefore1960。 与第二个条件匹配的所有剩余行都会转到输出流 moviesAFter1980。 所有其他行都转到默认流 AllOtherMovies

在服务器 UI 中,此转换如下图所示:

显示带有上述选择的条件拆分 UI。

此转换的数据流脚本位于下面的代码片段中:

CleanData
    split(
        year < 1960,
	    year > 1980,
	    disjoint: false
    ) ~> SplitByYear@(moviesBefore1960, moviesAfter1980, AllOtherMovies)

与条件拆分一起使用的常见数据流转换有联接转换查找转换选择转换