我有一个BigQuery模式,其中Record字段与JSON类似,但是,JSON中的键是动态的,即新键可能会出现新数据,并且很难知道总共有多少键。根据我的理解,不可能将BigQuery用于这样的表,因为需要显式定义记录字段类型的模式,否则它将引发错误。
唯一的另一种选择是在查询将通过JSON(文本)字段解析的数据时使用JSON_EXTRACT函数。我们可以在BigQuery的表中使用动态嵌套模式吗?
答案 0 :(得分:8)
可以为公共字段创建固定模式,您可以将它们设置为可空。并且作为类型字符串的列可用于存储JSON的其余部分,并使用JSON函数来查询数据。
我们的表中始终有一个meta
列,它将其他原始非结构化数据保存为JSON对象。
请注意,目前您可以在字符串列中存储最多2兆字节,这对于JSON文档来说是不错的。
为了更容易处理数据,您可以从使用JSON_EXTRACT的查询创建视图,并在其他更简单的查询中引用视图表。
同样在流式插入阶段,您的应用可以将JSON非规范化为正确的表格。