首页 > 解决方案 > Google Data Fusion 从存储桶中的多个子文件夹读取文件,需要放置在侧子文件夹中的另一个文件夹中

问题描述

例子

sameer/student/land/压缩文件 sameer/student/pro/未压缩文件

sameer/employee/land/压缩文件 sameer/employee/pro/未压缩文件

在上面的示例中,我需要从存在于不同子目录中的所有 LAND 文件夹中读取文件,并且需要对其进行处理并将它们放置在 PRO 文件夹中的相同子文件夹中。

为此,我从源和接收器中获取了两个 GCS 节点。

在 GCS 源中,我提供了路径 gs://sameer/ ,它正在从所有子文件夹中读取文件并将它们合并到一个文件中,并将其放置在接收器路径中。


例外输出所有文件都应该放在我从中获取的子目录中。

它可以通过为每个文件夹单独运行管道来实现异常输出

我期待这可以通过单个管道运行来实现

标签: google-cloud-data-fusion

解决方案


至少在撰写本文时,您尝试执行的任务似乎无法在单个数据融合管道中完成。

在管道中,必须连接所有源和接收器。否则会出现以下错误:

'无效的 DAG。有一个由舞台组成的岛屿......'

这意味着不可能在同一管道内并行处理多个解压缩任务,每个文件文件夹一个。

同时,如果您要使用类似以下模式的东西,输出将被聚合并复制到所有接收器:

多个源和汇

最后,我想说的是,您可以在多个源和多个链接之间并行执行任务的唯一情况是使用多个数据库表时。通过以下插件 ( 2 ) 和 ( 3 ),您可以处理来自多个表输入的数据并将输出导出到多个表。如果您想查看所有可用的数据融合插件,请查看以下链接 ( 4 )。


推荐阅读