提问者:小点点

通过本地DataFlow作业写入BigQuery


我在我的机器上本地设置了一个DataFlow管道。它需要一个充满JSON对象的示例新行分隔文件,做它的事情,将最终结果格式化为TableRow。当需要写入BigQuery时,我不知道如何进行身份验证。我在Dataflow的留档或使用本地管道写入BigQuery的示例中找不到任何东西。如果可能的话,我想知道如何做到这一点。在我看来,它应该是这样的:

...
session_windowed_items.apply(ParDo.of(new FormatAsTableRowFn()))
      .apply(BigQueryIO.Write
      .withCredentials/Token(SOME_TOKEN)  // <- This line
      .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_NEVER)
      .to("project:db.table"));
...

...
PipelineOptions options = PipelineOptionsFactory.create();
options.setGoogleCloudCredentials/Token(SOME_TOKEN)  // <- This line
Pipeline p = Pipeline.create(options);
...

共1个答案

匿名用户

你的第二种方法是正确的。它看起来像这样:

GcpOptions gcpOptions = options.as(GcpOptions.class);
gcpOptions.setGcpCredential(...);
gcpOptions.setProject(...);
// etc

options.as的习惯用法值得记住。

您需要阅读GcpOptions以查看可用的方法。