gpt4 book ai didi

google-bigquery - 通过 Google Cloud Dataflow 创作/写入分区 BigQuery 表

转载 作者:行者123 更新时间:2023-12-03 03:40:18 32 4
gpt4 key购买 nike

我想利用时间分区表的新 BigQuery 功能,但不确定目前在 Dataflow SDK 1.6 版本中是否可以实现这一点。

查看BigQuery JSON API ,要创建一天分区表,需要传入

"timePartitioning": { "type": "DAY" }

选项,但 com.google.cloud.dataflow.sdk.io.BigQueryIO 接口(interface)仅允许指定 TableReference。

我想也许我可以预先创建表,并通过 BigQueryIO.Write.toTableReference lambda 潜入分区装饰器..?还有其他人通过数据流成功创建/写入分区表吗?

这似乎与设置 table expiration time 类似。目前也不可用。

最佳答案

正如 Pavan 所说,绝对可以使用 Dataflow 写入分区表。您使用的是在流模式还是批处理模式下运行的 DataflowPipelineRunner

您提出的解决方案应该可行。具体来说,如果您预先创建一个设置了日期分区的表,则可以使用 BigQueryIO.Write.toTableReference lambda 写入日期分区。例如:

/**
* A Joda-time formatter that prints a date in format like {@code "20160101"}.
* Threadsafe.
*/
private static final DateTimeFormatter FORMATTER =
DateTimeFormat.forPattern("yyyyMMdd").withZone(DateTimeZone.UTC);

// This code generates a valid BigQuery partition name:
Instant instant = Instant.now(); // any Joda instant in a reasonable time range
String baseTableName = "project:dataset.table"; // a valid BigQuery table name
String partitionName =
String.format("%s$%s", baseTableName, FORMATTER.print(instant));

关于google-bigquery - 通过 Google Cloud Dataflow 创作/写入分区 BigQuery 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38114306/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com