针对 JSON 数组的 BigQuery 非规范化建议(一对多)



我正在尝试为一个巨大的JSON数据集创建一个模式。数据已经是非规范化形式(我从第三方那里得到了这样的东西)。我现在面临的一个问题是,非规范化的JSON具有字符串数组(有时是对象),这转化为经典SQL表之间的一对多关系。这是BQ不承认的。

查找数组是否意味着每个这样的数组都需要放在自己的表中?

我创建了一个简单的例子:

 { "name": "John Doe", "books_read": [ "Jungle Book", "Cinderella", "Harry Potter", "The Little Prince" ] }
除了

创建两个表usersbooks_read并链接它们之外,此示例数据是否有良好的架构?

我非常专注于非规范化,以至于创建多个表感觉就像违背 BQ。

由于 BigQuery 支持嵌套和结构化数据(与 JSON 模型相同),因此最好将其建模为具有以下架构的单个表:

STRING name
REPEATED STRING books_read

BigQuery 的 SQL 方言有很多支持来处理这种重复的结构。

最新更新