BigQuery - 记录字段中的灵活架构

BigQuery - Flexible Schema in Record Field

我有一个 BigQuery 架构,其中 Record 字段类似于 JSON,但是,JSON 中的键是动态的,即新键可能会随新数据一起出现,这很难知道总共有多少把钥匙。根据我的理解,不可能对这样的 table 使用 BigQuery,因为需要显式定义记录字段类型的模式,否则它会抛出错误。

唯一的其他选择是在查询将通过 JSON(文本)字段解析的数据时使用 JSON_EXTRACT 函数。有没有其他方法可以在 BigQuery 的 table 中使用动态嵌套模式?

可以为公共字段创建一个固定的架构,您可以将它们设置为可为空。并且可以使用字符串类型的列来存储 JSON 的其余部分,并使用 JSON 函数来查询数据。

我们的 table 中总是有一个 meta 列,它以 JSON 对象的形式保存额外的原始非结构化数据。

请注意,目前您可以在字符串列中存储最多 2 兆字节,这对于 JSON 文档来说是合适的。

为了更轻松地处理数据,您可以从使用 JSON_EXTRACT 的查询创建视图,并在其他一些更简单的查询中引用视图 table。

同样在流式插入阶段,您的应用程序可以将 JSON 反规范化为适当的 tables。