我的目标是使用 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/文件名