【发布时间】:2019-09-11 12:27:50
【问题描述】:
我的目标是从 BigQuery 表中读取数据并使用 Java 将其写入云存储上的 Avro 文件。如果有人提供代码片段/想法来编写 BigQuery 表数据并使用 Cloud Dataflow 将其写入 avro 格式的数据,那就太好了。
【问题讨论】:
标签: java google-bigquery google-cloud-storage google-cloud-dataflow avro
我的目标是从 BigQuery 表中读取数据并使用 Java 将其写入云存储上的 Avro 文件。如果有人提供代码片段/想法来编写 BigQuery 表数据并使用 Cloud Dataflow 将其写入 avro 格式的数据,那就太好了。
【问题讨论】:
标签: java google-bigquery google-cloud-storage google-cloud-dataflow avro
可以将数据从 BigQuery 以 Avro 格式导出到 GCS 作为一次性导出,这可以通过客户端库(包括 Java)来完成。 Here 是一些 sn-ps(完整示例可以在 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/文件名
【讨论】: