流入 BQ 分区表

Posted

技术标签:

【中文标题】流入 BQ 分区表【英文标题】:Streaming into BQ partitioned tables 【发布时间】:2016-07-28 16:40:15 【问题描述】:

我正在尝试使用数据流。 文档说:

流缓冲区中的数据在 _PARTITIONTIME 列中具有 NULL 值。

我可以看到将行插入日期分区表时就是这种情况。

有没有办法可以设置我要插入的行的分区时间,以便 BigQuery 可以推断出正确的分区?

到目前为止,我已经尝试过:tableRow.set("_PARTITIONTIME", milliessinceepoch); 但我遇到了no such field 异常。

【问题讨论】:

【参考方案1】:

大约一个月前,您可以流式传输到日期分区表的特定分区。例如,要插入表 T 中日期为 20160501 的分区,可以调用 insertall 表名 T$20160501

【讨论】:

【参考方案2】:

AFAIK,在撰写本文时,BigQuery 不允许为每行手动指定分区 - 它是从插入时推断出来的。

但是,作为 BigQuery 内置分区表功能的替代方案,您可以使用 Dataflow 的功能同时流式传输到多个 BigQuery 表:请参阅Sharding BigQuery output tables。

【讨论】:

以上是关于流入 BQ 分区表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BQ 命令行中设置 Bigquery 需要分区过滤器

BigQuery 中的分区表

在 Bigquery 中的分区表上插入查询

BigQuery - 分区表上的 DML 支持

多日期数据加载到 BigQuery 分区表中

Bigquery:某些行属于不同的分区而不是目标分区