在 Bigquery 中查询外部表并且新数据到达时没有架构自动检测

Posted

技术标签:

【中文标题】在 Bigquery 中查询外部表并且新数据到达时没有架构自动检测【英文标题】:No schema auto-detect when querying External Tables in Bigquery and new data arrive 【发布时间】:2018-01-25 12:22:59 【问题描述】:

这是目前的情况:

我在 Bigquery 中针对 Cloud Storage 中的 json 创建了一个外部表。

我正在测试它在架构自动检测方面的工作原理。

当我创建表时,有 2 个不同模式的 json 文件,Bigquery 做得很好。

当我使用新架构加载新文件(向记录字段添加新属性)时,Bigquery 会识别新记录,但不会出现此新字段。所以架构自动检测没有像我预期的那样工作。

当新文件到达我的云存储文件夹时,如何自动检测架构?

有什么帮助吗?

【问题讨论】:

【参考方案1】:

罪魁祸首:AFAIK 自动模式检测发生在您创建表时,而不是在您添加新文件时更新。

可能的解决方案:

新文件到达时重新创建表。

简单的实施:

在 GCS 上为新到达的文件添加一个 pub/sub 通知,有一个 Google Cloud 函数在此重新创建表触发器。

【讨论】:

以上是关于在 Bigquery 中查询外部表并且新数据到达时没有架构自动检测的主要内容,如果未能解决你的问题,请参考以下文章

BIgQuery AVRO 外部表架构

BigQuery - 联合数据集中的所有表

BigQuery - 6 年的订单迁移、表/查询设计

获取 BigQuery 外部表的 GCS 路径元数据

从外部表读取与加载数据并在 Bigquery 中读取

BigQuery - 在插入表时调用查询