我的目标是使用 Java 从 BigQuery 表中读取数据并将其写入云存储上的 Avro 文件。如果有人提供代码片段/想法来编写 BigQuery 表数据并使用 Cloud Dataflow 将其写入 avro 格式数据,那就太好了。

请您参考如下方法:

可以将数据从 BigQuery 以 Avro 格式一次性导出到 GCS,这可以通过客户端库(包括 Java)来完成。 Here是一些片段(完整的示例可以在 GitHub 中找到),对于 java,您可以编写代码:

Job job = table.extract(format, gcsUrl); 
// Wait for the job to complete 
try { 
  Job completedJob = 
      job.waitFor( 
          RetryOption.initialRetryDelay(Duration.ofSeconds(1)), 
          RetryOption.totalTimeout(Duration.ofMinutes(3))); 
  if (completedJob != null && completedJob.getStatus().getError() == null) { 
    // Job completed successfully 
  } else { 
    // Handle error case 
  } 
} catch (InterruptedException e) { 
  // Handle interrupted wait 
} 

format variable可以是 CSV、JSON 或 AVRO,gcsUtl 变量应包含存储桶和文件路径,例如gs://my_bucket/文件名


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!