您可以将数据流接收器用作同一数据流中的源吗?

Posted

技术标签:

【中文标题】您可以将数据流接收器用作同一数据流中的源吗?【英文标题】:Can you use a data flow sink as a source in the same data flow? 【发布时间】:2022-01-03 14:05:47 【问题描述】:

我正在尝试使用Azure Synapse Analytics pipelines将销售数据加载到数据库中,策略如下(场景编排):

    将学生数据加载到学生表中 将学生的班级信息加载到 StudentClasses 表中。在这个数据流中,我需要将数据与学生表连接(显然,关于学生的新数据必须在这个连接步骤加载到学生)

我可以在同一个数据流中使用 Sink 排序这两个进程吗?或者接收器排序没有定义源读取排序? (即源码读取和转换是并行进行的,只有写入是按顺序排列的?

编辑:这是我要实现的示例数据流:

source3 和 sink1 是同一张表。我想要的是首先填充 sink1,然后将它用于 source 2 加入它。这可以使用接收器排序来实现吗?或者无论接收器排序如何,source3 都将为空?

【问题讨论】:

你的源类型或数据集是什么 【参考方案1】:

是的,您可以在单个数据流中使用多个源和接收器,并通过连接活动引用相同的源。并使用自定义接收器排序属性订购接收器写入

我使用的是内联数据集,但你可以使用任何类型

使用 inline dataset 将结果存储在 sink1 中。在source3中,使用相同的inline dataset加入Source2


确保您正确给出接收器顺序,如果您有错误的顺序或者在进行转换时没有遇到数据,它将无错误地发布,但管道运行会失败。

参考 MS DOC:Sink ordering

【讨论】:

我已经编辑了我的问题,以便更清楚地展示我想要实现的内容 请检查更新,没有明确的方法来设置源顺序,但是如果你有与数据顺序匹配的转换,它将在运行时失败

以上是关于您可以将数据流接收器用作同一数据流中的源吗?的主要内容,如果未能解决你的问题,请参考以下文章

SnowFlake 可以用作 AWS 的数据迁移服务中的源端点吗?

Debian可以使用ubuntu的源吗

为 DataFlow 使用参数化数据集

图像数据作为 gstreamer 中的源 [关闭]

如何从 gstreamer 中的源请求更多缓冲区?

来自属性文件的 Birt 数据源参数