使用Google Dataflow生成数据

时间:2015-03-04 21:02:18

标签: google-cloud-dataflow data-generation

假设我想生成100万亿条数据(随机数字以保持简单),我想使用Google Dataflow来实现这一目标。

我可以想到一种愚蠢的方式来做到这一点(我不是100%肯定这会起作用,但这是我开始尝试的地方):拿一个1000万行长的文本文件,并且每行在输入文本文件中有一个循环1000万次迭代的DoFn,每次迭代输出一个随机生成的数字,最终输出到文本文件。 (原始文本文件中的任何内容都将被忽略)。

但我不禁想到,使用Dataflow生成数据可能会有更好,更少hacky的方法。有关更好的方法的任何建议?

谢谢!

2 个答案:

答案 0 :(得分:1)

对于小型数据集,您可以使用pipeline.apply(Create.of(...))生成,但不会扩展(生成代码将在本地执行)。

更好的方法可能是:

List<Integer> l = ...; // 100k integers inside
pipeline.apply(Create.of(l)).apply(ParDo.of(new Generate100MDoFn())).apply(TextIO.Write.to(...));

因此它将使数据流并行地均匀生成大量数据。

答案 1 :(得分:1)

很简单,只需使用您自己的数字生成器https://cloud.google.com/dataflow/model/custom-io

扩展Source课程